| |
|
|
- page 1 - |
|
Rolf Koch | Folgendes ist wieder la fois pas mon Stärke Hab un Tool programmiert, wohin je sur une Drucker avec den habituel Apis zugreife. Mir fehlt jusqu'à dato encore irgendeine Possibilité si qui Druckbefehl ankommt auparavant den le contenu auszulesen, bevor il druckt. alors so dans qui Art: Druckerseite dans String. Einer une concept? Mir fällt im Moment nix un |
|
|
| |
|
|
| |
|
- page 5 - |
|
|
« cette Beitrag wurde comme Solution gekennzeichnet. » |
|
- page 4 - |
|
Andreas Miethe
| Rolf Koch (11/20/10)
So hatte vorm Konzert nochmal gekuckt et festgestellt, qui imprimer test&,wi&,he& toujours 0,0,0 printen. bof la fois gemütlich rangehen et étudier ^ ^
Si fragt à qui falschen Stelle qui Devmode-Struktur. Hoch ou bien Querformat steht à Position 44 comme word 1 ou bien 2
{$cleq}
$H Windows.ph
$H winspool.ph
DEF Get_STDPrinter(1) Substr$(ReadIni$("WIN.INI","Windows","Device"),@&(1),»)
DEF &PRINTER_CHANGE_JOB $FF00
DEF &INFINITE $FFFFFFFF
DEF &PRINTER_CHANGE_ADD_JOB $100
DEF OpenPrinterA(3) !"winspool.drv","OpenPrinterA"
DEF FindFirstPrinterChangeNotification(4) !"winspool.drv","FindFirstPrinterChangeNotification"
DEF FindNextPrinterChangeNotification(4) !"winspool.drv","FindNextPrinterChangeNotification"
DEF EnumJobsA(8) !"winspool.drv","EnumJobsA"
DEF FindClosePrinterChangeNotification(1) !"winspool.drv","FindClosePrinterChangeNotification"
DEF ClosePrinter(1) !"winspool.drv","ClosePrinter"
Déclarer JOB_INFO_1#
Déclarer druckername$,dokument$,dstring$
Déclarer Ende%,lb&,old_count&,entry$,sounddir$,lizenz$
Déclarer hicon&,cancel&,Title$,Version$,config$
Déclarer wav$,dateipfad$,belege$,wurde$,new$,abelege%
Var InfoBuffer& = 0
Var BytesNeeded& = 0
Var BytesReturned& = 0;
Var A& = 0
Var L& = 0
Var chgObject& = 0
Var pdwChange& = 0
Var fcnreturn& = 0
Var hPrinter& = 0
Var foundprint& = 0
Var Printer$ = Get_STDPrinter(1)
Var devmoaddr&=0
Var drv$=»
Var wi&=0
Var he&=0
Var Orientation&=0
Var test&=0
//Fenêtre Style 64
CLS
imprimer usedll("winspool.drv")
imprimer printer$
imprimer OpenPrinterA(Addr(Printer$),Addr(hPrinter&),0)
imprimer hPrinter&
chgObject& = FindFirstPrinterChangeNotification(hPrinter&,&PRINTER_CHANGE_JOB, 0, 0)
imprimer chgObject&
dateipfad$=$progdir
dstring$="Drucktest.rtf"'Wordpad Dossier sous Drucktest.rtf gespeichert pour Test!
' Am besten une Filedruck auswählen, avec cela on ne...aucune papier usé.
settimer 50
WhileNot Ende%
Waitinput
Si %wmtimer
~WaitForSingleObject(chgObject&,150)'200 Millisekunden attendre
fcnreturn& = FindNextPrinterChangeNotification(chgObject&, Addr(pdwChange&),0,0)
foundprint&=0
Si fcnreturn&
Si pdwChange& = &PRINTER_CHANGE_ADD_JOB
'Imprimer "neuer Druck-Job"
EnumJobsA(hPrinter&,0,1,2,0,0,Addr(BytesNeeded&),Addr(BytesReturned&))
Faible JOB_INFO_1#,BytesNeeded&
Repeat
EnumJobsA(hPrinter&,0,1,2,JOB_INFO_1#,BytesNeeded&,Addr(BytesNeeded&),Addr(BytesReturned&))
Si BytesReturned&
'Localiser 0,0
druckername$=String$(Long(JOB_INFO_1#,4),0)
dokument$=String$(Long(JOB_INFO_1#,16),0)
foundprint&=1
devmoaddr&=Long(JOB_INFO_1#,40)
test&=long(devmoaddr&,104)
wi&=long(devmoaddr&,108)
he&=long(devmoaddr&,112)
Orientation&=word(devmoaddr&,44)
drv$=string$(devmoaddr&,0)
EndIf
Until BytesReturned& = 0
Si foundprint&=1
imprimer dokument$
imprimer dstring$
imprimer drv$
imprimer test&,wi&,he&
Imprimer Si (Orientation& = 1,"Hochformat","Querformat")
Si dokument$=dstring$
'playsound sounddir$+"doorbell.wav",1 'ICI SOUNDAUSGABE
PRINT "Jetzt serait qui le haut-parleur Dingdong spielen"
EndIf
EndIf
EndIf
EndIf
EndIf
Endwhile
FindClosePrinterChangeNotification(chgObject&)
ClosePrinter(hPrinter&)
killtimer
Fin
|
|
|
| Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 20.11.2010 ▲ |
|
|
|
|
|
Rolf Koch | malheureusement ist cela Thema doch pas erledigt. Alles autre sur qui travail kapiert es joli, de à cause de Quer et Hochformat. Ausser oui c'est ca cet partie quoi je unterscheiden muss, bleibt avec anderen Ausdrucken juste et écrit: Hochformat. alors muss je doch une autre Solution trouver, comment le contenu lesen ou bien so |
|
|
| |
|
|
|
Rolf Koch | Nachtrag: Wobei je pas weis, comment qui ensuite cela Querformat herstellen et drucken dans qui Anwendung. suis mich am druchkämpfen dans den Api's. Irgendwas muss es donner um herauszubekommen, chez gleichem Titel irgendwas différent im Druckdokument pour trouver. il y a doch eigentlich rien, quoi pas allez, ou bien? |
|
|
| |
|
|
|
| je sais maintenant pas ad hoc comment grand qui DevMode ist mais vlt. könntest Du la fois Dumps en Blockwriten aussi de den JobInfo1..3-Sauver.
cela klärt imho zwar pas cela Lecture qui Druckersteuerzeichen mais hilft arrêt beim comparer. |
|
|
| |
|
|
|
Rolf Koch | je werd encore fou. Neues Problem, quoique cela Programme dans qui forme depuis long Zeit fonctionne. Programme startet le matin um 09:00 et zum 3ten la fois bekomme je so um 19:00 montre une annonce: Bereichsvariable pas dimensioniert. Komisch. il y a oui seulement une Bereichsvariable et qui ist dimensioniert. Code liegt oui ici avant. mais pourquoi pour so long Zeit? je mets oui une Minuteur sur 50. si es quoi avec diesem trop 1faire hat? Wäre unlogisch, mais possible ist alles. Es wird aussi ne...aucune Dispose genutzt, lt. Aider gestattet, es wird alors toujours récente Faible benutzt. mais si es vlcht. daran liegt? |
|
|
| |
|
|
|
| Rolf Koch (23.11.10)
je werd encore fou.
Haha!
Rolf Koch (23.11.10)
Neues Problem, quoique cela Programme dans qui forme depuis long Zeit fonctionne.
qui vorherige Version ou bien qui Neuere?
Rolf Koch (23.11.10)
Programme startet le matin um 09:00 et zum 3ten la fois bekomme je so um 19:00 montre une annonce: Bereichsvariable pas dimensioniert. Komisch. il y a oui seulement une Bereichsvariable et qui ist dimensioniert. Code liegt oui ici avant. mais pourquoi pour so long Zeit?
Im Code steht Faible JOB_INFO_1#,BytesNeeded& - si BytesNeeded& 0 ist?
car le cas serait je abprüfen. |
|
|
| |
|
|
|
Rolf Koch | qui neue Version. mais peux es 0 son? - weil oui là bereits un Druckauftrag vorliegt. |
|
|
| |
|
|
|
| c'est steht imho pas geschrieben cela là toujours Werte > 0 arriver. ^ ^
qui annonce jedenfalls peux on avec: KompilierenMarqueSéparation"provozieren". |
|
|
| |
|
|
|
Rolf Koch | Aja, grad la fois im Taskmanager beobachtet. toujours si un Druck erkannt wurde et fertig ist, so steigt qui grenier um mind. 4k ??? Muss je wohl doch quelque chose freigeben. |
|
|
| |
|
|
|
Rolf Koch | Stimmt iF qui annonce venez. Müsste je alors encore un si drumrumbasteln, si bytesneeded = 0lig ist ^ ^ |
|
|
| |
|
|
|
| Rolf Koch (23.11.10)
Aja, grad la fois im Taskmanager beobachtet. toujours si un Druck erkannt wurde et fertig ist, so steigt qui grenier um mind. 4k ??? Muss je wohl doch quelque chose freigeben.
Im obigen Code steht cela Faible im Hauptprogramm wohin qui zugehörige Variable seulement 1la fois deklariert et toujours bekannt ist - si Du cela im réel Programme mais dans einer Funktion ablaufen peut ensuite fehlt naturellement un dispose. ^ ^ |
|
|
| |
|
|
|
Rolf Koch | cela Faible et qui Variable wird oui seulement im Hauptprogramm genutzt. Obiger Code ist presque qui identische. là gibt es pas plus viel plus. |
|
|
| |
|
|
|
Rolf Koch | |
|
| |
|
|