از طریق رجیستری
کد زیر کل برنامه های نصب شده رو بر می گردونه ، کافیه یه کم دست کاریش کنی :
Procedure MFListInstalledProg(ListBox:Tstrings);
var
MyList: TStringList;
MyRegistry: TRegistry;
i: Integer;
Str: string;
//Res:TStrings;
begin
//res:=TStrings.Create;
MyRegistry:=TRegistry.Create;
MyList:=TStringList.Create;
with MyRegistry do
begin
RootKey:=HKEY_LOCAL_MACHINE;
if OpenKey(
'Software\Microsoft\Windows\CurrentVersion\Uninsta ll',
False)=True then GetKeyNames(MyList);
CloseKey;
for i:=0 to MyList.Count-1 do
begin
RootKey:=HKEY_LOCAL_MACHINE;
OpenKey(
'Software\Microsoft\Windows\CurrentVersion\Uninsta ll\'+
MyList[i],
False);
Str:=ReadString('DisplayName');
if Str<>'' then
ListBox.Add(ReadString('DisplayName'));
CloseKey;
end;
end;
end;