Rechercher et recuperer un fichier executable probleme ou BUG????
PsYKrO
Messages postés53Date d'inscriptionlundi 19 juillet 2004StatutMembreDernière intervention 3 mai 2005
-
23 août 2004 à 09:12
PsYKrO
Messages postés53Date d'inscriptionlundi 19 juillet 2004StatutMembreDernière intervention 3 mai 2005
-
23 août 2004 à 10:52
Bonjour à tous!
Mon problème n'est pas comment faire mais pourquoi ca bug, je m'explique
J'ai un fichier ini (edipro.ini) j'ai une
CLE1 "strBaseName" = nomdufichier "test.exe"
Mon programme marche tres bien lorsque (ce qui est tres bizarre) je recher et execute un fichier miscrosoft (genre: calc.exe, winword.exe, notepad.exe)
mais lorsque je veux rechercher et executer mon programme "test.exe"ca marche pas....
Apres quelques recherches j'ai trouvé pourquoi mais je n'arive pas à resoudre le problème
En fait dans ma fonction rechercheGloop() il arrive à trouver mon fichier mais il est impossible de me recuperer le chemin du fichier
il me met des rectangles comme caractère....
et c'est normal que dans mon shell il me sort des erreurs car il n'a pas le chemin....
Ma question:
Es ce que quelqu'un c'est pourkoi ou sinon es ce que quelqu'un à fait un code dans le meme but que moi (rechercher et executer....)
Merci beaucoup !!!! c'est pour mon boulot...snif :)
VOICI MON CODE (COPIER COLLER DANS UN MODULE DE VB EXCEL PUIS CREER DANS LE MEME REPERTOIRE QUE LE FICHIER EXCEL UN FICHIER INI AVEC LA CLE strBaseName = ET FAITE LE TEST AVEC WINWORD.EXE ET UN PROGRAMME QUE VOUS CREE AVEC NOTEPAD TEST.EXE: je comprend rien
strBaseName= nom du fichier
strPathName = chemin du fichier
Dim blnExe As Boolean
Dim strBaseName As String, strPathName As String
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Public Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As Long
Sub rechercherGloop()
Dim result As Long
strPathName = String$(255, 0)
result = FindExecutable(strBaseName, "C:", strPathName)
If result =0 Then
sortir = 1
End If
End Sub
Sub lancerGloop()
blnExe = Shell(strPathName & strBaseName, vbMaximizedFocus) 'execute le programme
If Not blnExe Then ' verifie si il est executé
sortir = 1
End If
End Sub
Public Sub lectureCle()
'Recupere le chemin du fichier où est situé le programme Set wb ActiveWorkbook: ActivePath Left(wb.FullName, Len(wb.FullName) - Len(ActiveWorkbook.Name))
strBaseName = Trim(LireCle("BASE", "BASENAME", ActivePath & "ediprog.ini"))
End Sub
Public Function LireCle(Section As String, Cle As String, fichier As String) As String
Dim strResult As String
Dim strProfile As Integer
strResult = String(255, " ") 'creer un buffer
strProfile = GetPrivateProfileString(Section, Cle, "", strResult, 255, fichier)
If strProfile = 0 Then
LireCle = ""
Exit Function
End If