Accueil > Forum > > > > handle fenetre precise
handle fenetre precise
lundi 25 février 2008 à 20:36:29 |
handle fenetre precise

yannfrance
|
Bonsoir, Je souhaiterais récuperer le handle d'une fenêtre bien precise. Si je fais : Code : monhandle := FindWindow(nil, ma_fenetre); -FinWindow va bien retourner le numero de handle pour ma_fenetre. Ok, mais le problème est que le titre de ma barre de dialogue change de nom souvent, donc, je ne peut pas de cette façon. Je peut recuperer aussi un handle via le Classe Name : Code : monhandle := FindWindow('#32770', nil) Ok, mais le problème est que la classe est #32770 et que cette classe me renvoie le handle de Nero, donc, ce n'est pas une solution non plus. Donc, premiere question, comment puis-je recuperer le handle de cette fenêtre? Deuxieme question et suggestion, le nom de la barre de dialogue est jamais identique, cepandant ,les derniers mot, eux le sont. Donc, ne peut-ont pas identifier le handle via le classe name #32770 et une partie du nom de la boite de dialogue (je dis bien une partie du texte) ? Merci beaucoup, cela me seras d'une grande utilité et un grand soulagement aussi
|
|
lundi 25 février 2008 à 22:19:39 |
Re : handle fenetre precise

Guillemouze
|
la classe de ta fenetre a le meme nom que celle de nero?! Avec quoi a tu recuperé la classe de ta fenetre?
|
|
mardi 26 février 2008 à 15:56:47 |
Re : handle fenetre precise

yannfrance
|
Bonjour,
Oui, je repete, la classe name est la même que nero #32770 Je l'ai récuperer avec : -WindowsSpy -Puis un scruteur de processus assez pousser qui utilise GetClassName pour récuperer les classes (classique). Donc, pas de doute, la classe est #32770 . Par consequent, il ne reste plus 36 solutions pour retrouver le handle de ma fenêtre, il me faut : Donner le classe name #32770 puis une partie seulement du texte que contient la barre de titre pour identifier le handle de cette fenêtre.
Merci beaucoup pour votre aide.
|
|
mercredi 27 février 2008 à 21:30:13 |
Re : handle fenetre precise

yannfrance
|
Bonsoir,
D'apres une longue recherche, ce serais faisable avec la fonction pos function Pos(Substr: string; S: string): Integer;
Description
La fonction Pos recherche une sous-chaîne, Substr, à l'intérieur d'une chaîne S. Substr et S sont des expressions de type chaîne.
Je ne vois pas comment l'adapter a ce que je veux faire. En attendant, je vais encore chercher.
|
|
jeudi 28 février 2008 à 09:55:48 |
Re : handle fenetre precise

Guillemouze
|
var
monHandle: THandle; MonBuffer: array[0..1024] of char; begin monHandle := findwindow(MonClassName, nil); GetWindowText(monHandle, MonBuffer, 1024); if Pos('La Chaine dans mon titre', string(MonBuffer)) <> 0 then C'est ok, la fenetre contient la sous chaine
|
|
jeudi 28 février 2008 à 18:11:58 |
Re : handle fenetre precise

yannfrance
|
Bonjour,
Merci pour la réponse que tu m'ai apporter. je ne sais pas si je m'y prend mal ou bien, mais ce code ne me retourne pas le handle que souhaite.
procedure TForm1.Button1Click(Sender: TObject); var monHandle: THandle; MonBuffer: array[0..1024] of char; begin monHandle := findwindow('#32770', Nil); GetWindowText(monHandle, MonBuffer, 1024); if Pos('la chaine', string(MonBuffer)) <> 0 then begin memo1.Text := IntToHex(monHandle, 8)+' - '+MonBuffer;
end; end; end.
Merci.
Ps, si je met <> 1 then il me retourne le handle de nero.
|
|
jeudi 28 février 2008 à 23:12:36 |
Re : handle fenetre precise
|
lundi 3 mars 2008 à 19:18:34 |
Re : handle fenetre precise

yannfrance
|
Bonjour
Merci pour le source, c'est exactement ce dont je chercher, ça fonctionne. Cependant, quand j'essai de l'integrer à mon projet, il me met une erreur: Non déclarer 'Ifthen' unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
const WM_CHERCHETOI = WM_USER + 1;
type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var CurrWindow: THandle; Buffer: array[0..1024] of char; CestMoi: Boolean; DemanderDeSeChercher: Boolean; begin //recherche l'instance de la classe dans la liste des fenetre windows //Si DemanderDeSeChercher est true, on envoie un message aux autres pour qu'ils se recherchent
Memo1.Lines.Clear;
CurrWindow := FindWindowEx(0, 0, PChar('#32770'), nil); //premiere fenetre while CurrWindow <> 0 do begin //lecture du caption de la fenetre GetWindowText(CurrWindow, Buffer, 1024); //verification que le titre contient mon handle CestMoi := Pos('Chat', string(Buffer)) <> 0; Memo1.Lines.Add(Format('[%s] %d "%s"', [IfThen(CestMoi, ' MOI ', 'PAS MOI'), CurrWindow, Buffer])); //envoie de la demande de se rechercher si ce n'est pas moi if (DemanderDeSeChercher) and (not CestMoi) then PostMessage(CurrWindow, WM_CHERCHETOI, 0, 0);
//fenetre suivante CurrWindow := FindWindowEx(0, CurrWindow, PChar('#32770'), nil); end; end;
Il me met une erreur sur cette ligne : Memo1.Lines.Add(Format('[%s] %d "%s"', [IfThen(CestMoi, ' MOI ', 'PAS MOI'), CurrWindow, Buffer]));
En m'informant que IfThen n'est pas déclarer. Merci beaucoup pour ce source, exelent. J'ai chercher pendant plus d'une semaine à la recherche d'informations comme ce source, et je n'ai pas trouver, pourtant, j'ai beaucoup chercher.
|
|
lundi 3 mars 2008 à 22:39:34 |
Re : handle fenetre precise

Guillemouze
|
Réponse acceptée !
selon delphiprog (dans les commentaires de la source), le ifthen est apparu avec delphi 6 (perso je l'ai compilé avec D7). sinon, cette fonction est tres simple. Son implementation doit ressembler a qqchose pret a ca :
function IfThen(const Condition: Boolean: const ValueIfTrue, ValueIfFalse: string): string; begin if Condition then ValueIfTrue else ValueIfFalse; end;
|
|
mardi 4 mars 2008 à 16:12:37 |
Re : handle fenetre precise

yannfrance
|
Bonjour,
Merci beaucoup, en faite, ça fonctionne, c'est juste que j'ai oublier de déclarer Math, StrUtils; dans uses.
Bon, par contre, comme je te l'ai dit plus haut, sans ton aide, je n'aurais jamais trouver. j'ai chercher pendant une grosse semaine sans relâche. Ou as tu trouver les informations necessaire pour créer cet exelent source? Merci beaucoup.
|
|
Cette discussion est classée dans : fenetre, handle, classe, dialogue, precise
Répondre à ce message
Sujets en rapport avec ce message
Recup texte d'une statusbar par handle/classe [ par replic ]
salut, j'aimerai recuperer le texte de la statusbar d'une application en execution. Puis-je y arriver par l'intermediaire du handle de celle et de la
fermeture d'une fenetre Internet Explorer ou explorer [ par lixter ]
SalutVoilà mon prblmJe récupère le handle d'une fenetre Internet explorer ou explorer et je voudrais la fermer sans tuer le processj'utilise donc une
Créer Objet sur une autre fenetre sachant son handle. [ par TiDaN326 ]
Bonjour à tous,Je voudrais savoir s'il est possible de créer un bouton sur une fenetre, sachant l'handle de celle-ci. J'imagine que la question pourra
Recuperation du HANDLE d'une fenetre [ par guy jeuniaux ]
Bonjour à tous,Je voudrais récupérer le HANDLE d'une fenetre afin de controler son état.Cette Fenetre est celle d'une commande DOS d'un batch lancé pa
handle de fenetre non valide [ par simonpelloquin ]
Bonjour, Un PC me fait des misères... J'ai une appli Delphi-Paradox qui m'affiche régulièrement (mais pas systématiquement) le message "Handle de fenê
Retrouver le handle de tout les controles d'une fenetre [ par Nostaroth ]
Bonjour a tous! Donc voila je suis confronté a un probleme enorme: Je voudrai recuperer le handle de tout les controle d'une fenetre du genre:Creation
Affichage dans une fenetre directX [ par blackharu ]
bonjour,Voilà j'ai une application faite avec directX dont je n'est pas les sources...Cependant en utilisant des fonctions windows...j'arrive à recupé
Execution boite de dialogue "ouvrir avec" avec paramètres [ par DarthBlondin ]
Bonjour,J'essaye de lancer la boîte de dialogue "ouvrir avec " de windows J'y arrive via un ShellExecute(0, 'open', 'rundll32.exe', PChar('shell
items PopupMenu via handle [ par yannfrance ]
Bonjour,je contrôle un application externe à la mienne.je récupère le handle à chaque clic d'un popupMenu externe.Ayant çe handle, comment puis-je réc
récupérer le nom (ou le handle) de la fenêtre actuellement active du windows) [ par bazbazus ]
salut a tous je veut récupérer le nom (ou le handle) de la fenêtre actuellement active du windows)? . j'ai chercher sur le site et jai pas trouver.
Livres en rapport
|
Derniers Blogs
[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi
Logiciels
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 Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.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 LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|