pingguo002 发表于 2017-4-18 16:44:29

报告:win2008下编译,gui窗口置顶编码失效

在win2008下直接运行、编译,置顶代码失效,窗口不能置顶
在xp下编译,可以置顶。
把xp编译后的exe文件拿到win2008下,可以正常使用,运行时仍然置顶。_SetWindowPos($Form1, 200, 200)
Func _MainSwitch()
      Switch @GUI_CtrlId
                Case $GUI_EVENT_CLOSE
                        GUIDelete($Form1)
                        Exit
       EndSwitch
        EndFunc
        Func _SetWindowPos($hWnd, $x, $y) ;使用API将窗体保持最前
Local $cX, $cY
Dim $hWndInsertAfter = -1
Dim $wFlags = 1
DllCall("user32.dll", "long", "SetWindowPos", "long", $hWnd, "long", $hWndInsertAfter, "long", $x, _
   "long", $y, "long", $cX, "long", $cY, "long", $wFlags)
EndFunc   ;==>_SetWindowPos

kk_lee69 发表于 2017-4-18 17:13:37

回复 1# pingguo002

64位元 與 32位元問題吧

在WIN2008下 以32位元編譯 看看

229989799 发表于 2017-4-18 23:14:07

winsetontop这个比较好用。。。

229989799 发表于 2017-4-18 23:17:42

例子:

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 438, 192, 124)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        WinSetOnTop($Form1,"",1)
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd

pingguo002 发表于 2017-4-19 09:57:06

谢谢,选32位编译就能正常编译运行了

kk_lee69 发表于 2017-4-19 10:16:17

回复 5# pingguo002

解決了 請修改標題   請看板規
页: [1]
查看完整版本: 报告:win2008下编译,gui窗口置顶编码失效