Windows 7 Windows 7中的桌面命名空间扩展:无法拖放

Windows 7 Windows 7中的桌面命名空间扩展:无法拖放,windows-7,drag-and-drop,registry,shell-extensions,Windows 7,Drag And Drop,Registry,Shell Extensions,我有一个使用桌面名称空间扩展的程序。在Windows 2000、Windows XP和Windows Vista中,用户可以将图标拖到桌面上的图标上,然后启动程序。然而,在Windows7(包括Home和Ultimate)中,只需重新排列图标顺序即可。我尝试使用Sysinternals dbgview.exe。它正确地注意到了handler.exe中的许多事件,但将图标拖到名称空间图标上不会触发任何事件,这意味着drophandler根本没有被调用 由于它仍然可以正常工作,所以一定有Window

我有一个使用桌面名称空间扩展的程序。在Windows 2000、Windows XP和Windows Vista中,用户可以将图标拖到桌面上的图标上,然后启动程序。然而,在Windows7(包括Home和Ultimate)中,只需重新排列图标顺序即可。我尝试使用Sysinternals dbgview.exe。它正确地注意到了handler.exe中的许多事件,但将图标拖到名称空间图标上不会触发任何事件,这意味着drophandler根本没有被调用

由于它仍然可以正常工作,所以一定有Windows7所要求的东西,而以前版本的操作系统却没有

名称空间扩展是通过将相关键填充到注册表中来安装的,我希望安装程序能够以这种方式工作:

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"

Windows7的UAC可能会阻止所需的拖放行为。如果拖动的项的权限小于目标项,则目标将不会启动。也许您可以关闭UAC?

在Windows 7上,ShellFolder需要设置SFGAO_可浏览位(0x08000000)。

这不是快捷方式,而是命名空间扩展。无论如何,这不是UAC的问题,关闭UAC也没有影响。