win7 拖放文件到程序快捷图标 不能打开

Windows7操作系统,通常将一个文件拖放到桌面上的程序快捷方式图标上,可以用程序打开文件,现在却没反应了,请问怎么回事?

不知大家在使用 Win7/8 有没有遇到过拖拽文件到程序却无法打开的烦恼, 这个问题困扰了我很久, 今天终于有比较完美的方法, 感谢LEANKY给予的灵感.
可能有些朋友完全不会遇到这个问题,
其原因是他们一直都是开启和使用了内置管理员账号(Administrator), 在 Win8 中使用内置管理员账号会导致应用商城无法打开,
虽然可以通过修改组策略或注册表(导入下面注册表)来解决这问题. 但是我们回过头想想, 内置管理员账号所拥有的权限是很大的,
这会导致系统的安全性下降, 风险也会变大.

Windows Registry Editor Version 5.00

; 内置Administrator管理员帐户使用应用商店
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"FilterAdministratorToken"=dword:00000001

1
2
3
4
5

Windows Registry Editor Version 5.00

; 内置Administrator管理员帐户使用应用商店
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"FilterAdministratorToken"=dword:00000001

当 UAC 彻底关闭的情况下也可以解决这个拖拽打开问题,
这个设置虽然不会影响到 Win7 用户, 但对于 Win8 用户会非常不方便, 应用商场会无法打开, 打开时会提示 UAC 必须开启,
破坏了系统的完整性! 更重要的还是安全问题, 因为 UAC 停用后, 任何程序都可以不经过用户确认后启动! 导入注册表彻底关闭 UAC 的方法:

Windows Registry Editor Version 5.00

; 彻底关闭 UAC
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableLUA"=dword:00000000

1
2
3
4
5

Windows Registry Editor Version 5.00

; 彻底关闭 UAC
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableLUA"=dword:00000000

以上的方法是网上比较常见的解决方法, 然而这些方法都是以破坏系统安全性和完整性作为代价的, 经过我的测试并不可取.

参考了许多的文章, 原因是运行中的程序和文件管理器处于不同的权限运行,
权限低的程序无法访问权限高的程序, 而权限高的程序可以访问权限低的程序, 运行中的程序是管理员权限, 而文件管理器是 Users
权限或是低于管理员权限的权限, 所以这个时候我们只要提升文件管理器的权限.

起初我所想到的一个方法是结束掉当前的 Explorer.exe 进程,
然后使用任务管理器重新运行一个管理员权限的 Explorer 实例,
这个时候打开的文件管理器就有了与运行中的程序相同的管理员权限了(可能相同!), 这个时候应用商城是无法打开使用的, 做完需要的拖拽操作后,
就可以重新运行还原为当前用户权限的 Explorer 实例. 这个方法在我用过一次后就不想再用了, Explorer 换来换去烦不烦!

最后我参考了LEANKY的文章, 给了我很大的启发和灵感, 接下来就开始说明一下给”计算机”的右键菜单添加”以管理员身份打开”的方法, 这样打开后的”计算机”文件管理器就是管理员权限的了:

1. 删除注册表 [HKEY_CLASSES_ROOT\AppID\{CDCBCFCA-3CDC-436f-A4E2-0E02075250C2}] 的”RunAs”键值

打开注册表
[HKEY_CLASSES_ROOT\AppID\{CDCBCFCA-3CDC-436f-A4E2-0E02075250C2}],
这个时候我们没有权限删除”RunAs”键值, 那就修改权限吧.
右键{CDCBCFCA-3CDC-436f-A4E2-0E02075250C2}项 -> “权限…”

弹出该注册表项的权限窗口, 点击”高级”按钮

弹出高级安全设置对话框后, 点击”所有者”后面的”更改”, 在弹出的”选择用户或组”窗口中输入”Administrators“(不包括引号, 注意要加s), 2次确定后返回.

在”组或用户名”处选择”Administrators”, 勾选”Administrators 的权限”完全控制后, 确定返回到注册表

