Ho creato uno script .vbs che modifica il sys reg. e funziona a dovere !
Avrei però necessità che venga eseguito in automatico ogni volta che viene lanciata una stampa da un qualsiasi applicativo !
C'è un modo per farlo ?![]()
Ho creato uno script .vbs che modifica il sys reg. e funziona a dovere !
Avrei però necessità che venga eseguito in automatico ogni volta che viene lanciata una stampa da un qualsiasi applicativo !
C'è un modo per farlo ?![]()
Gli unici modi che mi vengono in mente sono di usare un qualche driver stampante "proxy" che venga usato per stampare che inoltri poi il lavoro di stampa al driver appropriato (ma è una soluzione molto complessa e non so neanche se fattibile) o controllare costantemente la cartella che lo spooler usa per memorizzare i file temporanei da inviare alla stampante (solitamente %windir%\system32\spool\PRINTERS - dove system32 è system sui sistemi Windows 9x) tramite la API ReadDirectoryChangesW o le FindFirstChangeNotification/FindNextChangeNotification/FindCloseChangeNotification. Questo sistema è molto più semplice, ma potrebbe non funzionare se non viene creato un file temporaneo (come accade nel caso in cui lo spooler è configurato per inviare direttamente i dati alla stampante). In ogni caso per questo mestiere non puoi usare il VBScript, hai bisogno di C/C++.
Amaro C++, il gusto pieno dell'undefined behavior.
VBS essendo derivato da VB (lo dice il nome stesso) viene trattato nel forum di VB.
Sposto.
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
OK scusa !Originariamente inviato da LeleFT
VBS essendo derivato da VB (lo dice il nome stesso) viene trattato nel forum di VB.
Sposto.
Ciao.![]()
![]()
Grazie della risposta !Originariamente inviato da MItaly
Gli unici modi che mi vengono in mente sono di usare un qualche driver stampante "proxy" che venga usato per stampare che inoltri poi il lavoro di stampa al driver appropriato (ma è una soluzione molto complessa e non so neanche se fattibile) o controllare costantemente la cartella che lo spooler usa per memorizzare i file temporanei da inviare alla stampante (solitamente %windir%\system32\spool\PRINTERS - dove system32 è system sui sistemi Windows 9x) tramite la API ReadDirectoryChangesW o le FindFirstChangeNotification/FindNextChangeNotification/FindCloseChangeNotification. Questo sistema è molto più semplice, ma potrebbe non funzionare se non viene creato un file temporaneo (come accade nel caso in cui lo spooler è configurato per inviare direttamente i dati alla stampante). In ogni caso per questo mestiere non puoi usare il VBScript, hai bisogno di C/C++.
Monitorare la cartella degli spool è un ottima idea, ma io ho bisogno di esguire lo script prima di generare lo spool !
Altrimenti non è possibile creare un "driver virtuale" (forse questo è quello che intendevi con driver "proxy" ) che mi esegua lo script e poi vada a richiamare normalmente il driver stampante ?
Per il c/c++ lasciamo stare, non sono un programmatore e non ho la pretesa di diventarlo, sarebbe quindi molto complicato per me !
Ho pensato a vbs perchè conosco un po' di VB e perchè è abbastanza semplice !
Cosa fa esattamente questo script? Esattamente in che momento andrebbe eseguito?Originariamente inviato da ingommatore
Grazie della risposta !
Monitorare la cartella degli spool è un ottima idea, ma io ho bisogno di esguire lo script prima di generare lo spool !
Crearlo è un gran casino (devi conoscere il C e il Windows DDK come le tue tasche), ma puoi sempre sfruttare qualcosa di già fatto.Altrimenti non è possibile creare un "driver virtuale" (forse questo è quello che intendevi con driver "proxy" ) che mi esegua lo script e poi vada a richiamare normalmente il driver stampante ?
Amaro C++, il gusto pieno dell'undefined behavior.
Allora:
Lo script non fa altro che aprire una inputbox che chiede il nome del file, poi va scrivere questa stringa nel registro di windows !
Quando si lancia la stampa sull' Hard Disk della stampante (una multifunzione) il driver va a pescare quel nome dal registro e così sul display della macchina visualizzo il nome del file !
Quello che mi servirebbe è far apparire questa inputbox prima di ogni stampa in modo da obbligare l'utente a digitare un nome per la stampa !
Dunque, ho fatto una ricerca un po' più accurata: potresti usare le API FindFirstPrinterChangeNotification/FindNextPrinterChangeNotification/FindClosePrinterChangeNotification per ottenere notifiche della creazione di nuovi lavori di stampa, ma per poterle usare devi necessariamente usare un linguaggio di programmazione vero (il C qui è quasi d'obbligo); in ogni la faccenda non mi pare più tanto complessa.
Amaro C++, il gusto pieno dell'undefined behavior.
Grazie dell' aiuto, ma per quanto semplice non saprei veramente da dove cominciare !![]()