haijie1223 发表于 2012-5-11 00:02:21

[已解决]如何禁止FileOpenDialog窗口出现

本帖最后由 haijie1223 于 2012-5-11 09:16 编辑

如题:如何禁止系统中出现FileOpenDialog或者FileSelectFolder等选择窗口出现。

pusofalse 发表于 2012-5-11 01:20:10

禁止FileOpenDialog窗口出现。

#include <Thread.au3>

Const $DEST_PID = @AutoItPID

Local $pGetOpenFileNameW = _RTGetProcAddress("comdlg32.dll", "GetOpenFileNameW")
Local $pGetOpenFileNameA = _RTGetProcAddress("comdlg32.dll", "GetOpenFileNameA")

Local $hProcess = _RTOpenProcess($DEST_PID)

_RTWriteProcessMemory($hProcess, $pGetOpenFileNameA, "0x33C0C20400CCCCCC", 8, "binary")
_RTWriteProcessMemory($hProcess, $pGetOpenFileNameW, "0x33C0C20400CCCCCC", 8, "binary")
_RTCloseHandle($hProcess)

Local $sFileName = FileOpenDialog("test", @DesktopDir & "\", "All files(*.*)")
MsgBox(0, $sFileName, @error)

楼上风云 发表于 2012-5-11 05:53:41

回复 2# pusofalse


    P版的方法,实质上是修改DLL运行数据啊?
膜拜!

haijie1223 发表于 2012-5-11 07:48:20

回复 2# pusofalse


    P侠,我把这个代码放到一个函数中,然后循环检测,但是我点了一下scite的打开按钮,还是能出现FileOpenDialog窗口。

pusofalse 发表于 2012-5-11 07:52:53

回复 4# haijie1223


    将$DEST_PID设为scite进程的PID。 这段代码只需在开始调用一次就可以了,不必循环。

haijie1223 发表于 2012-5-11 09:15:24

回复 5# pusofalse


    再次感谢,没仔细看。

kenan 发表于 2012-5-11 13:39:33

回复 5# pusofalse


    请教p版
0x33C0C20400CCCCCC
表示什么意思啊

楼上风云 发表于 2012-5-11 19:19:02

回复 8# kenan


不知是不是针对comdlg32.dll函数修改的数据
页: [1]
查看完整版本: [已解决]如何禁止FileOpenDialog窗口出现