Как обнаружить, установлен ли код Visual Studio через код Delphi?Linux

Ответить
Anonymous
 Как обнаружить, установлен ли код Visual Studio через код Delphi?

Сообщение Anonymous »

Я знаю в Windows, что я могу просто сканировать общие пути установки и посмотреть, есть ли там VSCODE, но это никогда не будет на 100% идеальным, потому что кто -то может установить его в совершенно другое место. Каким был бы правильный или лучший способ определить, если на компьютере установлен код Visual Studio?

Код: Выделить всё

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.

Обе вышеупомянутые функции вернули false , даже если у меня установлен код Visual Studio, установленного на моей локальной машине.

Подробнее здесь: https://stackoverflow.com/questions/797 ... elphi-code
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»