Показать сообщение отдельно

  #4  
Старый 23.11.2008, 15:35
crystalbit
Участник форума
Регистрация: 06.06.2008
Сообщений: 171
С нами: 9436571

Репутация: 110
По умолчанию

процедура поиска папок квипов(если несколько установлено)
Код:
procedure regGetValuesHKCU(where:string; StringList:TStrings);
var
  Key: HKEY;
  Len, LenTemp, Count, I: DWORD;
  S: PChar;
begin
  StringList.clear;
  GetMem(S, 255);
  if RegCreateKey(HKEY_CURRENT_USER, PChar(where), Key) = 0 then
  begin
    RegQueryInfoKey(Key, nil, nil, nil, nil, nil, nil, @Count, @Len, nil, nil, nil);
    for I := 0 to Count - 1 do
    begin
      LenTemp := Len +1;
      RegEnumValue(Key, I, S, LenTemp, nil, nil, nil, nil);
      StringList.Add(S);
      FillChar(S^, 255, 0);
    end;
    RegCloseKey(key);
  end;
  FreeMem(S);
end;

procedure GetQIPPaths(StringList:TStringList);
var
  i:integer;
begin
  regGetValuesHKCU('Software\Microsoft\Windows\ShellNoRoam\MUICache',StringList);
  for i:=StringList.Count-1 downto 0 do
    if pos('\qip.exe',StringList.Strings[i])=0 then
      StringList.Delete(i);
  for i:=0 to StringList.Count-1 do
    StringList.Strings[i]:=ExtractFilePath(StringList.Strings[i]);
end;
писал когда-то для себя, успешно использовал в своей проге

(необходимо, чтоб был подключен classes)
 
Ответить с цитированием