Newsgroup: it.comp.lang.visual-basic
Titolo: [API] HELP : FindExecutable o qualcosa del genere

Se uso questa funzione:
Declare Function FindExecutable& Lib "shell32.dll" Alias "FindExecutableA"
(ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As
String)
Dim MaxPath As String * 260
Call FindExecutable("C:\Projects\MyProject.vbp", CurDir, MaxPath)
MaxPath = Trim(MaxPath)
Debug.Print MaxPath
nella finestra di debug mi trovo:
C:\Programmi\Microsoft Visual Studio\VB98\vb6.exe   "
quindi penso che questa funzione vada a leggere da qualche parte nel
registro di configurazione che i files .vbp sono associati al programma
vb6.exe
Qual' e' la funzione che mi indica se il VB e' installato sul compuer?
Grazie
LongBlade
  -----------== Posted via Newsfeeds.Com, Uncensored Usenet News ==----------
 
http://www.newsfeeds.com
       The Largest Usenet Servers in the World!
------== Over 73,000 Newsgroups - Including  Dedicated  Binaries Servers ==-----

 Qual' e' la funzione che mi indica se il VB e' installato sul compuer?
Una Dir, visto che hai già il path ? ;-))
Aspetta, ovviamente la risposta così è stupida, ma finora la Micro$oft
per l'eseguibile di VB ha usato nomi di tipo VBx.EXE, con la x = versione.
La cosa potrebbe non essere affidabile perché l'utente potrebbe avere
associato l'estensione VBP a qualche altro prog; oppure se l'utente ha
installato e poi disinstallato il VB l'estensione potrebbe rimanere registrata;
è vero che una applicazione "beneducata" non lo fa, ma il VB è della M$...
beh... diciamo che ti conviene fare delle prove.
Comunque se: 1) l'estensione è registrata, 2) il nome del file eseguibile
associato è del tipo VBx.EXE e 3) il file esiste, "dovresti" essere a posto.
In alternativa, creati un elenco con i nomi di file accettabili, da aggiornare
per una eventuale prossima versione con nome diverso, tipom"Visual Basic 2000.exe"
(Quello che mi scoccia è che fra cinque minuti qualcuno posterà una risposta
semplice, sicura ed efficiente, alla quale io non ho pensato... Sento che c'è...)
Bye, G.
--
---------------------------------------------
    Le risposte alle tue domande le trovi
    sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
       ... e nell'help in linea !
---------------------------------------------
Real E-address: 
gaet...@hotmail.com


Ti ringrazio per la risposta ma forse, tanto per cambiare, mi sono espresso
male.
Il succo del problema è questo: voglio poter installare il mio programma su
un qualsiasi pc Win9x/NT, e se il computer dispone del VB dar la possibilita
all' utente di modificare il codice altrimenti disabilitare questa opzione,
di conseguenza sono quasi sicuro che da qualche parte c' e' un fastidioso
insetto adatto a svolgere questo compito, solo che non lo trovo ...


 all' utente di modificare il codice altrimenti disabilitare questa opzione,
Non cambia molto: nel Setup puoi verificare, con la API del tuo esempio, se
VBP č una estensione registrata, e di conseguenza dovresti poter dedurre
se il VB č installato, in questo caso copi anche i file del sorgente...
Comunque, se ti serviva solo per questo, ho un'idea migliore: inserisci una
dir Sorgenti, nel disco di installazione; se l'utente č un programmatore,
dovrebbe sapere almeno come copiarsi i file altrimenti cosa ce l'ha a fare il VB ?
;-)))
Se non ho capito neanche questa volta, dimmelo !


> Qual' e' la funzione che mi indica se il VB e' installato sul compuer?
Controlla nel regostro la chiave (per VB6, per esempio)
 HKEY_LOCAL_MACHINE\Software\Microcoft\VisualStudio\6.0\Setup\Microsoft
Visual Basic
se la chiave non c'e': VB non e' installato
se la chiave c'e': controlla la directory indicata dalla stringa contenuta
in quella chiave se effettivamente esiste e se contiene (qualcuno dei) i
files necessari a VB
PS: usa il programma regedit.exe per controllare le chiavi, se non hai il
VB6 o se sei curioso... ci si trovano cose interessanti...
PPS: In giro trovi le routine per accedere al registry di Win
PPPS: e se uno installa VB DOPO che hai installato il programma? Ti conviene
fare un check ad ogni apertura del programma... se non e' troppo lento
(vecchie remore amighiste...)