Код: Выделить всё
function IsVSCodeInstalled: Boolean;
begin
// Checks if Visual Studio Code is installed or not
end;
< /code>
Друг дал мне это, что GPT5 дал ему, но это не работает, и это только окна, но я публикую его здесь, если это поможет кому -то придумать ответ: < /p>
unit VSCodeDetect;
interface
{$IFDEF MSWINDOWS}
function IsVSCodeInstalled_Keys: Boolean;
function IsVSCodeInstalled_AppPaths: Boolean;
{$ENDIF}
implementation
{$IFDEF MSWINDOWS}
uses
System.SysUtils, System.Win.Registry, Winapi.Windows;
function IsVSCodeInstalled_Keys: Boolean;
const
VSCodeKeys: array[0..3] of string = (
'\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{EA457B21-F73E-494C-ACAB-524FDE069978}_is1', // Stable 64
'\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{F8A2A208-72B3-4D61-95FC-8A65D340689B}_is1', // Stable 32
'\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1287CAD5-7C8D-410D-88B9-0D1EE4A83FF2}_is1', // Insiders 64
'\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{C26E74D1-022E-4238-8B9D-1E7564A36CC9}_is1' // Insiders 32
);
var
Reg: TRegistry;
InstallPath: string;
I: Integer;
RootKey: HKEY;
begin
Result := False;
Reg := TRegistry.Create(KEY_READ);
try
for RootKey in [HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER] do
begin
Reg.RootKey := RootKey;
for I := Low(VSCodeKeys) to High(VSCodeKeys) do
begin
if Reg.OpenKeyReadOnly(VSCodeKeys[I]) then
begin
InstallPath := Reg.ReadString('InstallLocation');
if (InstallPath '') and
FileExists(IncludeTrailingPathDelimiter(InstallPath) + 'Code.exe') then
Exit(True);
end;
end;
end;
finally
Reg.Free;
end;
end;
function IsVSCodeInstalled_AppPaths: Boolean;
const
AppPathsKey = '\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Code.exe';
var
Reg: TRegistry;
InstallPath: string;
RootKey: HKEY;
begin
Result := False;
Reg := TRegistry.Create(KEY_READ);
try
for RootKey in [HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER] do
begin
Reg.RootKey := RootKey;
if Reg.OpenKeyReadOnly(AppPathsKey) then
begin
InstallPath := Reg.ReadString('');
if (InstallPath '') and FileExists(InstallPath) then
Exit(True);
end;
end;
finally
Reg.Free;
end;
end;
{$ENDIF}
end.
Подробнее здесь: https://stackoverflow.com/questions/797 ... elphi-code
Мобильная версия