gaoyuan22 发表于 2009-5-10 19:02:26

关于窗口句柄的一个疑问.

本帖最后由 gaoyuan22 于 2009-5-10 19:53 编辑

$Hwnd1 = WinGetHandle("")
        MsgBox(0,"提示",$Hwnd1)
        RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\00yxHwnd","P1","REG_SZ",$Hwnd1)
    Sleep(500)
    $Hwnd2=RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\00yxHwnd","P1")
        MsgBox(0,"提示",$Hwnd2)
    If $Hwnd1=$Hwnd2 Then MsgBox(0,"提示","相等")
    Sleep(1000)
        WinSetState ($Hwnd2,"",@SW_MINIMIZE)
    Sleep(1000)
        WinActivate($Hwnd2, "")

如上,一段程序自己捕获的 窗口句柄,用来对窗目标窗口操作没有任何问题.
但是,我把捕获的窗口句柄写到注册表里,再读出来,
虽然用
    If $Hwnd1=$Hwnd2 Then MsgBox(0,"提示","相等")
来判断
显示 直接读到的 句柄和 从注册表里读到的句柄代码完全一样.
但,用从注册表里读到的句柄代码,却无法对目标窗口进行操作.
变量 $Hwnd1 与 $Hwnd2 是完全一样的啊,
怎么一个有效,一个完全无效呢?

pusofalse 发表于 2009-5-10 19:06:34

WinSetState (Hwnd($Hwnd2),"",@SW_MINIMIZE)

gaoyuan22 发表于 2009-5-10 19:52:57

感谢!
明白了.

sensel 发表于 2009-5-11 00:32:05

我补充一下:注意变量类型。
页: [1]
查看完整版本: 关于窗口句柄的一个疑问.