Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Settare la porta di una stampante

Ciao ragazzi...
vi spiego il problemi di oggi. Grazie a questo semplice file batch:
rundll32 printui.dll,PrintUIEntry /if /b "WinshowPDF" /f
%windir%\inf\ntprint.inf /r "LPT1:" /m "Apple LaserWriter II NT v47.0"
installo senza interazione con l'utente una stampante Apple,
configurandola sulla porta LPT1. La stampante viene rinominata come
WinshowPDF.
Io però ho la necessità di far stampare su file il tutto; dovrei
insomma redirigere la stampa sul file C:\Winshow.ps.
Vorrei evitare di far andare l'utente nelle proprietà fare tutto
manualmente.
C'è un sistema da VB, usando API od altro, di cambiare da codice la
porta?
Ho provato a cambiare il parametro /r mettendo
/r "C:\Winshow.ps" ma non funziona
/r "FILE:" funziona, ma mi chiede il file di output ad ogni stampa non
va bene
Grazie mille a chiunque mi possa aiutare!!!!!!
Ciao!!!!

idam...@hotmail.com
 (Igor Damiani) scrive in 
news:2108ecb1.03012...@posting.google.com
:

Tempo fa avevo provato, e non c'ero riuscito :(
Ma...
Per risolvere avevo fatto un 'magheggio' (veramente deprecabile ma 
perfettamente funzionante) che al momento in cui lanciavi la stampa 
scriveva automaticamente nel campo del nome del file il nome che volevo io.
La deprecabilità era nel fatto che usavo l'AppActivate ed il SendKeys per 
farlo... La qual cosa mi ha fatto perdere 100 punti in un solo colpo nella 
classifica della 'programmazione elegante'. Comunque funzionava benissimo.
Dopo la richiesta di stampa (il programma l'avevo scritto io, quindi mi 
risultava facile sapere che era stata richiesta una stampa) aspettavo cha 
apparisse la finestra 'nome del file' (un loop di AppActivate con un 
timeout). Quando appariva scrivevo nel campo 'nome del file' (con SendKeys) 
il nome che volevo. Quindi (sempre con SendKeys) mandavo un bell'INVIO e 
voila. L'utilizzatore non se ne accorgeva nemmeno, perché la velocità di 
esecuzione di una cosa di questo tipo è alta.
Faceva veramente schifo, non era elegante e dovrei vergognarmi solo di 
dirlo. Lo so da solo.
 
-> GbC

 scrive in
news:Xns9310A7E1F4750g...@193.70.192.192
: 
...continua
Ho anche trovato il codice che faceva ciò che ho appena scritto.
Eccolo qua:
Private Sub fascTIMER_Timer()
    Dim A As String, B As String
    B = dEle(0).List(0)            'nome del file
    B = Right(B, Len(B) - 2) + "_" 'nome del file
    psNumFILE = psNumFILE + 1
    A = "c:\cgps\" & B & Format(psNumFILE, "00") & ".ps"
 
On Local Error GoTo NOREQ
 
    'ativa la finestra di richiesta del nome del file
    AppActivate "Stampa su file"
 
    'invia il nome del file
    SendKeys A, False
    'sposta il focus fino all'Ok e preme invio
    SendKeys "{TAB}{TAB}{TAB}{TAB}{TAB}", False
    SendKeys "{ENTER}", False
    fascTIMER.Enabled = False
 
NOREQ:
End Sub
Era un timer a gestire la cosa.
Bye
-> GbC

grazie, anche se effettivamente speravo in qualcosa di più funzionale.......
:-)))
cmq ci proverò, grazie del codice che hai postato!!!
good coding!!!
--
Damiani Liborio Igor
ig...@igordamiani.it
 - 
dam...@italiainfiera.it
 - 
idam...@hotmail.com
http://www.igordamiani.it
ICQ : 11847262

 va bene
Non so se ti va bene, ma vedi i punti 4 e 5 di questo post:
http://groups.google.com/groups?selm=am9sj6%246h2a%241%40stargate1.inet.it
Bye, G.

 ha scritto nel messaggio
news:b142ld$v4dap$1...@ID-108681.news.dfncis.de...


 porta di tipo FILE:
Il sistema funziona di sicuro, lo sto usando da un po'... puň essere che
da codice non sia possibile creare la nuova "porta locale", ma solo
agganciarsi a porte esistenti. Se č cosě (attenzione, perchč ho sparato
al volo :-) ), mi sa che almeno la prima volta lo devi far fare a mano.
Perň un sistema dovrebbe esistere..
Bye, G.

sì, infatti.....ho provato.....
se creo la porta C:\Winshow.ps, allora da questo momento in poi posso
settarla via codice come mi hai detto tu.....
il fatto è che sto creando una sorta di wizard per il primo avvio della mia
applicazione.....
uno dei passaggi consiste, se necessario, nell'installazione di una
stampante PostScript che vada a scrivere il file PS alla root di C: e mi
piacerebbe che sia fatto tutto in automatico, senza che l'utente debba
diventare matto ad andare manualmente nelle proprietà e così via.....
grazie, cmq......
