请问怎么取得另一个窗口的句柄(50分)

  • 主题发起人 主题发起人 haoslm
  • 开始时间 开始时间
H

haoslm

Unregistered / Unconfirmed
GUEST, unregistred user!
但是我不知道这个窗口的标题是什么,因为他的标题是动态的不确定是什么.
 
你总要知道这个窗体的一些有别于其他人的特征吧?<br><br>难道你问别人看见你爸爸没有时描述特征是男性?
 
那出了用窗口的标题外还有别的方法得到那个窗口的句柄吗?
 
对,用SPY++取得该窗口的类名
 
没有其他特征,难。<br>逐个判断!!!!<br>去spy++看。。。
 
[:D][:D]这个问题,一点儿也不难解决……
 
function GetProcessHandle(FHandle:THandle):Boolean;<br>var<br>&nbsp; FHWND:HWND;<br>&nbsp; Buffer : PChar;<br>&nbsp; iRead : DWORD;<br>&nbsp; FAddr : Cardinal;<br>begin<br>&nbsp; Result := False;<br>&nbsp; FHWND := GetWindow(FHandle,GW_HWNDFIRST); //获取起始窗口句柄<br>&nbsp; while FHWND &gt; 0 do<br>&nbsp; begin<br>&nbsp; &nbsp; WindowThreadId := GetWindowThreadProcessId(FHWND,@ProcessID);//获取窗口线程ID和进程标识符<br>&nbsp; &nbsp; ProcessHandle := OpenProcess(PROCESS_ALL_ACCESS,True,ProcessID); //获取进程句柄<br>&nbsp; &nbsp; if ProcessHandle &gt; 0 then<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; FAddr := $004000000; &nbsp;//定义读取内存特征的基址<br>&nbsp; &nbsp; &nbsp; GetMem(Buffer,1024);<br>&nbsp; &nbsp; &nbsp; ReadProcessMemory(ProcessHandle,Pointer(FAddr),Buffer,SizeOf(Buffer),iRead); //读取内存特征<br>&nbsp; &nbsp; &nbsp; if Buffer='内存数据特征' then //判断内存特征<br>&nbsp; &nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; &nbsp; Result := True;<br>&nbsp; &nbsp; &nbsp; &nbsp; Break;<br>&nbsp; &nbsp; &nbsp; end;<br>&nbsp; &nbsp; end;<br>&nbsp; &nbsp; FHWND := GetWindow(FHWND,GW_HWNDNEXT);<br>&nbsp; end;<br>end;<br><br>//ps:我个人比较BT…,不太喜欢传统的方法……
 
用坐标,先取得坐标的位置,然后取得坐标当前位置窗体的句柄,这个是行得通的<br>getcursorpos(p);//得到当前鼠标指针的在屏幕上的坐标 <br>curwin:=windowfrompoint(p);// 获得窗口句柄 <br>getclassname(curwin,text,255);//取得窗体的类名
 
to kyoty,是够BT的,不错。
 
to mofaser<br><br>承让承让……
 
接受答案了.
 
后退
顶部