GUI内嵌IE,如何禁用右键以及禁用F5刷新?【已解决】
本帖最后由 fenhanxue 于 2013-12-30 20:45 编辑gui内嵌IE,貌似可以通过这行代码来禁用右键:_IEHeadInsertEventScript($oIE, "document", "oncontextmenu", "return false")不过有个bug,就是如果输入“F5”一刷新页面,上面的这行禁用右键的代码就失效了。。。。。
源代码如下:#include <IE.au3>
#include <GUIConstantsEx.au3>
$oIE = _IECreateEmbedded()
$gui1 = GUICreate("test",1200,800)
GUISetState(@SW_SHOW)
$bb = GUICtrlCreateObj($oIE,10,10,1000,790)
_IENavigate($oIE,"http://www.baidu.com")
_IEHeadInsertEventScript($oIE, "document", "oncontextmenu", "return false")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd思考了下,这样修改倒是可以:#include <IE.au3>
#include <GUIConstantsEx.au3>
$oIE = _IECreateEmbedded()
$gui1 = GUICreate("test",1200,800)
GUISetState(@SW_SHOW)
$bb = GUICtrlCreateObj($oIE,10,10,1000,790)
_IENavigate($oIE,"http://www.baidu.com")
_IEHeadInsertEventScript($oIE, "document", "oncontextmenu", "return false")
While 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;在这里加了一段代码,但这样代码会不会运行的效率会很低很低。。。。。。
Sleep(1)
_IEHeadInsertEventScript($oIE, "document", "oncontextmenu", "return false") ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
但这样的代码,会不会源源不断地往IEHeaD里面插入相同的代码,导致程序效率会很低。。。
另外,求助,有没有办法,禁用掉F5呀? 回复 1# fenhanxue
给 F5 注册热键 HOTKEYSET 。。。。。 回复fenhanxue
给 F5 注册热键 HOTKEYSET 。。。。。
user3000 发表于 2013-12-30 18:20 http://www.autoitx.com/images/common/back.gif
这个好主意。。。。 回复fenhanxue
给 F5 注册热键 HOTKEYSET 。。。。。
user3000 发表于 2013-12-30 18:20 http://www.autoitx.com/images/common/back.gif
这个好主意。。。。 回复fenhanxue
给 F5 注册热键 HOTKEYSET 。。。。。
user3000 发表于 2013-12-30 18:20 http://www.autoitx.com/images/common/back.gif
这个好主意。。。。 回复fenhanxue
给 F5 注册热键 HOTKEYSET 。。。。。
user3000 发表于 2013-12-30 18:20 http://www.autoitx.com/images/common/back.gif
这个好主意。。。。 hotkeyset是全局的吧用GUISetAccelerators更合理点。 从控件上屏蔽右键
#include <IE.au3>
#include <Winapi.au3>
#include <GUIConstantsEx.au3>
Global Const $WM_RBUTTONDOWN = 0x0204
$oIE = _IECreateEmbedded()
$gui1 = GUICreate("test", 1200, 800)
GUISetState(@SW_SHOW)
$bb = GUICtrlCreateObj($oIE, 10, 10, 1000, 790)
_IENavigate($oIE, "http://www.baidu.com")
$handle = ControlGetHandle($gui1,"","Internet Explorer_Server1")
$wProcOld = GUIRegisterMsgEx($handle, "_MyWindowProc") ;控件子类化
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
GUIDelete($gui1)
Exit
EndSwitch
WEnd
Func GUIRegisterMsgEx($ctrID, $funcName) ;控件id,函数名
Local $wProcNew = DllCallbackRegister($funcName, "ptr", "hwnd;uint;long;ptr")
Local $wProcOld = _WinAPI_SetWindowLong($ctrID, $GWL_WNDPROC, DllCallbackGetPtr($wProcNew))
Return $wProcOld
EndFunc ;==>GUIRegisterMsgEx
Func _MyWindowProc($hWnd, $uiMsg, $wParam, $lParam)
Switch $uiMsg
Case $WM_RBUTTONDOWN
Return 1 ;屏蔽右键
EndSwitch
;向默认窗口进程传递未处理过的消息
Return _WinAPI_CallWindowProc($wProcOld, $hWnd, $uiMsg, $wParam, $lParam)
EndFunc ;==>_MyWindowProc 回复 8# 风行者
这个厉害,学习拉,谢谢拉~ 回复 8# 风行者
这个厉害,学习拉,谢谢拉~ 这个厉害,学习拉,谢谢拉~ 收藏学习了,谢谢分享 回复收藏了 回复 8# 风行者
测试发现还少了屏蔽右键双击,加以下代码即可:
Case $WM_RBUTTONDBLCLK ;屏蔽右键双击
Return 1 有一段程序正需要这个,谢谢风行者的代码。
页:
[1]
2