![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
XP чтоб его =( хелп плиз! [D6]
WinLamka © (2003-10-16 17:41:00)
Зрдавствуйте уважаемые мастера!
Вот возникла пара вопросов... Я пишу программу для удаленного контроля\администрирования компьютеров (не троян). Проблемы возникли следующие:
1) Получение списка запущеных программ. Моя программа должна будет следить за запущенными программами на удаленном компьютере, и при появлении запрещенных (игрушек например или msblast =))оповещать об этом админа. Я делаю это так (примитив конечно, но я пока не мастер в такого рода делах)
f:=tstringlist.Create;
Wnd := GetWindow(Handle, gw_HWndFirst);
while Wnd <> 0 do begin
if (Wnd <> Application.Handle)
and (GetWindowText(Wnd, buff, sizeof(buff)) <> 0)
then begin
GetWindowText(Wnd, buff, sizeof(buff));
p:=StrPas(buff);
if IsWindowVisible(Wnd)=false then p:="[hidden] "+p;
if (GetWindow(Wnd, gw_Owner) <> 0)then p:="[child] "+p;
f.Add(p);
end;
Wnd := GetWindow(Wnd, gw_hWndNext);
end;
f.SaveToFile(ExtractFilePath(Application.ExeName)+"\proc.lst");
На win2k и win9x все пашет идеально, но в вин ХР максимум что я получаю это следующее:
[child] [hidden] Form1
[hidden] BadApplicationNotificationWindow
[hidden] resetservice
[hidden] SYSTEM AGENT COM WINDOW
что у меня не так? помогите пожалуйста.
2) Получение скриншота экрана. Я нашел для этого такой код :
Canva := TCanvas.Create;
B := TBitmap.Create;
DC := GetDC(0);
try
Canva.Handle := DC;
with Screen do
begin
B.Width := Width;
B.Height := Height;
B.Canvas.CopyRect(Rect(0, 0, Width, Height),
Canva, Rect(0, 0, Width, Height));
B.SaveToFile(ExtractFilePath(Application.ExeName)+"sys.bmp");
end
finally
ReleaseDC(0, DC);
B.Free;
Canva.Free
end
end;
проблема таже - в вин ХР получаю белый рисунок.
подскажите плиз что можносделать!
заранее спасибо.
VMcL (2003-10-16 18:59:00) [1]
1)
ToolHelp (tlhelp32.pas), PsAPI (psapi.pas)
2)
Canva := TCanvas.Create;
B := TBitmap.Create;
DC := GetDC(0);
try
Canva.Handle := DC;
with Screen do
begin
B.Width := Width;
B.Height := Height;
B.Canvas.CopyRect(Rect(0, 0, Width, Height),
Canva, Rect(0, 0, Width, Height));
B.SaveToFile(ExtractFilePath(Application.ExeName)+"sys.bmp");
end
finally
ReleaseDC(0, DC);
B.Free;
Canva.Free
end
end;