这个时候就可以删除”RunAs”键值了, 右键”RunAs”键值, “删除”.

2. 创建计划任务

打开”运行”, 输入”taskschd.msc”打开计划任务程序. 右键树状图中的”任务计划程序(本地)”, 弹出的菜单中选择”创建任务”, 或者直接单击最右边”操作”列表中列出的”创建任务”.

在弹出的创建任务对话框中的”常规”选项卡中, 输入”名称”,
“名称”可以根据自己喜欢输入, 因为后面需用到这个”名称”, 建议跟我一样填入”OpenComputerAsAdmin”,
“安全选项”中勾选”使用最高权限运行”, “配置”下拉菜单中选择”Windows 8″

切换到”操作”选项卡, 点击”新建”按钮.

“操作”下拉列表中选择”启动程序”,
“程序或脚本”中输入”%SystemRoot%\explorer.exe”(不包括双引号),
“添加参数”填入”,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}”(不包括双引号), 确定完成操作项目创建

切换到”条件”选项卡, 把”只有在计算机使用交流电源时才启动此任务”的勾去掉!

切换到”设置”选项卡, 勾选”允许按需运行任务”, 去掉”如果任务运行时间超过以下时间, 停止任务:”前的勾, 在”如果此任务已经运行, 以下规则适用:”下拉菜单中选择”并行运行新实例”, 点击确定完成任务的创建.

3. 为桌面的”计算机”右键添加”以管理员身份打开”菜单

打开注册表导航到
[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell],
右键新建一个项, 命名为”OpenAsAdmin”, 修改默认值为”以管理员身份打开(&A)”(不含双引号).
新建一个”字符串值”键值, 命名为”icon”(不含双引号),
修改其值为”%WinDir%\System32\imageres.dll,73″(不含双引号)

右键”OpenAsAdmin”项, 新建一个项,
命名为”command”, 然后修改”默认”键值为” schtasks /Run /TN “OpenComputerAsAdmin”
“(不含最外部双引号), 这里的”OpenComputerAsAdmin”就是2中创建的计划任务名称, 如果你定义的名称不一样,
改成你的计划任务名称!

OK, 回到桌面我们就可以看到”计算机”右键菜单中已经添加成功!

当然你也可以省略3手动修改注册表, 使用导入注册表的方式更加方便快捷, 把下面内容保存为REG文件, (或下载, 提取密码:g7ae)直接导入即可:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\OpenAsAdmin]
@="以管理员身份打开(&A)"
"icon"="%WinDir%\\System32\\imageres.dll,73"

; 注意: OpenComputerAsAdmin 改成你命名计划任务的名称!
[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\OpenAsAdmin\command]
@="schtasks /Run /TN \"OpenComputerAsAdmin\""

1
2
3
4
5
6
7
8
9

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\OpenAsAdmin]
@="以管理员身份打开(&A)"
"icon"="%WinDir%\\System32\\imageres.dll,73"

; 注意: OpenComputerAsAdmin 改成你命名计划任务的名称!
[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\OpenAsAdmin\command]
@="schtasks /Run /TN \"OpenComputerAsAdmin\""

问题比较完美的解决了,
以后只需要右键”计算机”菜单”以管理员打开”就能打开一个管理员权限的”计算机”了. 但还是不方便, 因为我们’只’把”计算机”提权,
当需要打开的文件在很深的目录时, 那就要先打开管理员权限的”计算机”, 然后就是麻烦的导航(一个个文件夹的打开),
如果在需要打开的文件所在的文件夹直接能以管理员权限打开这个文件夹就完美了, 我现在所想到的只是给文件夹增加一项菜单, 至于用什么命令还是未知数…
如果你有什么更好的方法, 恳请发贴教导!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-03
这种方法不是一定有效的。。。你用右击文件---发送到---创建桌面快捷方式。。。。在打开试试。。。
第2个回答  2014-10-09
你看一下快捷键方式图标指定的路径是不是源程序,改过来就行
相似回答