cs_rt15
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
18 oct. 2007 à 21:30
Salut,
Rahlala, vous faîtes pas les malins bandes de C/C++eurs !
Lier Delphi et le C/C++ on peut le faire de toutes les façon que l'on
lie deux executables/dlls C/C++ : dialogue interprocess, COM, Dll
classiques, échange de messages, mémoire partagés... Le Delphi est
aussi compatible que le C vi à vis du Win32.
Ca sais pas lire le Delphi, mais alors pour le critiquer, ça y va !
Bon manque de bol, là je suis sous Linux, alors je vais vous faire la traduc à
la main... Mais il a coder ça qu'avec des routines de l'API Win32, il
n'y a aucune difficulté.
Bon je garantit pas que ça compile du premier coup, et comme indiqué
sur le post, il faut un IE pas trop customisé pour que la hiérarchie
des fenêtres corresponde. Ne pas oublier de libérér l'URL retournée par
la fonction quand on en a plus besoin.
char * GetCurrentInternetExplorerURL()
{
HWND hExplorer; // Handle de la fenêtre de IE
HWND hWindow; // Handle de fenêtre
DWORD nMem; // Taille de l'URL
char * lpUrl; // Récupération de l'URL
// Récupération du hadle de la fenêtre de IE
hExplorer = FindWindow("IEFrame", NULL);
// Vérif qu'on l'a trouvé
if (!hExplorer)
return NULL;
else
{
// Recherche de la fenêtre de travail
hWindow = FindWindowEx(hExplorer, 0, "WorkerA", NULL);
// La fenêtre s'appelle autrement sous XP
if (! hWindow) FindWindowEx(hExplorer, 0 , "WorkerW", NULL);
// Récupération du handle de la ToolBar
hWindow = FindWindowEx(hWindow, 0, "ReBarWindow32", NULL);
// Récupération du handle de la combobox
hWindow = FindWindowEx(hWindow, 0, "ComboBoxEx32", NULL);
// Récupération du handle de la combo dans la combo
hWindow = FindWindowEx(hWindow, 0, "ComboBox", NULL);
// Récupération de l'edit contenant l'URL
hWindow = FindWindowEx(hWindow, 0, "Edit", NULL);
// Récupération de la taille de l'url
nMem = SendMessage(hWindow, WM_GETTEXTLENGTH, 0, 0);
// Allocation d'un buffer de la bonne taille
lpUrl = (char *)malloc(nMem);
// Récupération du contenu de l'Edit
SendMessage(hWindow, WM_GETTEXT, nMem, (DWORD)lpUrl);
return lpUrl;
}
Vive Delphi.
<hr size="2" width="100%" />3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08