请教下各位,WIN10下$GUI_DROPACCEPTED经常失效怎么办?
本帖最后由 superflq 于 2017-8-26 22:02 编辑很久没玩AUTOIT了,最近调试的时候发现,WIN10下$GUI_DROPACCEPTED经常失效怎么办?
我用了自带的实例脚本也没用,同样在WIN7和WIN8下就没有问题
搜索过论坛,很多方法无效,有没有好的解决办法?#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Example()
Func Example()
; 创建一个 GUI 及其各种控件.
Local $hGUI = GUICreate("内置函数示例", 420, 200, -1, -1, -1, $WS_EX_ACCEPTFILES)
; 创建一个文本标签. 并设置其状态为接受拖放.
Local $idLabel = GUICtrlCreateLabel("拖放文件到此标签.", 10, 10, 400, 40, $WS_BORDER)
GUICtrlSetState($idLabel, $GUI_DROPACCEPTED)
; 创建一个输入框. 并设置其状态为接受拖放.
Local $idInput = GUICtrlCreateInput("", 10, 60, 400, 22)
GUICtrlSetState($idInput, $GUI_DROPACCEPTED)
Local $idOK = GUICtrlCreateButton("确定", 310, 170, 85, 25)
; 显示 GUI.
GUISetState(@SW_SHOW, $hGUI)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE, $idOK
ExitLoop
Case $GUI_EVENT_DROPPED
; 如果 @GUI_DropId = $iLabel, 则设置文本标签接受拖放文件.
If @GUI_DropId = $idLabel Then GUICtrlSetData($idLabel, @GUI_DragFile)
EndSwitch
WEnd
; 删除先前创建的 GUI 和所有控件.
GUIDelete($hGUI)
EndFunc ;==>Example
tubaba 曾经提示过我,你加上这两句试试,我没测试环境
DllCall('User32.dll', 'BOOL', 'ChangeWindowMessageFilter', 'UINT', 0x0233, 'DWORD', 1)
DllCall('User32.dll', 'BOOL', 'ChangeWindowMessageFilter', 'UINT', 0x0049, 'DWORD', 1) 回复 2# afan
大大,这2句 在别的帖子里看到过,试了无效
还有有别的招吗 回复 3# superflq
我连那两句都没测试过,没环境,遇不到 … WIN10一直没用过。没法试了 嗯,我也遇到过这种问题。。最开始我还以为是代码问题。。。。。然后最后才发现。他喵的,是win10的问题。。。暂时没找到解决方法。 回复 4# afan
大大还在WIN7吗,赶紧升10了 回复 7# superflq
行业的很多还停留在xp呢。。。。不是每个人都适合升10的 回复superflq
行业的很多还停留在xp呢。。。。不是每个人都适合升10的
yamakawa 发表于 2017-8-27 21:47 http://www.autoitx.com/images/common/back.gif
哎,这个问题咋整呢 tubaba 曾经提示过我,你加上这两句试试,我没测试环境
DllCall('User32.dll', 'BOOL', 'ChangeWindowMess ...
afan 发表于 2017-8-26 23:07 http://www.autoitx.com/images/common/back.gif
tubaba,用过他那个迷惑工具,就想A版一样,技术牛人,太膜拜了。 回复 9# superflq
这样可以么?我这里可以#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#RequireAdmin
DllCall('User32.dll', 'BOOL', 'ChangeWindowMessageFilter', 'UINT', 0x0233, 'DWORD', 1)
DllCall('User32.dll', 'BOOL', 'ChangeWindowMessageFilter', 'UINT', 0x0049, 'DWORD', 1)
Example()
Func Example()
; 创建一个 GUI 及其各种控件.
Local $hGUI = GUICreate("内置函数示例", 420, 200, -1, -1, -1, $WS_EX_ACCEPTFILES)
; 创建一个文本标签. 并设置其状态为接受拖放.
Local $idLabel = GUICtrlCreateLabel("拖放文件到此标签.", 10, 10, 400, 40, $WS_BORDER)
GUICtrlSetState($idLabel, $GUI_DROPACCEPTED)
; 创建一个输入框. 并设置其状态为接受拖放.
Local $idInput = GUICtrlCreateInput("", 10, 60, 400, 22)
GUICtrlSetState($idInput, $GUI_DROPACCEPTED)
Local $idOK = GUICtrlCreateButton("确定", 310, 170, 85, 25)
; 显示 GUI.
GUISetState(@SW_SHOW, $hGUI)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE, $idOK
ExitLoop
Case $GUI_EVENT_DROPPED
; 如果 @GUI_DropId = $iLabel, 则设置文本标签接受拖放文件.
If @GUI_DropId = $idLabel Then GUICtrlSetData($idLabel, @GUI_DragFile)
EndSwitch
WEnd
; 删除先前创建的 GUI 和所有控件.
GUIDelete($hGUI)
EndFunc ;==>Example 回复afan
大大还在WIN7吗,赶紧升10了
superflq 发表于 2017-8-27 20:13 http://www.autoitx.com/images/common/back.gif
基本上每隔一段时间,我都会把我电脑的操作系统从WIN7升级到WIN10,但是基本上过不了两三天,又从WIN10换回到WIN7,如此反复已经很多次了。 回复 12# 水木子
{:face (394):}为嘛不双启啊??? win10 基本都要加 #RequireAdmin 才正常
页:
[1]