AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Druckeransteuerung mit Createfile unter WINXP
Thema durchsuchen
Ansicht
Themen-Optionen

Druckeransteuerung mit Createfile unter WINXP

Ein Thema von matz · begonnen am 6. Okt 2003 · letzter Beitrag vom 6. Okt 2003
Antwort Antwort
Seite 1 von 2  1 2      
matz

Registriert seit: 9. Sep 2003
31 Beiträge
 
#1

Druckeransteuerung mit Createfile unter WINXP

  Alt 6. Okt 2003, 10:40
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]
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Druckeransteuerung mit Createfile unter WINXP

  Alt 6. Okt 2003, 12:11
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

ShowMessage(SysErrorMessage(GetLastError))); anzeigen lassen, was schiefgegangen ist.


BTW: Bitte benütze künftig die Delphi-Tags. Danke.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
matz

Registriert seit: 9. Sep 2003
31 Beiträge
 
#3

Re: Druckeransteuerung mit Createfile unter WINXP

  Alt 6. Okt 2003, 12:25
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)'
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Druckeransteuerung mit Createfile unter WINXP

  Alt 6. Okt 2003, 12:55
Moin Matz,

wird der Aufruf von SetCommTimeouts korrekt abgearbeitet?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
matz

Registriert seit: 9. Sep 2003
31 Beiträge
 
#5

Re: Druckeransteuerung mit Createfile unter WINXP

  Alt 6. Okt 2003, 13:10
wenn ich Lasterrormesssage nach setcomtimeouts ausgebe kommt als Ergebnis 'Falscher Parameter'
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Druckeransteuerung mit Createfile unter WINXP

  Alt 6. Okt 2003, 13:27
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?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
matz

Registriert seit: 9. Sep 2003
31 Beiträge
 
#7

Re: Druckeransteuerung mit Createfile unter WINXP

  Alt 6. Okt 2003, 13:39
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
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Druckeransteuerung mit Createfile unter WINXP

  Alt 6. Okt 2003, 13:45
Moin Matz,




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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
matz

Registriert seit: 9. Sep 2003
31 Beiträge
 
#9

Re: Druckeransteuerung mit Createfile unter WINXP

  Alt 6. Okt 2003, 13:47
Danke für den Tip,

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

Registriert seit: 9. Sep 2003
31 Beiträge
 
#10

Re: Druckeransteuerung mit Createfile unter WINXP

  Alt 6. Okt 2003, 13:59
wenn ich bei dem Parameter dwFlagsAndAttributes 'FILE_FLAG_WRITE_THROUGH or FILE_FLAG_OVERLAPPED' übergebe bekomme ich wieder ein ungültiges Handle
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:04 Uhr.
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