4 TortoiseGitInstallKey
='SOFTWARE\TortoiseGit';
5 TortoiseSVNInstallKey
='SOFTWARE\TortoiseSVN';
6 TortoiseCVSUninstallKey
='SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\TortoiseCVS_is1';
7 PuTTYUninstallKey
='SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PuTTY_is1';
8 PuTTYPrivateKeyAssoc
='PuTTYPrivateKey\shell\open\command';
10 // Tries
to detect the path
to a PuTTY installation
/ an application that comes
11 // with an improved version
of Plink
. TortoisePlink from TortoiseGit
/SVN features a
12 // GUI dialog
to accept new host keys
, for example
.
13 function GetPuTTYLocation
:string;
15 // Prefer TortoisePlink over vanilla Plink
for its GUI dialog
to accept host keys
.
16 if (IsWin64
and RegQueryStringValue(HKEY_LOCAL_MACHINE_64
,TortoiseGitInstallKey
,'Directory',Result
)) or
17 RegQueryStringValue(HKEY_LOCAL_MACHINE_32
,TortoiseGitInstallKey
,'Directory',Result
) then begin
18 // C
:\
Program Files\TortoiseGit\
19 Result
:=Result
+'bin\';
20 // C:\Program Files\TortoiseGit\bin\
21 end else if (IsWin64 and RegQueryStringValue(HKEY_LOCAL_MACHINE_64,TortoiseSVNInstallKey,'Directory
',Result)) or
22 RegQueryStringValue(HKEY_LOCAL_MACHINE_32,TortoiseSVNInstallKey,'Directory
',Result) then begin
23 // C:\Program Files\TortoiseSVN\
24 Result:=Result+'bin
\';
25 // C
:\
Program Files\TortoiseSVN
\bin\
27 if not (IsWin64
and RegQueryStringValue(HKEY_LOCAL_MACHINE_64
,TortoiseCVSUninstallKey
,'InstallLocation',Result
)) then begin
28 RegQueryStringValue(HKEY_LOCAL_MACHINE_32
,TortoiseCVSUninstallKey
,'InstallLocation',Result
);
30 // C
:\
Program Files\TortoiseCVS\
33 if DirExists(Result
) then begin
34 Result
:=Result
+'TortoisePlink.exe'
38 if not RegQueryStringValue(HKEY_LOCAL_MACHINE
,PuTTYUninstallKey
,'InstallLocation',Result
) then begin
39 if RegQueryStringValue(HKEY_CLASSES_ROOT
,PuTTYPrivateKeyAssoc
,'',Result
) then begin
40 // "C:\Program Files\PuTTY\pageant.exe" "%1"
41 Result
:=RemoveQuotes(Result
);
42 // C
:\
Program Files\PuTTY\pageant
.exe
" "%1
43 Result
:=ExtractFilePath(Result
);
46 // C
:\
Program Files\PuTTY\
48 if not DirExists(Result
) then begin
50 Result
:=ExpandConstant('{pf}\PuTTY\');
53 Result:=Result+'plink
.exe
'