因此,我无法将我的程序与特定的文件类型关联起来,而不会强制穷人输入其管理员密码(对于家庭用户来说这可能没问题,但对于企业环境中的用户来说这是一个巨大的问题)。在这种情况下,唯一的解决方案是仅为当前用户建立关联。如何将Delphi程序与文件类型相关联,但仅限于当前用户?
我试过,但有些东西不能正常工作。
如果我理解正确,我必须在ctCurUserFileExt中编写一个类似于(比方说)'.mp3'的密钥,并在其中写入类似'my_file'的内容。然后在ctCurUserClases我添加的关键是这样的:
WriteReg_String(RootKey, ctCurUserClases+ 'my_file\shell\open\command', '', Application.ExeName+ ' "%L"', TRUE)
然而,当我双击该文件时,Windows会询问我的应用程序应该把它打开。
这里是常数:
CONST
RootKey= 'HKEY_CURRENT_USER';
ctCurUserFileExt= '\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\';
ctCurUserClases = '\Software\Classes\';
[可能的重复数据删除技术(HTTP命令:/ /stackoverflow.com/questions/4585078/how-to-change-file-association-programmatically-without-require-elevation) – NGLN 2011-06-08 22:05:08
嗨Ngln。它不是一个愚蠢的。这是关于如何关联所有用户(需要提升)。我需要没有提升(所以,只为当前用户)。 – Ampere 2011-06-08 22:24:12
顺便说一句,为什么不使用TRegistry? – 2011-06-08 22:25:20