Доброе время суток.
Подкскажите, как получить список запущенных процессов и версию Intenet Explorer'a не имея прав администратора?
Для получения версии Internet Explorer'a использую ключ реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer, параметр Version. Но вот беда в том, что если нет прав админа, то доступа сюда нет, т.е. мне возвращается пустая строка.
function GetIEVersion: string;
var
Reg: TRegistry;
begin
Reg:= TRegistry.Create;
try
Reg.RootKey:= HKEY_LOCAL_MACHINE;
Reg.OpenKey('Software\Microsoft\Internet Explorer', false);
try
Result:= Reg.ReadString('Version');
except
Result:= '';
end;
Reg.CloseKey;
finally
Reg.Free;
end;
end;
Для получения списка запущенных процессов использую след. код:
procedure GetProcessList(var sl: TStrings);
var
pe: TProcessEntry32;
ph, snap: THandle; //дескрипторы процесса и снимка
mh: hmodule; //дескриптор модуля
procs: array[0..$FFF] of dword; //массив для хранения дескрипторов процессов
count, cm: cardinal; //количество процессов
i: integer;
ModName: array[0..max_path] of char; //имя модуля
begin
sl.Clear;
if Win32Platform = VER_PLATFORM_WIN32_WINDOWS then
begin //если это Win9x
snap := CreateToolhelp32Snapshot(th32cs_snapprocess, 0);
if integer(snap) = -1 then
begin
exit;
end
else
begin
pe.dwSize := sizeof(pe);
if Process32First(snap, pe) then
repeat
sl.Add(string(pe.szExeFile));
until not Process32Next(snap, pe);
end;
end
else
begin //Если WinNT/2000/XP
if not EnumProcesses(@procs, sizeof(procs), count) then
begin
exit;
end;
for i := 0 to count div 4 - 1 do
begin
ph := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,
false, procs[i]);
if ph > 0 then
begin
EnumProcessModules(ph, @mh, 4, cm);
GetModuleFileNameEx(ph, mh, ModName, sizeof(ModName));
sl.Add(string(ModName));
CloseHandle(ph);
end;
end;
end;
end;
Но опять же, если нет прав админа, то я не могу получить список всех процессов

(получаю только процессы запущенные от имени текущего пользователя). Список процессов нужен с полными путями к файлам и всех пользователей, включая сервисные (сервисы).
Помогите решить проблемы, плиз.
Заранее благодарен.