Форум: "WinAPI";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
Внизскрытый запуск с проверками Найти похожие ветки
← →
CoolMan © (2004-10-09 09:31) [0]Подскажите как решаеться такая проблема: Нужно чтобы приложение запускалось в скрытом виде (что бы при ctrl+alt+delete, в трее не светилась), проверяла запущена ли копия: да - закрылась, нет - проверила бы есть ли запись в реестре для нее на автозапуск: нет - внесла бы ее, да - проверила бы запущено ли приложение xxx.exe и в результате вывело бы сообщение: приложение xxx.exe запущенно (не запущенно)
← →
kaZaNoVa © (2004-10-09 09:59) [1]круто !
- но тут тебе не ответят - подумают троян ... :(
- я такие делал ... :)))
- скрытие - ищи ветку про перехват .. :)))
← →
CoolMan © (2004-10-09 11:54) [2]2 kaZaNoVa
А ты мог бы мне помочь? Если да - скинь полный код на berlyan@mail.ru
← →
kaZaNoVa © (2004-10-09 13:02) [3]CoolMan © (09.10.04 11:54) [2]
к сожалению полного кода нет, така как я всё описанное реализовывал по отдельности в разных приложениях ...
поэтому полный код скинуть не могу, так как его нет .. :(
совет:
юзай длл, цепляй или к Explorery, либо к Winlogon"у - в зависимости от прав и задачи ..
- процесс скрывать не придётся ..
получение списка процессов - тут на форуме полно было примеров ..
проверка автозапуска - в отдельном потоке например каждые 2-3 сек .. - вообще просто ..
проверка на запуск копии - лучше всего Mutex юзать ..
или по списку процессов ...
← →
kaZaNoVa © (2004-10-09 13:03) [4]kaZaNoVa © (09.10.04 13:02) [3]
а вариант с перехватом - для скрытия процесса - глючный очень, плюс не от всех прог помогает .. (например от Process Explorera не спрячешь имхо ..)
← →
kaZaNoVa © (2004-10-09 13:13) [5]скрытие: http://delphimaster.net/view/4-1095880863/
перехват: http://delphimaster.net/view/4-1095880863/
дерево процессов http://delphimaster.net/view/4-1095880863/
загрузка длл http://delphimaster.net/view/4-1095880863/
зы поиск по форуму рулит :))
← →
kaZaNoVa © (2004-10-09 13:16) [6]ветку про скрытие удалили ....
код: собственно модификация буфера :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 :))
← →
CoolMan © (2004-10-09 17:28) [7]2 kaZaNoVa
ОГРОМНОЕ СПАСИБО!!!!!!!
← →
kaZaNoVa © (2004-10-09 18:03) [8]CoolMan © (09.10.04 17:28) [7]
незачто ;)))
- также спасибо модераторам, что не удалили ;)))))
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.038 c