Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Druckeransteuerung mit Createfile unter WINXP (https://www.delphipraxis.net/9845-druckeransteuerung-mit-createfile-unter-winxp.html)

matz 6. Okt 2003 09:40


Druckeransteuerung mit Createfile unter WINXP
 
Hallo Gemeinde,
in einem eigenem Projekt unter Win 95/98 habe ich einen Star-Kassendrucker direkt mit 'CreateFile' und 'WriteFile' angesteuert (kein Treiber vorhanden). Das ging auch ohne Probleme. Jetzt wurde der Rechner auf WINXP umgestellt und diese Metode geht nun nicht mehr.

Bisher habe ich folgendes gemacht

Delphi-Quellcode:
MyHandle:= CreateFile(pPort, GENERIC_Write, 0,
nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

setcommtimeouts(Myhandle,timeouts);

writefile(Myhandle,Atext,Laenge,test,over)
Gibt es noch Hoffnung diesen Drucker ohne Treiber auch unter WINXP anzusteuern - meine bisherigen Versuche schlugen leider fehl.

Bin für jede Hilf dankbar

Gruß Matz

[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]

Christian Seehase 6. Okt 2003 11:11

Re: Druckeransteuerung mit Createfile unter WINXP
 
Moin Matz,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Hast Du schon mal überprüft, ob CreateFile ein gültiges Handle zurückliefert?
Für den Fall, dass das es nicht gültig ist, könntest Du Dir mal mit

Delphi-Quellcode:
ShowMessage(SysErrorMessage(GetLastError)));
anzeigen lassen, was schiefgegangen ist.


BTW: Bitte benütze künftig die Delphi-Tags. Danke.

matz 6. Okt 2003 11:25

Re: Druckeransteuerung mit Createfile unter WINXP
 
Danke erst einmal für die Antwort - ich werde künftig die Delphi-Tags verwenden

wenn ich die Errormessage ausgebe kommt nach CreateFile 'Vorgang erfolgreich abgeschlossen'
und nach WriteFile 'ungültiges Handel (ERROR 6)'

Christian Seehase 6. Okt 2003 11:55

Re: Druckeransteuerung mit Createfile unter WINXP
 
Moin Matz,

wird der Aufruf von SetCommTimeouts korrekt abgearbeitet?

matz 6. Okt 2003 12:10

Re: Druckeransteuerung mit Createfile unter WINXP
 
wenn ich Lasterrormesssage nach setcomtimeouts ausgebe kommt als Ergebnis 'Falscher Parameter'

Christian Seehase 6. Okt 2003 12:27

Re: Druckeransteuerung mit Createfile unter WINXP
 
Moin Matz,

da die COMMTIMEOUTS Struktur sich nicht verändert hat (gemäss PSDK keine Unterschiede von 95 bis .NET Server 2003) dürfte dann wohl das Handle wieder ungültig sein.
Hast Du mal kontrolliert welchen Wert das Handle nach CreateFile hat?

matz 6. Okt 2003 12:39

Re: Druckeransteuerung mit Createfile unter WINXP
 
Hallo Christian

das Handle hat einen Wert von 1984
ich bekomme bei setcommtimeouts ja nur True or False zurück (in meinem Fall ist es True - also scheint es zu gehen)
ich habe jetzt den Aufruf von WritFile geändert, statt dem Overlapped-Parameter übergebe ich jetzt NIL da bekomme ich nach einer Ewigkeit kein Gerät angeschlossen zurück, was ja auch stimmt da ich den Drucker zur Zeit auch nicht hier habe)
eigentlich sollte die Fehlermeldung aber schneller zurückkommen

Gruß Matz

Christian Seehase 6. Okt 2003 12:45

Re: Druckeransteuerung mit Createfile unter WINXP
 
Moin Matz,

:wall: :wall: :wall:
:oops:

Wer lesen kann ist klar im Vorteil (ich meine mich).

Das Du eine Overlapped Struktur angibst hatte ich völlig übersehen.

Für diesen Fall muss beim Parameter dwFlagsAndAttributes noch das Flag FILE_FLAG_OVERLAPPED mit angegeben werden.

matz 6. Okt 2003 12:47

Re: Druckeransteuerung mit Createfile unter WINXP
 
Danke für den Tip,

werde ich gleich mal testen - da war ja WIN95/98 ziemlich unempfindlich - das ging seit 1997 ohne Probleme

matz 6. Okt 2003 12:59

Re: Druckeransteuerung mit Createfile unter WINXP
 
wenn ich bei dem Parameter dwFlagsAndAttributes 'FILE_FLAG_WRITE_THROUGH or FILE_FLAG_OVERLAPPED' übergebe bekomme ich wieder ein ungültiges Handle :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz