怎样编程取得程序的类名?(50分)

  • 主题发起人 主题发起人 weel
  • 开始时间 开始时间
W

weel

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样编程取得游戏的类名?如 WinAmp的类名为Winamp v1.x  ?
 
使用 FindWindow() 找到指定应用程序的句柄 ,若是本程序的话就不说了<br>再用API函数GetClassName 可以知道该窗口的类名.<br><br>var<br>&nbsp; className: PChar;<br>&nbsp; i: Integer;<br>begin<br>&nbsp; className := AllocMem(100);<br>&nbsp; className[0] := '0';<br>&nbsp; for i := 0 to Form1.ComponentCount - 1 do<br>&nbsp; begin<br>&nbsp; &nbsp; &nbsp;if (Form1.Components Is TWinControl ) then<br>&nbsp; &nbsp; &nbsp; &nbsp;if GetClassName(TWinControl(Form1.Components).Handle, <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; className, 100) &lt;&gt; 0 then<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ShowMessage(className);<br>&nbsp; &nbsp; &nbsp;className[0] := '0';<br>&nbsp; end;<br>&nbsp; FreeMem(className);<br>end;<br><br>
 
To:weel是类名还是窗口句柄<br>同意楼上
 
这样取得的不是窗口的类名,取得的是TButton,TEdit等窗体上放的构件的名称。<br>而这个窗体真正的类名是:<br>TApplication<br>TFrom1<br>
 
为什么要取得程序的类名?莫非想学SPY++ ^_^<br>用GETCLASSNAME是可以的,不过第一个参数要用FINDWINDOW找来的窗口HANDLE而已:)
 
是的Game master可以取得。<br>但我想用编程的方法取得。
 
用API EnumWindows()来得到当前所有运行的窗口handle,然后就可以用sendMessage或者<br>dephi的涵数(如GetClassName())得到对应窗口的handle
 
后退
顶部