begin process at 2012 05 30 14:58:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

recuper le chemin d'un executable a partir du titre, ou HWND ou Class


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

recuper le chemin d'un executable a partir du titre, ou HWND ou Class

jeudi 15 juillet 2004 à 12:55:26 | recuper le chemin d'un executable a partir du titre, ou HWND ou Class

youpiyoyo

Bon voila j'ai le titre du programme, j'ai également sa class, et son HWND...


maintenant j'aimerai recup le chemin.... genre c:\windows\prog.exe

je suis entrain de voir avec MODULEENTRY32 & CreateToolhelp32Snapshot & PROCESSENTRY32...


pour le moment pas de succes kelk'1 pourrait m'aider!!!!
jeudi 15 juillet 2004 à 14:07:39 | Re : recuper le chemin d'un executable a partir du titre, ou HWND ou Class

hilairenicolas

si tu as le HWND, il te suffit d'utiliser GetModuleFileName
jeudi 15 juillet 2004 à 15:20:06 | Re : recuper le chemin d'un executable a partir du titre, ou HWND ou Class

youpiyoyo

ok je vais chercher dans ce sens mais j'ai trouver un truc

peut etre un peut compliquer mais je suis encore dessus


void ReturnCheminDuProcess()
{
HANDLE hSnapShot,hModuleSnap ;
PROCESSENTRY32 uProcess;
MODULEENTRY32 uModule;
bool r,r2;
short PID = 0; //variable qui va stocker l'ID du processus de l'application que l'on désire fermer.


hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
uProcess.dwSize = (DWORD) sizeof(PROCESSENTRY32);

r = Process32First(hSnapShot, &uProcess);
do // Cette boucle énnumère tout les processus
{
/*if ( strstr(uProcess.szExeFile, ExeName) )//on cherche le nom de notre application dans le chemin d'accès de l'éxécutable du processus.
PID = (short) uProcess.th32ProcessID;*/
hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, uProcess.th32ProcessID);
r2=Module32First(hModuleSnap,&uModule);
/*do
{


Module32Next(hModuleSnap, &uModule);
}while(r2);*/
printf( "Module Name\t\t%s\n", uModule.szModule);
printf( "Full Path\t\t%s\n\n", uModule.szExePath);
r = Process32Next(hSnapShot, &uProcess);
} while ( r );
CloseHandle(hModuleSnap);
CloseHandle(hSnapShot);


}


en revanche ce bout de code donne tous les chemins des processus, (Rmq: ici je suis en console)

fo ke je trouve un moyen de faire correspondre soit le PID, ou autre chose pour avoir le FUllpath

merci, je cherche tjrs
youpi :)
jeudi 15 juillet 2004 à 15:28:25 | Re : recuper le chemin d'un executable a partir du titre, ou HWND ou Class

youpiyoyo

pour ton GetModuleFileName

le probleme c ke c un HWND et non un HMODULE
j'ai testé ca

char sfgdk[500];
GetModuleFileName((HMODULE)HwndDest,sfgdk,500);
MessageBox(0,sfgdk,0,0);

avec un cast ca merde

a moins ke tu es la solution je ne vois po comment
youpi :)
jeudi 15 juillet 2004 à 15:34:36 | Re : recuper le chemin d'un executable a partir du titre, ou HWND ou Class

youpiyoyo

bon j'ai essayer ca:


TCHAR sfgdk[500];
GetModuleFileName((HMODULE)GetClassLong(HwndDest, GCL_HMODULE),sfgdk,500);
MessageBox(0,sfgdk,0,0);


ca marche mais ca me donne a tous le coup c:\windows\user32.dll et non le chemin du prog

HELP!!!
youpi :)
jeudi 15 juillet 2004 à 15:42:03 | Re : recuper le chemin d'un executable a partir du titre, ou HWND ou Class

BruNews

Administrateur CodeS-SourceS
GetWindowLong(hwnd, GWL_HINSTANCE);
a passer a GetModuleFileName.

ciao...
BruNews, Admin CS, MVP Visual C++
jeudi 15 juillet 2004 à 17:50:56 | Re : recuper le chemin d'un executable a partir du titre, ou HWND ou Class

youpiyoyo

j'y avais pensais mais regarde ce ke j'ai fais:



