Accueil > Forum > > > > recherche du fichier excel.exe
recherche du fichier excel.exe
lundi 13 décembre 2004 à 16:37:34 |
recherche du fichier excel.exe

astridgall
|
bonjour, je souhaite dans mon programme vb6 récupérer le chemin du fichier excel.exe. Je n'ai rien trouvé de concluant sur ce site. Merci d'avance.
|
|
lundi 13 décembre 2004 à 17:15:58 |
Re : recherche du fichier excel.exe

barley
|
essaye ca, il doit y avoir beaucoup mieux... mais ca marche
'module de crenaud76 pour la fonction shellwait qui permet d'attendre la fin de l'execution avant de continuer la lecture du code Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Const STILL_ACTIVE = &H103 Private Const PROCESS_QUERY_INFORMATION = &H400
Public Sub ShellWait(ByVal JobToDo As String) Dim hProcess As Long, RetVal As Long hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell(JobToDo, vbMinimizedNoFocus)) Do GetExitCodeProcess hProcess, RetVal DoEvents Sleep 100 Loop While RetVal = STILL_ACTIVE End Sub
Private Sub main()
'A initialisation et variables
Dim compteur, compteurlettres, textline, textinv, lettre, nomfichier, objet, objetfichier, fichiersource, repertoire fichiersource = "c:\test.txt" repertoire = "c:\" & Chr(34) & "Program Files" & Chr(34)
'B éxécution de la commande DOS qui écrira tous les fichiers d'un dossier et de ces sous-dossiers dans un fichier source ShellWait "cmd.exe /c dir /A-D /S /O:N /B " & repertoire & " > " & fichiersource 'execute commande DOS et stop la suite du programme tant que la commande DOS n'est pas terminée"
'C module de récupération du chemin de "excel.exe" Open fichiersource For Input As #1 ' Ouvre le fichier source. Do While Not EOF(1) ' Effectue la boucle jusqu'à la fin du fichier source. Line Input #1, textline ' Lit la ligne dans la variable. textinv = StrReverse(textline) ' inverse les caractères du texte de la ligne en cours If Left(textinv, 9) = "EXE.LECXE" Then 'si la fin de la ligne est bien excel.exe alors MsgBox textline End If Loop 'relance la boucle des lignes Close #1 ' Ferme le fichier. 'D module d'effacement du fichier source Set objet = CreateObject("Scripting.FileSystemObject") ' crée un objet Set objetfichier = objet.getfile(fichiersource) 'l'objet devient le fichier source objetfichier.Delete True 'efface et force la suppression du fichier source End Sub
|
|
lundi 13 décembre 2004 à 17:18:02 |
Re : recherche du fichier excel.exe

barley
|
n'oublie pas d'effacer certaines variables qui te sont inutiles, c'est la reprise d'une appli... j'ai oublier d'enlever des variables
|
|
lundi 13 décembre 2004 à 17:32:26 |
Re : recherche du fichier excel.exe

barley
|
comme ca , c'est un peu mieux
'module de crenaud76 pour la fonction shellwait qui permet d'attendre la fin de l'execution avant de continuer la lecture du code Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Const STILL_ACTIVE = &H103 Private Const PROCESS_QUERY_INFORMATION = &H400 Public Sub ShellWait(ByVal JobToDo As String) Dim hProcess As Long, RetVal As Long hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell(JobToDo, vbMinimizedNoFocus)) Do GetExitCodeProcess hProcess, RetVal DoEvents Sleep 100 Loop While RetVal = STILL_ACTIVE End Sub Private Sub main() 'A initialisation et variables Dim textline, objet, objetfichier, fichiersource, repertoire fichiersource = "c:\test.txt" repertoire = "c:\" fichieratrouver = "excel.exe" 'B éxécution de la commande DOS qui écrira tous les fichiers d'un dossier et de ces sous-dossiers dans un fichier source ShellWait "cmd.exe /c dir /A-D /S /O:N /B /L " & repertoire & " > " & fichiersource 'execute commande DOS et stop la suite du programme tant que la commande DOS n'est pas terminée" 'C module de récupération du chemin de "excel.exe" Open fichiersource For Input As #1 ' Ouvre le fichier source. Do While Not EOF(1) ' Effectue la boucle jusqu'à la fin du fichier source. Line Input #1, textline ' Lit la ligne dans la variable. If Left(StrReverse(textline), Len(fichieratrouver)) = StrReverse(fichieratrouver) Then 'si la fin de la ligne est bien fichieratrouver alors MsgBox textline End If Loop 'relance la boucle des lignes Close #1 ' Ferme le fichier. 'D module d'effacement du fichier source Set objet = CreateObject("Scripting.FileSystemObject") ' crée un objet Set objetfichier = objet.getfile(fichiersource) 'l'objet devient le fichier source objetfichier.Delete True 'efface et force la suppression du fichier source End Sub
si ca va pas, n'hesite pas
|
|
lundi 13 décembre 2004 à 18:35:44 |
Re : recherche du fichier excel.exe

