Vai al contenuto
PLC Forum


Lanciare Wordpad Con Vb6 Su Tutti I Computer - percorsi di wordpad diversi


STEU

Messaggi consigliati

In un programma di visual basic, devo aprire wordpad per leggere un file di errore, ed utilizzo la seguente riga di comando:

Shell "C:\Programmi\Windows NT\Accessori\wordpad.exe" & " " & percorso & "error.log"

Tutto funziona benissimo.

Il problema è che se il programma gira su un altro computer dove il percorso di wordpad è diverso mi da errore.

Esistono delle variabili di sistema o qualcosa che possa mettere nella riga di codice precedente in modo che la mia applicazione vada sempre a prendere wordpad in qualsiasi cartella si trovi in qualsiasi computer?

Ho gia' cercato con la funzione cerca ma purtroppo non sono riuscito a trovare la risposta giusta.

Grazie a chi mi puo' aiutare e buone feste a tutti

Link al commento
Condividi su altri siti


Prova con Questo codice (naturalmente devi avere associato all'estensione .doc WordPad)

Ciao e Buone Feste a tutti :)

MyFname = "C:\DOC\Ciao.doc"

If Len(Dir(MyFname)) = 0 Then ' If exist file

Beep

MsgBox " File '" & MyFname & "' Not Found ! "

Else

If RunProg(MyFname, Me) < 32 Then

MsgBox "Error connecting to file " & MyFname & " !", vbCritical

End If

End If

Link al commento
Condividi su altri siti

Per recuperare il percorso del WordPad, leggi la chiave di registro

HKEY_CLASSES_ROOT\Applications\wordpad.exe\shell\open\command

In essa (vado a memoria :(<_< ) dovrebbe esserci il percorso assoluto

della posizione dell'eseguibile

Buon lavoro

Link al commento
Condividi su altri siti

.... <_<:(:blink:

Prova a guardare sul sito www.visual-basic.it nell'area download;

nel box di ricerca digita "registry" e vedrai che compariranno molte

voci con file di esempio da scaricare riportanti tutte le istruzioni per

leggere/scrivere il registro (sempre che hai deciso di seguire la

strada da me consigliata). In caso contrario, spiegaci cosa non hai

capito del codice di "ifachsoftware".

Facci sapere B)

Link al commento
Condividi su altri siti

Ti ringrazio jumper mi sto interessandoin vari siti di vb.

La tua soluzione mi sembra piu' interessante, ma non so come leggere in vb le chiavi di registro di windows.

Per quanto riguarda il codice di Ifachsoftware , mi sto documentando su dei manuali e voglio capire bene tutte le istruzioni e funzioni utilizzate da lui.Non mi sembra un codice molto capibile per chi come me e' alle prime armi, comunque lo ringrazio e intuendo,solo intuendo ma non capendo benissimo , mi è da stimolo per migliorarmi.grazie comunque

Modificato: da STEU
Link al commento
Condividi su altri siti

Non mi sembra che ci sia molto da capire.

C'e' un file MODRUNPROG.BAS che implementa la chiamata ad alle API di Windows per lanciare l'esecuzione di un file.

Il programma che lo aprira' dipendera' dall'estensione.

Nel tuo caso se metti un file .DOC se hai associato Wordpad per tale operazione verra' usato tale programma (default di Windos).

Se hai installato Word verra' usato tale programma a meno che non modifichi l'associazione per l'estensione .DOC a Wordpad.

Per richiamare il programma c'e' la parte iniziale del codice cheprima testa se il file esiste , se si lo lancia ritornando un messaggio di errore in caso di errore.

Ciao :)

Link al commento
Condividi su altri siti

Ifachsoftware mi puoi consigliare qualche manuale o qualche link in rete(non sono riuscito a trovarli :rolleyes: ) dove mi si spieghi cosa sono e cosa servono le API.

Te ne sarei veramente grato

Link al commento
Condividi su altri siti

Ciao a tutti

Posto la mia versione di un programma funzionante per lanciare documenti:

Codice Modulo: (per inserire un modulo: Menù "Progetto"->"Inserisci Modulo")

#If Win32 Then
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 nShowCmd As Long) As Long
Declare Function GetDesktopWindow Lib "user32" () As Long
#Else
Declare Function ShellExecute Lib "SHELL" (ByVal hwnd%, _
ByVal lpszOp$, ByVal lpszFile$, ByVal lpszParams$, _
ByVal lpszDir$, ByVal fsShowCmd%) As Integer
Declare Function GetDesktopWindow Lib "USER" () As Integer
#End If

Public Const SW_SHOWNORMAL = 1
Function StartDoc(DocName As String) As Long
Dim Scr_hDC As Long
Scr_hDC = GetDesktopWindow()
StartDoc = ShellExecute(Scr_hDC, "Open", DocName, "", "C:\", SW_SHOWNORMAL)
End Function
Codice Form Creare un Command Button con nome cmdExe
Private Sub cmdExe_Click()
StartDoc [b]percorso & "errors.log"[/b]  'sostituire qui il nome e il percorso del file
DoEvents
End Sub

Funzionante al 100%

la funzione StartDoc può eseguire qualsiasi file aprendolo con l'applicazione associata.

Spero possa esservi utile

Saluti e auguri

Simons

:)

Modificato: da Simons
Link al commento
Condividi su altri siti

Questo, se ti può servire, è un semplice codice

Che ti apre qualsiasi file con il suo programma predefinito.

Ciao

La parte rossa rende la path univoca

La parte verde intercetta l'errore se il file non esiste(o altro)

E sono entrambe eliminabili

La parte nera è il richiamo della Schell

-----------------------------------

Option Explicit

-----------------------------------

Private Sub ApriDocumento_Click()

Dim pathcorrente As String

pathcorrente = App.Path

On Local Error GoTo Errore

Call Shell("rundll32.exe shell32.dll,OpenAs_RunDLL " & Trim("NomeFile.doc"), vbNormalFocus)

Exit Sub

Errore:

MsgBox "Non ho trovato il documento - NomeFile.doc - ", vbExclamation, "Attenzione"

End Sub

--------------------------------------

Modificato: da Brothers
Link al commento
Condividi su altri siti

PS.Dimenticavo di dirti che se il file è nella directory dell'applicazione

"basta il nome file" se nò devi mettere la Path

Tipo:

pathcorrente & "\Fileditesto\" & "NomeFile.doc"

Dove pathcorrente è la directory dell'applicazione

\Fileditesto\ è la sottodirectory

"NomeFile.doc" è il nome del file

NB.Staccarli in questo modo

ti può servire per poter fare scegliere tra più file.

Puoi anche inserire una CommonDialog. e una TextBox

e la scelta aumenta.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...