Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Lanciare Un Exe A Scelta Ritrovando Gli Altri - come mai mi scompare tutto il resto!?


Messaggi consigliati

Inserito:

E cioè:

Come cambiare exe da lanciare quando i file non sono nella stessa directory.

Se io apro un CommonDialog in una directory quando poi voglio un altro file in un altra directory non lo trova più anche cambiandogli .FileName tramite codice in una form.

Tutti i controlli tipo FileListBox cambiano impostazioni e visualizzazioni relativamente all'ultimo CommonDialog aperto con showopen !!?.

Non capisco proprio , che forse devo sempre tenere tutto nella stessa directory, ?mi sembra un po assurdo.

Ricordo che sono un principiante.

Grazie a tutti anticipatamente


Inserita:

Per evitare il problema nelle file list box, devi forzagli il percorso con la proprietà path.

Se ho capito il problema, la stessa cosa la puoi avere quando ricorri alle commondialog; per questo motivo dopo una istruzione commondialog, riforzo sempre il path, esempio:

'==========================================

' RILEVO IL NOME FILE SORGENTE

'==========================================

Dim namfile, strfile As String

Dim rvar(8) As String

Me.CommonDialog1.ShowOpen

namfile = Me.CommonDialog1.FileName

If namfile = "" Then Exit Sub

If namfile = "*.txt" Then Exit Sub

'==========================================

' COLLEGAMENTO AL DATABASE PER APPEND

'==========================================

Dim rs As New ADODB.Recordset

Dim cnn As New ADODB.Connection

Dim strcnn, strsql, DBver As String

strsql = "SELECT * FROM [TB-mat]"

DBver = Svar(14) & "\WR-DB.mdb" 'ricostruzione posizione DB

strcnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBver & ";persist security info=false"

cnn.Open strcnn

rs.CursorLocation = adUseClient

rs.Open strsql, cnn, adOpenKeyset, adLockOptimistic

Inserita:

ok adesso provo grazie Hellis

ma mi devo per forza appoggiare ad un database?

Inserita:

Scusami: ho postato un esempio sbagliato (in quel caso mi interessava il path di un db):

'==========================================

' RILEVO IL NOME FILE SORGENTE

'==========================================

Dim namfile As String

Dim intinst, intlun As Integer

Me.CommonDialog1.ShowOpen

namfile = Me.CommonDialog1.FileName

'Ricarico il path che common dialog può far perdere

pathcorrente = App.Path

drivecorrente = Left(pathcorrente, 1)

ChDrive drivecorrente

ChDir pathcorrente

If namfile = "" Then Exit Sub

If namfile = "DB-Service.mdb" Then Exit Sub

'==========================================

Prova ora

  • 2 weeks later...
Inserita:

ho provato ma non riesco a capire il funzionamento della path

(tenete conto che è solo un mese che provo visualbasic senza mai aver provato altri linguaggi se non un po di htlm e fatto altro che una decina di file .bat prima. Praticamente sono un "principedeiprincipianti" .Sto in cima ad una montagna dove non arriva nemmeno la posta ordinaria per cui tutto quello che sò, e non è molto, lo imparo sulla rete, e appena scenderò nella valle mi comprerò un manuale )

Intanto il primo problema è che quando avvio il progetto tutto quello che trova è nella cartella di VB6 e non in quella del progetto.

Dopodiche ho un form "apri con" allora uso quello, mi porto sulla cartella del progetto e apro qualcosa a caso e esco.

Quando riavvio è tutto a posto, cioè tutti i controlli sono posizionati sulla cartella del progetto però se compio un "apri con" su un altra cartella ecco che dopo, tutti i controlli si spostano su quella cartella. anche logico Azz

Come faccio ad impostare il progetto sulla sua cartella sempre.?

Come imposto la path sui form (CommonDialog - TextBox - etc.etc)??

Pòsto il codice della mia "Apri con" se qualcuno mi vuole aiutare deve essere molto paziente e preciso perche se nò non ci capirò un bel niente

Form "Apri con"

=====================================

Option Explicit

Private Sub Command1_Click()

On Error GoTo GestoreErrori

With CommonDialog1

.ShowOpen

Text1.Text = .Filename

frmSearch.Caption = "Apri " + .FileTitle + " Con..."

End With

Exit Sub

GestoreErrori:

If err.number = 32755 Then Exit Sub

End Sub

Private Sub Command2_Click()

Call Shell("rundll32.exe shell32.dll,OpenAs_RunDLL " & Trim(Text1.Text), vbNormalFocus)

End Sub

Private Sub Command3_Click()

frmSearch.Caption = "Scegli un file"

Text1.Text = ""

Text1.SelStart = 0

Text1.SetFocus

End Sub

Private Sub Command4_Click()

Unload Me

End Sub

======================================

Ringrazio anticipatamente chiunque abbia tutta la pazienza che ci vuole per far capire un principiante come me

Ciao a tutti

Inserita:

Caro Brothers, un paio di anni fa ero nelle tue stesse condizioni :D .

Dunque, prima di tutto se vuoi ottenere il path della tua applicazione, memorizzandolo in una variabile, puoi ricorrere alle istruzioni

Dim pathcorrente as String

Pathcorrente = app.path

Prima di lanciare la common dialog, puoi forzare il path con la istruzione

Chdir pathcorrente

ovvero:

Form "Apri con"

=====================================

Option Explicit

Private Sub Command1_Click()

On Error GoTo GestoreErrori

Dim pathcorrente as string

pathcorrente = app.path