CanisLupus
|
Une autre solution, en passant par les API's interrogeant la base de registre : ' Dans un module Private Declare Function RegOpenKey _ Lib "advapi32" Alias "RegOpenKeyA" _ ( _ ByVal hKey As Long, _ ByVal lpSubKey As String, _ phkResult As Long _ ) As Long
Private Declare Function RegQueryValueEx _ Lib "advapi32" Alias "RegQueryValueExA" _ ( _ ByVal hKey As Long, _ ByVal lpValueName As String, _ ByVal lpReserved As Long, _ lpType As Long, _ lpData As Any, _ lpcbData As Long _ ) As Long
Public Function GetString(hKey As Long, strPath As String, strValue As String) As String Dim Keyhand As Long, lResult As Long Dim strBuf As String * 255
RegOpenKey hKey, strPath, Keyhand lResult = RegQueryValueEx(Keyhand, strValue, 0&, 0&, ByVal strBuf, 255) If lResult = 0 Then GetString = Split(strBuf, Chr$(0))(0) End Function
' Dans ta form Private Sub Form_Load() Dim s As String s = GetString(&H80000000, "Excel.Application\CLSID", "") s = GetString(&H80000000, "CLSID\" & s & "\LocalServer32", "") s = Trim(Left$(s, InStr(1, s, "/") - 1)) MsgBox s End Sub
|
Explik : d'abord on lit la CLSID de l'appli puis on va lire la localisation de l'exe. le trim .... est là pour zapper les "/automation" et autres paramètres de lancement pour ne récupérer que le chemin. Bien sùr, puisque la CLSID des applis Windows est toujours la même, dans le form_lod on peut juste mettre : Private Sub Form_Load() Dim s As String s = GetString(HKEY_CLASSES_ROOT, "CLSID\{00024500-0000-0000-C000-000000000046}\LocalServer32", "") s = Trim(Left$(s, InStr(1, s, "/") - 1)) MsgBox s End Sub
|
Mais bon, on ne sait jamais et ça prend pas beaucoup plus de temps. Et ça, c'est rapide, ça marche avec VB, VBA et VB.NET, sous win9x et winXP. J'ai testé mais si prob, j'attend les critiques. Cordialement, CanisLupus
|
|
lundi 13 décembre 2004 à 20:39:00 |
Re : recherche du fichier excel.exe

barley
|
salut canislupus, je viens d'essayer ta technique, ca me parait tres bien, je n'en suis pas encore a ce niveau Par contre, est ce que c'est normal de voir le chemin sous forme "raccourci", exemple:
C:\PROGRA~1\MICROS~4\Office\EXCEL.EXE
et surtout, est ce que ceci est exploitable après... si oui pas de problème moi je dis bravo...
|
|
lundi 13 décembre 2004 à 20:40:28 |
Re : recherche du fichier excel.exe

barley
|
Je viens d'essayer en rajoutant shell (s), ca marche, donc je m'incline... lol allez, bonne prog a vous
|
|
lundi 13 décembre 2004 à 23:09:33 |
Re : recherche du fichier excel.exe
|
mardi 14 décembre 2004 à 13:35:34 |
Re : recherche du fichier excel.exe

domsig
|
je vais peut-être dire une bêtise mais..........
dim excel_object as object Set excel_object = CreateObject("excel.application") If IsNull(excel_object) Then msgbox("pas trouvé") else msgbox(excel_object.path) 'on peut aussi tester la version d'excel trouvée msgbox(excel_object.version) end if
voilà voilà voilà.....
|
|
mardi 14 décembre 2004 à 21:19:05 |
Re : recherche du fichier excel.exe
|
Cette discussion est classée dans : fichier, exe, excel, recherche
Répondre à ce message
Sujets en rapport avec ce message
Recherche de chemin [ par gagagogos ]
Ayant créé un SETUP sous VB5 contenant un exe et un fichier d'aide (fichier d'aide accéssible depuis l'EXE), comment rendre le fichier d'aide accéssib
Recherche dans un fichier excel [ par Nixo ]
Voilà , je shouaite executer un recherche par "site" (une certaine colonne du document excel) dans un fichier excel mais je ne connais pas les equiva
Excel: récup la valeur dune cellule d1 fichier et recherche cette valeur dans un autre fichier [ par Willis ]
Bonjour,J'ai quelques soucis pour faire un ptit prog...Je voudrais faire une fonction sans un XLSn°1 qui : 1- En entrée le chemin d'un XLSn°2 2- Réc
recherche d'un fichier excel [ par roblemechant ]
Salut!j'aimerai ouvrir un fichier excel avec vba en ne connaissant qu'un mot du nom du fichier en passant par la recherche de fichier.merci d'avance
recherche contenu textbox dans une feuille excel. [ par ephores ]
Bonjour,J'ai beau chercher de partout sur les Object Excel mais je ne trouve pas ..Vioila j'ai une liste de fichier excel a laquel il faut que je cher
Excel [ par djief ]
SAlut J'ai besoin de faire une recherche dans un fichier excel à partir de vb.61) je ne dois pas ouvrir l'application.2) je dois recherche une string
Excel : recherche fichier avec %userprofile% [ par fraisa ]
je souhaite ouvrir un modele excel mais xp utilise un nom de profile qui change avec chaque utilisateur (les modeles sont dans mes documents) je n'arr
Recherche dans Excel à l'aide de macro VBA ou autre [ par aamireault ]
J'ai un fichier Excel... Le fichier a plein de sous titre, il y a des lignes vides, des cellules vides, des commentaires, etc.En fait le fichier est u
macro de recherche et d'ouverture de fichier excel [ par flolf ]
Bonjour a tousje suis tout nouveau tout beau (ca c'est moin sur par contre) en VBet forcement je rencontre des problemesj'ai un fchier excelA vierge.
VBA Excel - Recherche de fichiers [ par econs ]
Bonjour à toutes et tous. Je possède un dossier contenant un certain nombre de fichiers : - Un fichier Visio (*.vsd) - Un fichier Excel
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|