Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

скрытый запуск с проверками [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]

круто !
- но тут тебе не ответят - подумают троян ...  :(
- я такие делал ...  :)))
- скрытие - ищи ветку про перехват .. :)))


Наверх

Титульная страница Поиск, карта сайта Написать письмо