Rechercher du texte entre deux séparateurs

Résolu
Messages postés
32
Date d'inscription
jeudi 20 janvier 2005
Statut
Membre
Dernière intervention
11 juin 2007
-
Messages postés
32
Date d'inscription
jeudi 20 janvier 2005
Statut
Membre
Dernière intervention
11 juin 2007
-
Bonjr à tous !
Je ne sais pas si c'est le bon endroit pour poster ce message, mais bon... Voilà mon problème :

Je crée actuellement une application capable de lancer et d'arrêter certaines applications suivant si mon ordinateur portable fonctionne sur secteur ou sur batterie. Pour le lancement des applications, pas de problème... Une simple commande Shell suffit. Mais c'est autre choses avec l'arrêt... J'utilise la commande Shell pour "tuer" l'application avec "taskkill.exe" renommé en "killapp.exe", inclue dans mon projet. Mais j'ai besoin du nom du processus de l'application, et non pas du chemin d'accès à cette dernière !

Par exemple, si je lance MSN Messenger à partir de ce chemin : "C:\Program Files\MSN Messenger\msnmsgr.exe /bakground", il me faut récupérer uniquement "msnmsgr.exe" pour le fermer.
Il faudrait pouvoir enlever les options de démarrage en donnant comme séparateur ".exe" puis stocker la chaine de caractères obtenue dans une variable (on devrait donc obtenir "C:\Program Files\MSN Messenger\msnmsgr.exe").
Ensuite, il faudrait garder uniquement la partie comprise entre la fin et le premier signe "" en partant de la droite (ou le dernier en partant de la gauche).

Je sais que ce n'est pas la première fois que ce genre de question est posé ici, mais ça fait plusieurs heures que je cherche (sur Google et VBFrance) et je ne trouve rien... Avez-vous des idées à me proposer ?

Merci de votre aide, bonne nuit... [sleepy]

5 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
salut,

je t'ai fait la fonction ici
en VB6...

++
PCPT    [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Messages postés
32
Date d'inscription
jeudi 20 janvier 2005
Statut
Membre
Dernière intervention
11 juin 2007
1
C'est bon... Après avoir mis en surbrillance "Left" et avoir fait F1, j'ai tout compris... Merci l'aide de VS2005 et MSDN Library...

la fonction Left n'est pas reconnue, en effet... Pour s'en servir, il suffit de remplacer "Left" par "Microsoft.VisualBasic.Left".
Et c'est la même chose pour "Right"... Voilà !

Merci beaucoup !

 
Messages postés
32
Date d'inscription
jeudi 20 janvier 2005
Statut
Membre
Dernière intervention
11 juin 2007
1
Merci pour la fonction. J'ai essayé de la mettre dans mon programme 'en faisant une mise à jour automatique du code vers VB.Net avec Visual Studio 2005, mais ca ne marche  pas... Voici le code traduit en VB.Net :
Mais le problème, c'est que Visual Studio 2005 ne reconnait pas "Left et "Right"... (en rouge sur ce copier-coller du code)
Private

Function GetExeNameFromShortCutPath(
ByVal sShortCut
As
String,
Optional
ByRef bExt
As
Boolean =
True)
As
String

        ' sShortCut cible (chemin)

        ' bExt retourner l'extension ?        GetExeNameFromShortCutPath = vbNullString

        sShortCut = Trim(LCase(sShortCut))

        ' on traite SI c'est un exe

        Dim iPos
As
Short        iPos = InStrRev(sShortCut,

".exe")

        If iPos > 0
Then

                ' on enlève la commande qui peut suivre

                If Len(sShortCut) > iPos + 3
Then sShortCut = Left(sShortCut, iPos + 3)

               ' extension?

               If
Not (bExt)
Then sShortCut = Left(sShortCut, Len(sShortCut) - 4)

               ' dernier slash                iPos = InStrRev(sShortCut,

"")                GetExeNameFromShortCutPath = IIf(iPos = 0, sShortCut, Right(sShortCut, Len(sShortCut) - iPos))

        End
If

End
Function
Messages postés
32
Date d'inscription
jeudi 20 janvier 2005
Statut
Membre
Dernière intervention
11 juin 2007
1
Pour informations complémentaires, voici les descriptions des erreurs :
Pour Left : " 'Public property Left() As Integer' has no parameters and its return type cannot be indexed. "
Pour Right : " 'Public ReadOnly Property Right() As Integer' has no parameters and its return type cannot be indexed. "

Voilà.

 
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
c'est la seule erreur?
les fonctions left et right ne sont pas contenues dans le framework?

genre String.Left ou sShortCut = sShortCut.Left(sShortCut, iPos + 3)
?
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp