![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
скрытый запуск с проверками [D6]
CoolMan © (2004-10-09 09:31:00)Подскажите как решаеться такая проблема: Нужно чтобы приложение запускалось в скрытом виде (что бы при ctrl+alt+delete, в трее не светилась), проверяла запущена ли копия: да - закрылась, нет - проверила бы есть ли запись в реестре для нее на автозапуск: нет - внесла бы ее, да - проверила бы запущено ли приложение xxx.exe и в результате вывело бы сообщение: приложение xxx.exe запущенно (не запущенно)
kaZaNoVa (2004-10-09 18:03:00) [1]CoolMan © (09.10.04 17:28) [7]
незачто ;)))
- также спасибо модераторам, что не удалили ;)))))
CoolMan (2004-10-09 17:28:00) [2]2 kaZaNoVa
ОГРОМНОЕ СПАСИБО!!!!!!!
kaZaNoVa (2004-10-09 13:16:00) [3]ветку про скрытие удалили ....
код: собственно модификация буфера :
function MyNtQuerySystemInformation(ASystemInformationClass:Cardinal;
ASystemInformation:Pointer;ASystemInformationLength:Cardinal;AReturnLength:PCardinal):Cardinal; stdcall;
Var
s:string;
NextOffset: ULONG;
PProcess,PProcess2 : PSYSTEM_PROCESSES_NT2000;
begin
result:=NtQuerySystemInformation(ASystemInformationClass,ASystemInformation,
ASystemInformationLength,AReturnLength);
if ASystemInformationClass<>5 then exit;
PProcess := PSYSTEM_PROCESSES_NT2000(ASystemInformation);
repeat
s:='';
s:=HSUnicodeStringToAnsiString(PProcess^.ProcessName);
NextOffset := PProcess^.NextEntryDelta;
if PProcess^.ProcessId=GlobalData^.ProcessID
then begin
if NextOffset=0 then
PProcess2^.NextEntryDelta:=0;
else
PProcess2^.NextEntryDelta:=PProcess2^.NextEntryDelta+PProcess^.NextEntryDelta;
end;
PProcess2:=PProcess;
PProcess := PSYSTEM_PROCESSES_NT2000(DWORD(PProcess) + NextOffset);
until NextOffset = 0;
end;
всё реализовано в дллке , которая хуком грузиться во все GUI-процессы, в том числе и в TaskManager :))
kaZaNoVa (2004-10-09 13:13:00) [4]скрытие: http://www.delphimaster.ru/cgi-bin/forum.pl?id=1095880863&n=5
перехват: http://www.delphimaster.ru/cgi-bin/forum.pl?id=1093466109&n=5
дерево процессов http://www.delphimaster.ru/cgi-bin/forum.pl?id=1096543570&n=5
загрузка длл http://www.delphimaster.ru/cgi-bin/forum.pl?id=1096745572&n=5
зы поиск по форуму рулит :))
kaZaNoVa (2004-10-09 13:03:00) [5]kaZaNoVa © (09.10.04 13:02) [3]
а вариант с перехватом - для скрытия процесса - глючный очень, плюс не от всех прог помогает .. (например от Process Explorera не спрячешь имхо ..)
kaZaNoVa (2004-10-09 13:02:00) [6]CoolMan © (09.10.04 11:54) [2]
к сожалению полного кода нет, така как я всё описанное реализовывал по отдельности в разных приложениях ...
поэтому полный код скинуть не могу, так как его нет .. :(
совет:
юзай длл, цепляй или к Explorery, либо к Winlogon'у - в зависимости от прав и задачи ..
- процесс скрывать не придётся ..
получение списка процессов - тут на форуме полно было примеров ..
проверка автозапуска - в отдельном потоке например каждые 2-3 сек .. - вообще просто ..
проверка на запуск копии - лучше всего Mutex юзать ..
или по списку процессов ...
CoolMan (2004-10-09 11:54:00) [7]2 kaZaNoVa
А ты мог бы мне помочь? Если да - скинь полный код на berlyan@mail.ru
kaZaNoVa (2004-10-09 09:59:00) [8]круто !
- но тут тебе не ответят - подумают троян ... :(
- я такие делал ... :)))
- скрытие - ищи ветку про перехват .. :)))