From d611931e37b45395e2fb69f6811920728557d3e9 Mon Sep 17 00:00:00 2001 From: Eric Fredricksen Date: Tue, 14 Feb 2012 08:41:54 -0800 Subject: [PATCH] Ignore exceptions when setting file associations, for Win 7 users without admin privs --- Main.pas | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/Main.pas b/Main.pas index 77f5266..1623e15 100755 --- a/Main.pas +++ b/Main.pas @@ -199,15 +199,21 @@ var kOpenCommand: String; begin kOpenCommand := '"' + Application.ExeName + '" "%1"'; - RegWrite(HKEY_CLASSES_ROOT, kFileExt,'', kPQFileType); - RegWrite(HKEY_CLASSES_ROOT, kPQFileType, '', 'Progresss Quest saved game'); - RegWrite(HKEY_CLASSES_ROOT, kPQFileType + '\DefaultIcon', '', Application.ExeName + ',0'); - RegWrite(HKEY_CLASSES_ROOT, kPQFileType + '\Shell\Open', '', '&Open'); - if RegRead(HKEY_CLASSES_ROOT, kPQFileType + '\Shell\Open\Command', '') <> kOpenCommand then begin - RegWrite(HKEY_CLASSES_ROOT, kPQFileType + '\Shell\Open\Command', '', kOpenCommand); - // Notify Windows Explorer to realize we added this. In case this is slow - // I don't do this unless I'm sure this one has changed. - SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil); + try + RegWrite(HKEY_CLASSES_ROOT, kFileExt,'', kPQFileType); + RegWrite(HKEY_CLASSES_ROOT, kPQFileType, '', 'Progresss Quest saved game'); + RegWrite(HKEY_CLASSES_ROOT, kPQFileType + '\DefaultIcon', '', Application.ExeName + ',0'); + RegWrite(HKEY_CLASSES_ROOT, kPQFileType + '\Shell\Open', '', '&Open'); + if RegRead(HKEY_CLASSES_ROOT, kPQFileType + '\Shell\Open\Command', '') <> kOpenCommand then begin + RegWrite(HKEY_CLASSES_ROOT, kPQFileType + '\Shell\Open\Command', '', kOpenCommand); + // Notify Windows Explorer to realize we added this. In case this is slow + // I don't do this unless I'm sure this one has changed. + SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil); + end; + except + on Exception do begin + // Don't care + end; end; end;