找回密码
 加入
搜索
查看: 5463|回复: 8

[系统综合] [已解决]如何禁止FileOpenDialog窗口出现

  [复制链接]
发表于 2012-5-11 00:02:21 | 显示全部楼层 |阅读模式
本帖最后由 haijie1223 于 2012-5-11 09:16 编辑

如题:如何禁止系统中出现FileOpenDialog或者FileSelectFolder等选择窗口出现。
发表于 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)

评分

参与人数 4金钱 +120 贡献 +30 收起 理由
502762378 + 40 + 10
zldfsz + 50 + 5 P侠厉害!
xyhqqaa + 10 新手虽然看不懂,但还是膜拜下
haijie1223 + 30 + 5 不得不佩服P侠!

查看全部评分

发表于 2012-5-11 05:53:41 | 显示全部楼层
回复 2# pusofalse


    P版的方法,实质上是修改DLL运行数据啊?
膜拜!
 楼主| 发表于 2012-5-11 07:48:20 | 显示全部楼层
回复 2# pusofalse


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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-5-11 07:52:53 | 显示全部楼层
回复 4# haijie1223


    将$DEST_PID设为scite进程的PID。 这段代码只需在开始调用一次就可以了,不必循环。
 楼主| 发表于 2012-5-11 09:15:24 | 显示全部楼层
回复 5# pusofalse


    再次感谢,没仔细看。
发表于 2012-5-11 13:39:33 | 显示全部楼层
回复 5# pusofalse


    请教p版
0x33C0C20400CCCCCC
表示什么意思啊
发表于 2012-5-11 19:19:02 | 显示全部楼层
回复 8# kenan


不知是不是针对comdlg32.dll函数修改的数据
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-19 03:38 , Processed in 0.076069 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表