Oppure

Loading
26/07/11 16:35
gibra
Postato originariamente da wuolfit:

In cos'è che è sbagliata???? Non mi puoi dare qualche dritta per favore????


E' chiaro che la mia voleva essere una battuta.

Siccome la ShellExecute() in questo caso specifico richiede solo il percorso del file (a parte il verbo ("print", "open", ...) non ci vuole molto a capire che se non ti funziona il problema può essere solamente causato dal parametro del percorso del file.

Ora, se tu lamenti un problema, e poi scrivi
"percorso del file"
chi potrà mai aiutarti a capire dov'è l'errore? :asd:

Posta il vero valore che passi alla funzione, perchè il problema può essere solo quello.

HTH

aaa
27/07/11 7:21
wuolfit
beh al posto di "percorso del file" va messo Dir1.path & "\" & File1.FileName quindi la stringa che uso è :




stampa = ShellExecute(0, "Print", Dir1.path & "\" & File1.FileName, "", "", 0)




(ovviamente Dir1 è una dirlistbox, mentre File1 è una Filelistbox) ora con questa istruzione mi stampa il file che io seleziono dalla mia filelistbox usando la stampante predefinita e non quella che io vorrei usare
Ultima modifica effettuata da wuolfit 27/07/11 7:55
aaa
27/07/11 11:25
gibra
Ecco, appunto! ShellExecute non c'entra nulla con il tuo problema.

Ti avevo già segnalato come fare (proprio in questa discussione) per la stampante predefinita, ma evidentemente o non hai letto, oppure ti è sfuggito...
Eppure l'ho messo anche in grassetto! :-|

Di più cosa posso dire? :_doubt:

aaa
28/07/11 7:41
wuolfit
Effettivamente il link che avevi postato lo avevo ignorato, non perché non l'avessi visto o letto, ma perché non fà altro che farmi creare una lista da cui scegliere la stampante(proprio la cosa che volevo evitare), invece speravo che ci fosse un metodo, anche con i filelistbox o similari, per mandare in stampa i miei documenti, senza dover usare questa procedura. Allora non era più comodo fare così ????


Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal ShowCmd As Long) As Long

Dim stampa As Long

CommonDialog1.ShowPrinter
stampa = ShellExecute(0, "Print", Dir1.path & "\" & File1.FileName, "", "", 0)



dove ovviamente con CommonDialog1.ShowPrinter mi viene mostrato la classica finestra di sistema da cui scegliere la mia stampante
Ultima modifica effettuata da wuolfit 28/07/11 7:48
aaa
28/07/11 11:41
gibra
A parte che non è questione di 'comodo' ma di 'efficiente'.
Dipende da coma si vuole procedere.

In ogni caso la ShellExecute() stamperà sempre sulla stampante predefinita, quindi l'uso del CommonDialog non produce alcun effetto, perchè per funzionare devi modificare la stampante predefinita di sistema, ed il CommonDialog non lo fa.

Tu, inizialmente, hai chiesto di NON voler stampare con la stampante predefinita, ma di usarne sempre un'altra.

Sta a te decidere se visualizzare all'utente ("ogni volta" che stampa) la finestra di selezione della stampante.
Questo può essere definito: comodo.

Oppure se impostare una determinata stampante solo [/b]per la tua applicazione[/b].
Questo può essere definito: efficiente.

Se non ricordo male, era questo che chiedevi in un tuo precedente post (se non è così allora mi sono confuso con qualcun'altro :D).

HTH
aaa
28/07/11 13:38
wuolfit
Si si ricordi bene.....dicevo che commondialog è più comodo o efficiente che dir si voglia perché comunque mi permette di scegliere la stampante che voglio usare, per poi rimettere tutto in ordine senza scrivere tonnellate di codice....Grazie per il tuo aiuto ora ho chiaro come devo agire per risolvere questa cosa!!!!
Ultima modifica effettuata da wuolfit 28/07/11 13:42
aaa