Chemin de fenetre à partir du handle ??

riadhesiee Messages postés 9 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 31 mai 2010 - 29 avril 2010 à 10:06
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 29 avril 2010 à 17:08
Bonjour,
Je suis entrain de développer une application en Csharp (console application), elle permet de détecter les fenetres ouvertes (celles de la barre de taches) et de donner leurs noms. Enfaite ce que je veux faire, c'est de détecter les chemins de ces fenetres, par exemple pour les fichiers word ouverts.
Autrement dit, si j'ai un fichier word sur mon bureau, je veux que le chemin soit: "C:\Documents and Settings\Administrator\Desktop\MonfichierWord.doc".
mais en utilisant:

GetWindowThreadProcessId(hwnd, out pid);
Process p = Process.GetProcessById(pid);
Console.WriteLine(p.MainModule.FileName);

elle me renvoit: "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE"

Je sait pas comment faire, alors SVP, qq1 a une idée ??
Merci

3 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
29 avril 2010 à 11:50
Salut, bien oui le processus ouvert c'est word, ce n'est pas un fichier *.doc. Si tu souhaites obtenir le titre de la fenêtre essaye avec Process::MainWindowTitle.
0
riadhesiee Messages postés 9 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 31 mai 2010
29 avril 2010 à 11:58
Salut,
merci pour ta réponse, mais c'est pas ce que je veux faire. Enfaite mainWindowTitle renvoit le nom de la fenetre ouverte:
"NomDu Fichier Word.doc - Microsoft Word" et non pas sa localisation sur le PC.
Moi je veux récupérer la localisation du fichier word ouvert, par exemple si il est sur le bureau alors je veux avoir:
"C:\Documents and Settings\Administrator\Desktop"
je sai pas comment faire !!!!!!!
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
29 avril 2010 à 17:08
Il va te falloir beaucoup de code pour cela, utilisation de l'API native de Windows.
Voir les sources de ShareVB qui a fait quelques exemples sur le sujet.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous