PDA

Tam Sürümünü Görmek İçin : Printer


ertankan
11/07/2005, 12:50
Arkadaşlar elimde lpt den bağlanan nokta vuruşlu bir printer var ve ben bundan cikti almak istiyorum.Sorum şu;
Bir şey yazdırmam için direk lpt ye bağlanıp yazıcıylamı bağlantıya geçmem lazım yoksa direk olarak yazdırabilecek bir komut varmı???
Yardımlarınız için şimdiden teşekkürler!!!


sckz
11/07/2005, 13:57
ofstream myPrinter("PRN");
myPrinter << "Gonul Kurucali";
myPrinter << '\x0C'; // tum yazdıracaklarımızı bitirdikten sonra sayfayi çıkarmak için formfeed... (\x0C yerine \f de yazabilirsin..)

myPrinter("PRN"); senin lpt1 e bağlı yazıcın için.. "PRN" yerine lpt1 ya da lpt2 de yazabilirsin.. Birinci seri port için com1 ya da aux, ikinci seri port için com2...

bunun gibi bişiler var.. bunları bi dene.. ben denemedim ama bu tür şeyler in olduğunu biliyorum..

sckz
11/07/2005, 14:17
yalnız bu söylediklerim c++ standartlarında varmı yok mu bilmiyorum..

Euclides
11/07/2005, 15:17
Printing and Print Spooler Functions (http://msdn.microsoft.com/library/en-us/gdi/prntspol_7mgj.asp&e=42)

karamemed
11/07/2005, 15:33
myPrinter("PRN"); senin lpt1 e bağlı yazıcın için.. "PRN" yerine lpt1 ya da lpt2 de yazabilirsin.. Birinci seri port için com1 ya da aux, ikinci seri port için com2...

bunun gibi bişiler var.. bunları bi dene.. ben denemedim ama bu tür şeyler in olduğunu biliyorum..

Peki örneğin seri port için "COM1" kullandığımızda ayarları nasıl yapacağız. Ben denedim portu açıyor. Fakat örneğin dur biti sayısı, parity sayısı veri biti sayısı ve boud hızı vs.. nasıl ayarlanacak? Bu konuyla alakalı çok arama yaptım ama elime CreateFile'dan başka bişi geçmedi. Bu konuyu araştırabileceğim bir yer var mı bildiğin?

Teşekkürler.

karamemed
11/07/2005, 15:53
Ahanda buldum:

system("mode com1: baud=300 parity=e data=7 stop=1");

Bulduğum adres: http://forums.devshed.com/archive/t-162565

Meğer arama yapmasını da bilmek gerekiyormuş :)

Euclides
11/07/2005, 17:05
@karamemed:
Boşu boşuna printer driver yazmıyorlar...

karamemed
11/07/2005, 22:13
@Euclides:
Yok ben printer için kullanmıyacağım. Bilgisayarla haberleşen bitakım alet edavat var, onlarla iletiş kuracağım. Yani byte yaz, byte oku.

Euclides
11/07/2005, 22:40
sevgili karamemed'ciğim
o zaman durum daha da vahim
admin olmyayan kullanıcılar bu durumda aygıtını kullanamaz.
peki admin olanlara ne olur ? hoş olmaz. gıcık edici olur. diyeceksin neden ????

Bunu açıklamak forumun sınırları dışında olur.
Ama neden bilgisyarımıza bağlı aygıtların bir drivera ihtiyacı olduğuna sana fikir vermesi için şuna bir göz at
(bunu linux olarak değil bir OS olarak düşün)
http://www.linuxplanet.com/linuxplanet/tutorials/3205/1/

karamemed
12/07/2005, 22:55
Sevgili Euclides,

Nerede takıldık anlamıyorum. Sadece seri porta birkaç bayt yazmaktan bahsediyorum. Şu kod da işimi görüyor:


system("mode COM1: baud=300 parity=e data=7 stop=1");
ofstream f("COM1",1);
f<<"dene 1 2 3";


Hangi işletim sistemi neye izin vermiyor anlamış değilim. Daha doğrusu konu nasıl işletim sistemlerine kaydı onu anlamış değilim. Burada o kadar seri portu kullanmış olmama rağmen bunun fopen fprintf gibi standart c fonksiyonlarıyla çok basit yapılabileceğini öğrendim ve sckz'ye elinde daha ayrıntılı bilgi varmı diye sordum, hepsi bu. Yukarıdaki kod Windows xp'de sorunsuz çalıştı. Diğer işletim sistemleri izin verir mi bilmem. Ama pek sorun olacağını zannetiyorum. Ha windowsu işletim sisteminden saymazsın o senin sorunun. Lakin hala konu driver meselesine geldi anlayabilmiş değilim.

Euclides
12/07/2005, 23:40
Yok ben windows'dan bahsediyorum...
Windows'da da admin ve diğer kullanıcılar diye bir ayrım vardır....
2...
Hyr çok sorunlu çalıştı...
sadece çalıştı...

bu tıpkı şunun gibi diyelim ağaç keseceksin normal olan,düzgün olan testere kullanmaktır. Sense dinamit kullanıyorsun.

acehreli
13/07/2005, 00:06
karamemed, "COM1" adli kutugu actiginda zaten surucu kullaniyorsun. Isletim sistemi guzel bir sekilde ayrintilari senden gizlemis. Yaziyorsun porta gidiyor, okuyorsun porttan geliyor. Hatta yanilmiyorsam, XP bu yontemi salt DOS zamaniyla uyumlu olsun diye kullaniyor.

Bu yontem isine yariyorsa ne guzel... Bazen portla daha karmasik isler yapmak isteyebilirsin; o zaman surucu arayuzunu kullanirsin.

Ali

Euclides
13/07/2005, 00:18
@acehreli:
admin olmayan kullanıcılar ne yapacak peki ?
DOS zamanında direkt port numarası ile erişim sağlanıyordu bu yöntem XP'de general protection fault meydana getiriyor.

Windows sizin driver'inizi kullandığında buradaki kaynakları ben kullanıyorum kardeşim başkasına verme diyebiliyorsunuz. önemli olan bu..

acehreli
13/07/2005, 00:45
admin olayini unutmusum :)

karamemed, bilgisayarini admin olarak kullanma, olasi viruslere cok fazla yetki veriyor olabilirsin :p

Ali