我做一程序模拟另一程序的安装过程,如何区分窗口的句柄,代码大致如下。
我的实现是:利用findwindow得到窗口句柄,再发送点击命令,可是下一安装页面与当前安装页面标题一样,我怎样区分当前页面已经是新的页面了呢?我现在靠的是延时给窗口响应时间,但是我想这不是最好的办法。如比较h1、h2的值不等即为新打开的页面,是否安全可行?另有没有更好的解决办法?
var
  h1,h2:hwnd;
begin
  h1:=findwindow(0,'AAA');
  if h1<>0 then
  begin
    点击命令;
    sleep(3000);
    h2:=findwindow(0,'AAA');
    if h2<>0 then
    begin
      点击命令;
      sleep(3000);
      
    end;
  end;
end;

解决方案 »

  1.   

    你findwindow的那個窗口,應該都沒銷毀,你只是想知道它上面的頁面是否切換。通過窗口句柄是不對的,因為窗口沒有銷毀,第一次取 ,第二次取,結果是一樣的。
      

  2.   

    或許通過FindWindowEx尋找子窗口的名稱作為標志,來判斷頁面的切換
      

  3.   

    建一個   CreateEvent 對象,然後循環第一步,成功了RESETEVENT,再到下一步。
      

  4.   

    补充一下,是否如 Avan_Lau 所说,窗口句柄是一致的呢?
      

  5.   

    GetForcegroundWindow得到当前焦点所在父窗体的句柄,如果是子窗体的话,如果不是就是当前窗体的句柄。