chdir pathcorrente

With CommonDialog1

.ShowOpen

Text1.Text = .Filename

frmSearch.Caption = "Apri " + .FileTitle + " Con..."

End With

Exit Sub

GestoreErrori:

If err.number = 32755 Then Exit Sub

End Sub

Private Sub Command2_Click()

Call Shell("rundll32.exe shell32.dll,OpenAs_RunDLL " & Trim(Text1.Text), vbNormalFocus)

End Sub

Private Sub Command3_Click()

frmSearch.Caption = "Scegli un file"

Text1.Text = ""

Text1.SelStart = 0

Text1.SetFocus

End Sub

Private Sub Command4_Click()

Unload Me

End Sub

======================================

Però dovresti un pò spiegarti meglio, ovvero cosa vuoi ottenre e cosa non ti riesce.

Inserita:

Che ci sia qualcuno che era nelle mie condizioni ed ora se la cava bene mi rinquora,

ma a parte gli scherzi,

cercherò di spiegarmi meglio riguardo ai miei problemi col vb6

allora....

ho un file progetto composto da una trentina di applicazioni

(sai com'è si comincia con una e poi,invece di fermarsi, completare il progetto

e cominciarne un altro) si vuole strafare.

Questo credo sia il mio caso.

Comunque adesso mi ritrovo una cartella ,del progetto ,piena di form , testi , .exe ed altri file.

E qui mi nasce il problema ..

Dentro questa cartella ho anche i file leggimi, readme e altri testi guida per il programma/progetto

Alcuni di questi si aprono a comando cioe con un pulsante ,alcuni invece selezionandoli da una FileListBox

con accanto una RichTextBox una cosa tipo:

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

RichTextBox.Filename = FileListBox.Filename

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

Alcuni exe li apro con:

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

Private Sub Text1_Change()

CommonDialog1.Filename = File1.Filename

End Sub

Private Sub xpcmdbutton1_Click()

WinExec CommonDialog1.Filename, 0

End Sub

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

alcuni li apro con "Apri con" che ho scritto nel post precedente.

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

e fin qui andrebbe tutto bene se quando lancio vb6 e poi apro e avvio il progetto tutto si posizionasse sulla cartella

dove stanno tutti sti file

Invece quando lancio il vb6 e poi avvio il progetto i

FileListBox visualizzano i file contenuti nella cartella principale di vb6...?!!!!!!!!

e cosi WinExec che chiaramente non trova nulla perche gli exe impostati

stanno nella cartella del progetto e non nella cartella principale di vb6

Anche specificando tutto il percorso tipo:

C:\Documents and Settings\Documenti\project\prova\a4proxy.exe (exe nella cartella del progetto)

non viene trovato

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

per far tornare tutto a posto devo aprire una CommonDialog con ShowOpen

cercare un file dentro alla cartella del progetto e aprirlo allora dopo questa

operazione tutto funge bene ma solo fino a che non chiudo il vb6 perche al riavvio siamo da capo.

Questo succede anche se avvio un altro progetto (in un altra cartella)

Tutte le visualizzazioni del vb6 si spostano su quella cartella .. AZZ

praticamente sembra che il vb6 - parte dalla directory principale e poi va a memoria

a seconda di quale percorso viene usato per ultimo....Possibile???

Sono io che ho impostato male qualcosa sicuramente ma non so che cosa.

Spero di essermi spiegato "abbastanza bene"

Comunque Grazie ad Hellis Sopratutto per la pazienza dimostrata

(che ci vuole per leggere post di questa lunghezza)

Inserita:

per le filelistbox imposta la proprietà path:

ovvero

FileListBox.path = app.path (o altro path che determini tu).

Inserita:

Grazie molte hellis

Funziona benissimo

E così ho "capito " che cosa è la Path. Azz

"Semplicissimoooo" :rolleyes::rolleyes::blink:

Mi abbisogna un manuale di vb6 per non fare ste domande cretine, credo che sarà la prima spesa che farò.

Così quando farò altre richieste cercherò di essere piu "competente"

Ciao e grazie ancora :D

Inserita:

Visto che avete risolto esprimo la mia invidia per chi:

Sto in cima ad una montagna dove non arriva nemmeno la posta ordinaria per cui tutto quello che sò, e non è molto, lo imparo sulla rete, e appena scenderò nella valle mi comprerò un manuale )
Inserita:

No non fa molto caldo .

pero pensa che senza la rete saremmo completamente isolati

perfino il nostro Comune ci dimentica e a volte ignora la nostra esistenza.

Un bel posto con vantaggi e svantaggi ma molto impegnativo.

Tanto per capirsi non abbiamo nemmeno il telefono.

Siamo collegàti alla rete tramite GPSR e vi assicuro che è "Molto lento"

Ciao a tutti

  • 2 weeks later...
Inserita:

Vero, non sempre quello che sembra un paradiso lo è.

Buon lavoro.

Inserita:

Ot.

Prima di comprarti un manuale fai un giro su questo sito se non l'hai ancora visto, contiene dei buonissimi tutorial, anche per chi è alle prime armi e una tonnellata e mezza di script, che puoi analizzare e riutilizzare.

http://www.visual-basic.it/

Se no puoi sepre googleare (termine trovato in rete) e fare delle ricerche su i suoi gruppi...

OT2: da quale montagna scrivi?

Ciao

Inserita:

Grazie del consiglio Abramo , ci ho fatto un giro da quando ha riaperto ma ci tornerò

Ot.Appennino tosco-emiliano

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...