| |
|
|
- Seite 1 - |
|
Rolf Koch | Hallöchen heut frag ich mal so in die Runde, da ich mit Drucken nie soviel gemacht habe. Folgende Problemstellung: Wir haben bei uns ein Computer mit Drucker auf dem Lager. Wenn ein Kunde ein Gerät gekauft hat und an der Kasse bezahlt hat, so kommt bei uns ein entsprechender Beleg aus dem Drucker, damit wir die Waschmaschine, TV oder solch ein Zeugs raussuchen können. Jetzt würde ich gerne ein nebenbeilaufendes Tool schreiben, welches einen Sound abspielt, wenn ein solcher Beleg aus dem Drucker kommt. Meint Ihr, ich könnte dies irgendwie erreichen? |
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
| Hehe und jetzt kannst die Info noch mit Gonzo per Bot nach Australien schicken und dort wird dann der Mülleimer ausgeleert. |
|
|
| |
|
|
|
Rolf Koch | Grad mit iF geskypet. Ich darf leider von der Fa. aus keine Fremdsoftware (lediglich dann meine) installieren. Also geht diese Variante auch nicht |
|
|
| |
|
|
|
Frank Abbing | Das Tool nutzt die Windows-Job-API. Schau dir die doch mal an:
AbortPrinter AbortProc AddForm AddJob AddMonitor AddPort AddPrinter AddPrinterConnection AddPrinterDriver AddPrintProcessor AddPrintProvidor AdvancedDocumentProperties ClosePrinter ConfigurePort ConnectToPrinterDlg DeleteForm DeleteMonitor DeletePort DeletePrinter DeletePrinterConnection DeletePrinterData DeletePrinterDriver DeletePrintProcessor DeletePrintProvidor DocumentProperties EndDocPrinter EndPagePrinter EnumForms EnumJobs EnumMonitors EnumPorts EnumPrinterData EnumPrinterDrivers EnumPrinters EnumPrintProcessorDataTypes EnumPrintProcessors FindClosePrinterChangeNotification FindFirstPrinterChangeNotification FindNextPrinterChangeNotification FreePrinterNotifyInfo GetForm GetJob GetPrinter GetPrinterData GetPrinterDriver GetPrinterDriverDirectory GetPrintProcessorDirectory OpenPrinter PrinterMessageBox PrinterProperties ReadPrinter ResetPrinter ScheduleJob SetForm SetJob SetPort SetPrinter SetPrinterData StartDocPrinter StartPagePrinter WaitForPrinterChange WritePrinter |
|
|
| |
|
|
|
Rolf Koch | OK Frank Danke werde mir das in einer ruhigen Minute (Stunden ^^) mal reinziehen |
|
|
| |
|
|
|
E.T. | Ich hatte auch mal sowas für zu Hause gebastelt. Ich hab da aber einfach nur das Spool-Verzeichnis überwacht, ob was drinn liegt (also die simple Form ohne API usw.). Hat ganz gut funktioniert, es wurden bei mir alle 4 Drucker (incl. pdf-Printer) bemerkt. Vorraussetztung ist natürlich, das der (die) Drucker den Spooler nutzen (aber das ist ja meißt so). |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 21.12.2008 ▲ |
|
|
|
|
Rolf Koch | Hört sich gut an E.T. Ich gebe ehrlich zu, daß ich garnicht wusste, daß es ein Verzeichnis gibt. Ist dies ein Tempverz.? |
|
|
| |
|
|
|
Rolf Koch | Aja Danke für die Info [...] |
|
|
| |
|
|
|
E.T. | Nicht schön, aber auf die Schnelle . Bei mir funzt es, es werden auch pdf-Drucker, Fax-Drucker etc. berücksichtigt. Das Verz. muß natürlich passen. Bei mir geht das jetzige Bsp nicht ohne Fenster (ListBoxList ?? ), aber so ist der Test wenigstens wieder beendbar KompilierenMarkierenSeparieren Erzeugt bei mir auch keine Prozessor-Last. |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 21.12.2008 ▲ |
|
|
|
|
Rolf Koch | Ist ja wieder typisch. Egal was ich drucke im Pfad passiert nix. Es werden keine Dateien abgelegt (also tempmässig und überhaupt) Nachtrag: Doch - hab mal das waitinput durch sleep ersetzt und schon funktioniert es. Komisch. Naja will ja sowieso dann mit einem Timer arbeiten. |
|
|
| |
|
|
|
Paul Glatz | Bei mir geht es! (Win Vista) |
|
|
| |
|
|
|
E.T. | Schon mal in die Drucker-Einstellungen geschaut ?? |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 21.12.2008 ▲ |
|
|
|
|
Andreas Miethe
| Hallo Rolf, versuchs mal hiermit, da wird der Standard-Dricker überwacht. KompilierenMarkierenSeparieren $H windows.ph
DEF Get_STDPrinter(1) Substr$(ReadIni$("WIN.INI","Windows","Device"),@&(1),",")
Var Spool& = ImportDll("Winspool.drv","")
cls
DEF &PRINTER_CHANGE_JOB $FF00
DEF &INFINITE $FFFFFFFF
DEF &PRINTER_CHANGE_ADD_JOB $100
Var A& = 0
Var chgObject& = 0
Var pdwChange& = 0
Var fcnreturn& = 0
Var hPrinter& = 0
Var Printer$ = Get_STDPrinter(1)
OpenPrinterA(Addr(Printer$),Addr(hPrinter&),0)
chgObject& = FindFirstPrinterChangeNotification(hPrinter&,&PRINTER_CHANGE_JOB, 0, 0)
Repeat
~WaitForSingleObject(chgObject&,200)200 Millisekunden warten
fcnreturn& = FindNextPrinterChangeNotification(chgObject&, Addr(pdwChange&),0,0)
If fcnreturn&
If pdwChange& = &PRINTER_CHANGE_ADD_JOB
Print "neuer Druck-Job"
endif
Endif
Until A& = 1Abbruchbedingungen vielleicht besser mit einem Button bestimmen ?
FindClosePrinterChangeNotification(chgObject&)
ClosePrinter(hPrinter&)
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 : [...] | 21.12.2008 ▲ |
|
|
|