2009-10-30 45 views
1

我有一个使用桌面命名空间扩展的程序。在Windows 2000,Windows XP和Windows Vista中,用户可以将图标拖放到桌面上的图标上,并启动程序。但是,在Windows 7(Home和Ultimate)中,发生的所有事情都是图标顺序重新排列。我尝试使用Sysinternals dbgview.exe。它正确地注意到了很多来自handler.exe的事件,但是没有事件通过将图标拖到名称空间图标上触发,这意味着drophandler甚至不会被调用。Windows 7中的桌面命名空间扩展:无法拖放

由于它仍然正常工作,必须有一些Windows 7要求以前版本的操作系统没有。

命名空间扩展由馅相关按键进入注册表安装,我想保持安装工作这种方式:

HKCR\CLSID\{{MY-NAMESPACE-GUID}:():"Caption" 
HKCR\CLSID\{{MY-NAMESPACE-GUID}:(Drop):"""c:\programpath\program.exe"" /argument ""%s""" 
HKCR\CLSID\{{MY-NAMESPACE-GUID}\InProcServer32:():"""c:\programpath\handler.exe""" 
HKCR\CLSID\{{MY-NAMESPACE-GUID}\InProcServer32:ThreadingModel:"Apartment" 
HKCR\CLSID\{{MY-NAMESPACE-GUID}\DefaultIcon:():"""c:\programpath\program.exe"",4" 
HKCR\CLSID\{{MY-NAMESPACE-GUID}\Shell\Open\Command:():"""c:\programpath\program.exe""" 
HKCR\CLSID\{{MY-NAMESPACE-GUID}\shellex\DropHandler:():{MY-GUID-HANDLER} 
HKCR\CLSID\{{MY-NAMESPACE-GUID}\shellex\PropertySheetHandlers(): {MY-GUID-HANDLER} 
HKCR\CLSID\{{MY-NAMESPACE-GUID}\ShellFolder():00 01 00 00 
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\Namespace\{{MY-NAMESPACE-GUID}:():"Caption" 

回答

3

ShellFolder需要有SFGAO_BROWSABLE位(0x08000000)时设置在Windows 7上

0

Windows 7的UAC可以防止所需的拖放行为。如果拖动项目的权限小于目标项目,则目标不会启动。也许你可以关闭UAC?

+0

这不是一个快捷方式,这是一个命名空间扩展。无论如何,这不是UAC问题,关闭UAC不会有任何影响。 – Brian 2009-11-02 17:45:24

相关问题