Автор
|
Тема: невидимость по Ctr-Alt-Del
|
sergey_pank |
опубликован 12-11-2001 17:20 MSK
Подскажите пожалуйста кто знает, как сделать так, чтобы запущенную программу не было видно по Ctr-Alt-Del и по Alt-Tab (средствами Buildera, Delphi...). В FAQ встречался как-то мне один вариант реализации такого чуда (прога была в консольном исполнении), но после компиляции и запуска толку не было почему-то. --------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { //---что мне сюда необходимо прописать ?????} ---------------------------------
|
SUnteXx
|
опубликован 13-11-2001 12:37 MSK
Присоединяюсь к вопросу, только невидимость под MVC, а не под Builder! Пыталься под XP сделать следующее, не получилось!typedef DWORD (WINAPI *PREGISTERSERVICEPROCESS)(DWORD,DWORD); bool RSP(double p1, double p2) { PREGISTERSERVICEPROCESS rsp; HINSTANCE hK32; bool Rc=false; hK32=GetModuleHandle("kernel32.dll"); if(hK32!=NULL) { rsp=(PREGISTERSERVICEPROCESS) GetProcAddress(hK32, "RegisterServiceProcess"); // Получалось, что rsp = 0! А не должен был быть, поидеи! if(rsp!=NULL) { Rc=true; rsp(p1,p2); } FreeLibrary(hK32); } return Rc; } Что можно/надо исправить/добавить?
|
Del
|
опубликован 13-11-2001 13:28 MSK
Под Билдером я использовал тот-же код. Может мы его вызывали по-разному?WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { if (!RSP(NULL,1)) return 0; // дальше как обычно... try { Application->Initialize(); //...и так далее } под VC не пробовал, но по-идее те же яйца только в профиль... |
eph
|
опубликован 13-11-2001 20:58 MSK
... 'прелести' недокументированных ф-ий .. Начиная с win2k RegisterServiceProcess убрали из kernel-a ... |
SUnteXx
|
опубликован 13-11-2001 22:44 MSK
2epx: И как быть?Хотя все-равно можно будет увидеть процесс, но все же как? |
eph
|
опубликован 13-11-2001 23:54 MSK
Выход - внедрять свой код в чужой процесс.P.s. RegisterServiceProcess на СПИСОК процессов системы влияния никакого не оказывала. |
sergey_pank
|
опубликован 14-11-2001 17:22 MSK
Если можно, поподробнее. Я что-то никак понять немогу что это за функции, в каком случае их необходимо вызывать, что необходимо указывать во входных данных этих функций.Например ----------------- что означает p1 и p2 bool RSP(double p1, double p2){ и т.д. ----------------- Вообще мне необходимо сделать так чтобы прогу нельзя отключить во время работы, т е чтобы нельзя было "снять задачу" по ctrl-alt-del |
Susik
|
опубликован 14-11-2001 21:01 MSK
2сережа_панк: для того чтобы спрятать из "списка задач" прогу - тебе уже написали написали что надо вставить:- сначала описываешь свою функцию, в которой все делается: typedef DWORD (WINAPI *PREGISTERSERVICEPROCESS)(DWORD,DWORD);//экспортируемая АПИ-функция (типа-прототип) bool RSP(double p1, double p2)//описываешь эту функцию { PREGISTERSERVICEPROCESS rsp; HINSTANCE hK32; bool Rc=false; hK32=GetModuleHandle("kernel32.dll"); if(hK32!=NULL) { rsp=(PREGISTERSERVICEPROCESS) GetProcAddress(hK32, "RegisterServiceProcess"); if(rsp!=NULL) { Rc=true; rsp(p1,p2); } FreeLibrary(hK32); } return Rc; } - потом в своей приге вызываешь тока что описанную тобой функцию:
void __fastcall TForm1::FormCreate(TObject *Sender) {//прога "прячется" if (!RSP(NULL,1))//если спрятаться не удалось, тогда пойдем гулять Close(); } внимательней читай :)
|
sergey_pank
|
опубликован 15-11-2001 13:27 MSK
Большое спасибо. |
Mabbus
|
опубликован 18-11-2001 20:35 MSK
а как под MFC подскажите? |
SUnteXx
|
опубликован 18-11-2001 22:02 MSK
2Mabbus: Вам же написали уже! ЧИТАЙТЕ ВНИМАТЕЛЬНЕЙ! |