Forum | | | | - 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 4 - |
| | « 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: Woher soll XPSE car OpenPrinterA connaître, si nirgends im Code défini?
Im Code volonté seulement si il gestartet ist per ImportDll("Winspool.drv",») cet APIs eingeladen, cet technologie peux xpse technique pas "unterstützen" là il pas "vorher" savons peux quelle Apis sur einem irgendwann-irgendwo-Zielsystem vorhanden son volonté. en supplément venez cela cet DLL wohl pas überall permanent geladen ist et c'est pourquoi chez spécifié $h winspool.ph quand même qui Funktionsadressen pas bezogenen volonté peut - je füge cet DLL comme solche Spezialdll dans qui hierfür échelle interne liste des XPSE avec cela aussi solche Funktionen korrekt eingebunden (et dans calls... ) et genutzt volonté peut. Zur Abhilfe bliebe ici sonst seulement un useDll et Funktionsaufrufe de Funktionen aus cette DLL per external ou bien def...
là fehlt aussi irgendwie un si im Code...
je melde mich wenns mir gelingt den Code... |
| | | | |
| | | Probiere la fois si Dir cela hilft: KompilierenMarqueSéparation {$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"
Declare JOB_INFO_1#
Declare druckername$,dokument$,dstring$
Declare Ende%,lb&,old_count&,entry$,sounddir$,lizenz$
Declare hicon&,cancel&,Title$,Version$,config$
Declare 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 test&=0
//WindowStyle 64
cls
print usedll("winspool.drv")
print printer$
print OpenPrinterA(Addr(Printer$),Addr(hPrinter&),0)
print hPrinter&
chgObject& = FindFirstPrinterChangeNotification(hPrinter&,&PRINTER_CHANGE_JOB, 0, 0)
print chgObject&
dateipfad$=$progdir
dstring$="Drucktest.rtf"'Wordpad Datei unter Drucktest.rtf gespeichert für Test!
' Am besten einen Filedruck auswählen, damit man kein Papier verbraucht.
settimer 50
WhileNot Ende%
waitinput
if %wmtimer
~WaitForSingleObject(chgObject&,150)'200 Millisekunden warten
fcnreturn& = FindNextPrinterChangeNotification(chgObject&, Addr(pdwChange&),0,0)
foundprint&=0
If fcnreturn&
If pdwChange& = &PRINTER_CHANGE_ADD_JOB
'Print "neuer Druck-Job"
EnumJobsA(hPrinter&,0,1,2,0,0,Addr(BytesNeeded&),Addr(BytesReturned&))
Dim JOB_INFO_1#,BytesNeeded&
Repeat
EnumJobsA(hPrinter&,0,1,2,JOB_INFO_1#,BytesNeeded&,Addr(BytesNeeded&),Addr(BytesReturned&))
If BytesReturned&
'Locate 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)
drv$=string$(devmoaddr&,0)
Endif
Until BytesReturned& = 0
if foundprint&=1
print dokument$
print dstring$
print drv$
print test&,wi&,he&
if dokument$=dstring$
'playsound sounddir$+"doorbell.wav",1 'HIER SOUNDAUSGABE
PRINT "Jetzt würde der Lautsprecher Dingdong spielen"
endif
endif
endif
Endif
Endif
endwhile
FindClosePrinterChangeNotification(chgObject&)
ClosePrinter(hPrinter&)
killtimer
end
|
| | | | |
| | Rolf Koch | merci iF - oui un si peux manquer im zèle qui Kopiergeschichte ^ ^ Kucke ensuite später pour, maintenant juste d'abord trop einem Pyracanda Reunion Konzert (20 Years Later - qui Metalband, wohin je la fois mitgespielt habe ^ ^) Freu. |
| | | | |
| | | | | | | |
| | Rolf Koch | 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 ^ ^ |
| | | | |
| | | chez mir zeigts toujours 0,2900,2100 - wohl Breite, Hauteur - hängt mais vom Drucker(Treiber/ Prozessor/ Irgendwas / hoch3) ab.
Hab sur info2 geändert mais sans Variable umzubenennen, attention! |
| | | | |
| | 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 ▲ |
| |
| | | Andreas Miethe (20.11.10)
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
Stimmt+Verflixt!
Super, maintenant funktionierts! |
| | | | |
| | Rolf Koch | WOW juste direct la fois testen - Andreas merci!!! je crois Andreas sollte la fois lente den DOKTOR XPROFAN EHRENHALBER verliehen bekommen |
| | | | |
| | | Rolf Koch (20.11.10)
WOW juste direct la fois testen - Andreas merci!!! je crois Andreas sollte la fois lente den DOKTOR XPROFAN EHRENHALBER verliehen bekommen
suis déjà dabei ca qui Community beizubringen/ einzuprogrammieren! |
| | | | |
| | Rolf Koch | Nachtrag: je suis voll entzückt - geil! Es klappt hervorragend! à l'attaque! Alle schreien: Andreas bekommt den Ehrendoktor XPROFAN! et pour alles autre veux je une autre personne comme Ehrendoktor pour XPROFAN - qui wohl? bien sûr iF!!!! |
| | | | |
| | | | | | | |
|
répondreOptions du sujet | 47.217 Views |
Themeninformationencet Thema hat 4 participant: |