Foro | | | | - Página 1 - |
|  Rolf Koch | Folgendes es otra vez veces no mi Stärke  Hab una Tool programmiert, wo I una Drucker con el üblichen Apis zugreife. Mir fehlt a dato todavía irgendeine Möglichkeit si la Druckbefehl ankommt vorher el Inhalt auszulesen, bevor él druckt. Also así en el Art: Druckerseite en String. Einer una Concepto? Mir fällt en el Moment nix una  |
| | | | |
| | | | - Página 4 - |
|  | « Dieser Contribución wurde como Solución gekennzeichnet. » | | - Página 4 - |
|  Andreas Miethe
 | Rolf Koch (11/20/10)
So hatte vorm Konzert otra vez gekuckt y festgestellt, daß imprimir test&,wi&,he& Immer 0,0,0 printen. Naja veces gemütlich rangehen y studieren ^ ^
If fragt a el falschen Punto el Devmode-Struktur.  Hoch oder Querformat es a Position 44 como word 1 oder 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"
Declarar JOB_INFO_1#
Declarar druckername$,dokument$,dstring$
Declarar Ende%,lb&,old_count&,entry$,sounddir$,lizenz$
Declarar hicon&,cancel&,Title$,Versión$,config$
Declarar 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
//Ventana de Estilo 64
CLS
imprimir usedll("winspool.drv")
imprimir printer$
imprimir OpenPrinterA(Addr(Printer$),Addr(hPrinter&),0)
imprimir hPrinter&
chgObject& = FindFirstPrinterChangeNotification(hPrinter&,&PRINTER_CHANGE_JOB, 0, 0)
imprimir chgObject&
dateipfad$=$progdir
dstring$="Drucktest.rtf"'Wordpad Expediente bajo Drucktest.rtf gespeichert para Test!
' Am besten una Filedruck auswählen, así uno kein Papier verbraucht.
settimer 50
Sinestar encargado 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
'Imprimir "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&
'Localizar 0,0
druckername$=String$(Largo(JOB_INFO_1#,4),0)
dokument$=String$(Largo(JOB_INFO_1#,16),0)
foundprint&=1
devmoaddr&=Largo(JOB_INFO_1#,40)
test&=long(devmoaddr&,104)
wi&=long(devmoaddr&,108)
he&=long(devmoaddr&,112)
Orientation&=word(devmoaddr&,44)
drv$=cadena$(devmoaddr&,0)
EndIf
Until BytesReturned& = 0
If foundprint&=1
imprimir dokument$
imprimir dstring$
imprimir drv$
imprimir test&,wi&,he&
Imprimir If (Orientation& = 1,"Hochformat","Querformat")
If dokument$=dstring$
'playsound sounddir$+"doorbell.wav",1 'HIER SOUNDAUSGABE
PRINT "Jetzt sería el Lautsprecher Dingdong spielen"
EndIf
EndIf
EndIf
EndIf
EndIf
EndWhile
FindClosePrinterChangeNotification(chgObject&)
ClosePrinter(hPrinter&)
killtimer
End
|
| | | 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 se XPSE porque OpenPrinterA kennen, si nirgends en el Code definiert?
Im Code voluntad sólo si él comenzó es por ImportDll("Winspool.drv","") esta APIs eingeladen, esta Technik kann xpse technisch no "unterstützen" como él no "vorher" wissen kann welche Apis en una irgendwann-irgendwo-Zielsystem disponible ser voluntad. Dazu kommt el esta DLL probablemente no überall permanent geladen es y deshalb en angegebenem $h winspool.ph trotzdem el Funktionsadressen no bezogenen voluntad puede - Yo füge esta DLL como solche Spezialdll en el esta angelegte interne Liste des XPSE así auch solche Características korrekt eingebunden (y calls... ) y genutzt voluntad puede. A Abhilfe bliebe hier sonst sólo una useDll y Funktionsaufrufe de Características de dieser DLL por external oder def...
Como fehlt auch irgendwie si un en el Code...
Yo melde mich wenns me gelingt el código... |
| | | | |
| |  | Probiere veces si Usted el hilft: KompilierenMarcaSeparación {$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 | Gracias IF - sí si un kann fehlen en el Eifer el Kopiergeschichte ^ ^ Kucke entonces später después de, ahora igual zuerst a una Pyracanda Reunion Konzert (20 Years Later - el Metalband, wo Yo veces mitgespielt habe ^ ^) Freu. |
| | | | |
| |  | | | | | |
| |  Rolf Koch | So hatte vorm Konzert otra vez gekuckt y festgestellt, daß imprimir test&,wi&,he& Immer 0,0,0 printen. Naja veces gemütlich rangehen y studieren ^ ^ |
| | | | |
| |  | En me zeigts siempre 0,2900,2100 - wohl Breite, Höhe - hängt aber vom Drucker(Treiber/ Prozessor/ Irgendwas / hoch3) de.
Hab en info2 geändert aber sin Variable umzubenennen, achtung! |
| | | | |
| |  Andreas Miethe
 | Rolf Koch (11/20/10)
So hatte vorm Konzert otra vez gekuckt y festgestellt, daß imprimir test&,wi&,he& Immer 0,0,0 printen. Naja veces gemütlich rangehen y studieren ^ ^
If fragt a el falschen Punto el Devmode-Struktur.  Hoch oder Querformat es a Position 44 como word 1 oder 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"
Declarar JOB_INFO_1#
Declarar druckername$,dokument$,dstring$
Declarar Ende%,lb&,old_count&,entry$,sounddir$,lizenz$
Declarar hicon&,cancel&,Title$,Versión$,config$
Declarar 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
//Ventana de Estilo 64
CLS
imprimir usedll("winspool.drv")
imprimir printer$
imprimir OpenPrinterA(Addr(Printer$),Addr(hPrinter&),0)
imprimir hPrinter&
chgObject& = FindFirstPrinterChangeNotification(hPrinter&,&PRINTER_CHANGE_JOB, 0, 0)
imprimir chgObject&
dateipfad$=$progdir
dstring$="Drucktest.rtf"'Wordpad Expediente bajo Drucktest.rtf gespeichert para Test!
' Am besten una Filedruck auswählen, así uno kein Papier verbraucht.
settimer 50
Sinestar encargado 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
'Imprimir "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&
'Localizar 0,0
druckername$=String$(Largo(JOB_INFO_1#,4),0)
dokument$=String$(Largo(JOB_INFO_1#,16),0)
foundprint&=1
devmoaddr&=Largo(JOB_INFO_1#,40)
test&=long(devmoaddr&,104)
wi&=long(devmoaddr&,108)
he&=long(devmoaddr&,112)
Orientation&=word(devmoaddr&,44)
drv$=cadena$(devmoaddr&,0)
EndIf
Until BytesReturned& = 0
If foundprint&=1
imprimir dokument$
imprimir dstring$
imprimir drv$
imprimir test&,wi&,he&
Imprimir If (Orientation& = 1,"Hochformat","Querformat")
If dokument$=dstring$
'playsound sounddir$+"doorbell.wav",1 'HIER SOUNDAUSGABE
PRINT "Jetzt sería el Lautsprecher Dingdong spielen"
EndIf
EndIf
EndIf
EndIf
EndIf
EndWhile
FindClosePrinterChangeNotification(chgObject&)
ClosePrinter(hPrinter&)
killtimer
End
|
| | | 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 otra vez gekuckt y festgestellt, daß imprimir test&,wi&,he& Immer 0,0,0 printen. Naja veces gemütlich rangehen y studieren ^ ^
If fragt a el falschen Punto el Devmode-Struktur.  Hoch oder Querformat es a Position 44 como word 1 oder 2
Stimmt+Verflixt! 
Super, ahora funktionierts! |
| | | | |
| |  Rolf Koch | WOW igual direkt veces testen - Andreas Gracias!!! Yo glaube Andreas debería veces langsam el DOKTOR XPROFAN EHRENHALBER verliehen bekommen  |
| | | | |
| |  | Rolf Koch (20.11.10)
WOW igual direkt veces testen - Andreas Gracias!!! Yo glaube Andreas debería veces langsam el DOKTOR XPROFAN EHRENHALBER verliehen bekommen 
Bin ya esta dies Comunidad beizubringen/ einzuprogrammieren! |
| | | | |
| |  Rolf Koch | Apéndice: Yo bin voll entzückt - geil! Lo klappt hervorragend! Los! Alle schreien: Andreas bekommt el Ehrendoktor XPROFAN! Und para alles otro voluntad Yo una otro Person como Ehrendoktor para XPROFAN - wer wohl? Klar IF!!!! |
| | | | |
| |  | | | | | |
|
RespuestaTema opciones | 52.517 Views |
ThemeninformationenDieses Thema ha 4 subscriber: |