while (iResult)
{

if(GetAsyncKeyState(VK_LBUTTON) && GetAsyncKeyState(VK_LBUTTON))
{
GetCursorPos(&pCursor);
iResult = 0;
//MessageBox(0,"rentre",0,0);

}
hWindow = WindowFromPoint(pCursor);
GetWindowText(hWindow, sTitle, 400);
GetClassName(hWindow, sClass, 400);

}
HwndDest=FindWindow(sClass,sTitle);
if (HwndDest!=0) ShowWindow(HwndDest,SW_HIDE);
else MessageBox(0,"NULL",0,0);
TCHAR sfgdk[500];
//if (HwndDest!=0) GetWindowModuleFileName((HWND)GetWindowLong(HwndDest,GWL_HWNDPARENT),sfgdk,500);
GetModuleFileName((HMODULE)GetWindowLong(HwndDest, GWL_HINSTANCE),sfgdk,500);

MessageBox(0,sfgdk,0,0);


il me retourne le chemin du programme qui lance cette fonction et pas le chemin de celui seectioné avec le pointeur

vous alez me dire ke c ton HWND (HwndDest), qui est po mais si, si je fais un ShowWindow(HwndDest,SW_HIDE); ca marche, mais j'arrive pas a avoir son path...

Ouin.....

merci de votre aide
youpi :)
jeudi 15 juillet 2004 à 17:58:49 | Re : recuper le chemin d'un executable a partir du titre, ou HWND ou Class

BruNews

Administrateur CodeS-SourceS
Tu aurais donc le bon hwnd et te sort un mauvais exeName.
Attends je vais tester cela et je te dis. Je vais proceder ave Un FindWindow sur la calculatrice par exemple, on verra.

ciao...
BruNews, Admin CS, MVP Visual C++
jeudi 15 juillet 2004 à 17:59:44 | Re : recuper le chemin d'un executable a partir du titre, ou HWND ou Class

youpiyoyo

ok merci
youpi :)
jeudi 15 juillet 2004 à 18:20:32 | Re : recuper le chemin d'un executable a partir du titre, ou HWND ou Class

youpiyoyo

j'ai mis la source

http://www.cppfrance.com/code.aspx?ID=24582
youpi :)

1 2 3

Cette discussion est classée dans : class, titre, chemin, hwnd, recuper


Répondre à ce message

Sujets en rapport avec ce message

threads et methodes [ par GWW ] Bonjour a tous,Le but du jeu est de creer un thread qui lance l evenement " My_event" en boucle://////////////////////////////////////////////////// HELP!! comment rafraichir [ par kuruma ] LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){   static string chemin;  static int count=0;  static bool se Récupérer le titre d'une fenêtre [ par Ajakaty ] Bonjour!! Je vous écris car je me trouve devant un problème que je n'arrive pas à résoudre... En fait je veux récupérer le titre d'une fenêtre q Problème windowproc dans une class [ par Mr.X ] Alors voila enfait j'aimerai utiliser un Windowproc dans une class Exemple : class CClass{ public :         LRESULT CALLBACK WProc(HWND, UINT, WPARA LRESULT CALLBACK dans une class [ par TeniX ] Salut, Je crée une class PRINCIPAL qui memorise la class WNDCLASSEX class PRINCIPAL { public: HINSTANCE hinstance; HWND hwndp Recuperer titre de la fenetre en premier plan [ par XKaliBur ] Voila en résumer ce que je veut fair : récupérer la liste des titre des fenetre qui passent en premier plan, pour ça je récupère le handle de la fenet Winbgim pitié de l'aide [ par jimmy30 ] Voila bonjour en tous :D . j'ai UN gros probleme qui se dresse devant moi alors que je commencez a maitriser la sdl mes profs me demande d'utiliser w Probleme avec SendMessage() [ par glipper ] Bonjour,J'ai une application qui reçois des fichiers en argument dans le main (ie on fait glisser un fichier sur l'executable). Je recupere donc le ch Recuperer le chemin de l'exe en cours... [ par XKaliBur ] Il existe bien GetModuleFileName() mais elle me retourne un truc du genre C:\Program Files\Mon Programme\Monfichier.exe alors que moi je veu plus un t Fonctions & Thread .... [ par DeAtHCrAsH ] Lu all,Je dispose d'une class qui possède un thread.J'aimerai que lorsque j'appelle les fonctions membres de la class, celle ci s'execute dans le thre


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales