Firstly;
-CreateToolHelp32SnapShot and Process32First
You should take a snapshot of the system with its commands. The ThreadId information of the application you want will be included in the image you receive.
-GetWindowThreadProcessID
It will give the window handle of the ThreadId information.
And with the EnumChildWindows command you will get the handles of other child windows. Respects.
Help - Excel - VCL form
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Help - Excel - VCL form
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
Re: Help - Excel - VCL form
Konu ile ilgili daha önce yaptığım bir çalışma (Lazarus kullanılarak yapılmıştır.) işimi görmüştü. İncelemenizde yarar var diye düşünüyorum.
O zaman yararlandığım bir kaynak ; http://aziga.x10.mx/delphi/index.php?op ... &Itemid=11
O zaman yararlandığım bir kaynak ; http://aziga.x10.mx/delphi/index.php?op ... &Itemid=11
- Dosya ekleri
-
- PidConvertoHandle.rar
- (126.15 KiB) 126 kere indirildi
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
Re: Help - Excel - VCL form
Lazarus kullanıyorum, delphi kullanmıyorum. O yüzden delphi için biraz değişiklik yapmanız gerekebilir.
En basit şekliyle ;
Unit1.pas içerisindeki kodları inceleyerek, ilgilendiğiniz Uygulamaya ve içerisindeki handle verisi olan kontrollere erişebilirsiniz. Bence, işin en önemli kısmı EnumChildWindows. İlgili kullanımı ise ;
En basit şekliyle ;
Unit1.pas içerisindeki kodları inceleyerek, ilgilendiğiniz Uygulamaya ve içerisindeki handle verisi olan kontrollere erişebilirsiniz. Bence, işin en önemli kısmı EnumChildWindows. İlgili kullanımı ise ;
Kod: Tümünü seç
function blah( HWnd : Cardinal; Param : longint):bool;stdcall;
function GetWindowContents(WindowHandle: Integer): string;
var
Buffer: String;
BufLen: Integer;
begin
BufLen := SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0, 0);
SetLength(Buffer, BufLen + 1);
SendMessage(WindowHandle, WM_GETTEXT, BufLen + 1, LParam(PChar(Buffer)));
result:=buffer;
end;
var
a: pchar;
New: String;
begin
a:= stralloc(256);
getclassname(hwnd, a, 255);
with Form1.TreeView1.Items do
begin
AddChild(MyTreeNode1,
inttostr(HWnd)+' '+
IntToHex(HWnd,8)+' '+
//a+' ' +
GetWindowContents(HWnd)
);
end;
strdispose(a);
Result := true;
end;
procedure Fenum(fhandle:integer);
begin
if EnumChildWindows(fhandle, @blah, 0) then
begin
end
else
begin
end;
end;
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.