PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anti CLOSE



zao
15.06.2007, 16:25
hi bin neu hier wollt mich ma vorstellen und hier gleich ne frage:
weiß jemand von euch hier wie ich es hinbekomme, dass eins meiner Programmme sich nicht schließen lässt bis eine Bedingung erfüllt ist. Also nich über das x in der leiste, nicht über den taskmanager, und der benutzer nichts machen kann bis er das programm beendet hat??
danke
mfg zao

Chris K.
15.06.2007, 21:43
nach so einer lösung such ich auch schon lange, hab aber nix gefunden.

Wär cool wenn einer weiss wies geht

zao
16.06.2007, 06:09
ertsmal danke, könntest du das vielleicht etwas erklären? und lässt sich das programm dann nicht über ALT+F4 beenden.
danke
zao

Wolfkiller
18.07.2007, 13:03
Bei IBasic kan man ein fenster ohne den [x] button erstellen ( aber mit alt + F4 und über task manager gehts trotzdem =( )

Menrout
18.07.2007, 13:08
Wenn du das Prog hidden machst, kannst du es nichtmehr sehen (also das Programm führt sich aus ohne geschlossen werden zu können). Die einzige Möglichkeit ist dann den Prozess im TaskManager zu beenden!

Gaara
18.07.2007, 13:42
da gibt es doch auch noch die möglichkeit dass sich mit dem einen programm 2 prozesse öffnen und die sich gegenseitig überwachen. fällt prozess 1 aus, startet prozess 2 ihn direkt wieder. und natürlich anderstrum auch

zao
18.07.2007, 13:52
genau das nennt man einen watcher. ich habe mittlerweile aber diverse andere möglichkeiten gefunden. Zum Beispiel den prozess protecten , oder taskmanager disablen und das x in der leiste weg machen, dannn geht auch alt F4 nicht mehr...
mfg
zao

Gaara
18.07.2007, 20:51
es wäre nett würdest du diese problem lösung für die allgemeinheit öffentlich machen um die frage das nächste mal _vllt_ (sufu vorrausgetzt <.<) zu vermeiden =D

zao
18.07.2007, 20:53
Lösung 1. Prozess protecten

das ist der code um einen prozess zu protecten... erklärung bin ich jetzt zu faul






#define _WIN32_WINNT 0x0500

#include <windows.h>
#include <sddl.h>
#include <accctrl.h>
#include <stdio.h>
#include <conio.h>
#include <aclapi.h>

BOOL ProtectProcess(HANDLE hProcess);

void main(void)
{
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId());


ProtectProcess(hProc);

printf("SetProcessDacl - Keep a process from being closed by other applications.\nDeveloped by ANUBIS");

while(TRUE)
{
Sleep(100);
}

}

BOOL ProtectProcess(HANDLE hProcess)
{
SECURITY_ATTRIBUTES sa;

sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = FALSE;

if (!ConvertStringSecurityDescriptorToSecurityDescrip tor("D:P", SDDL_REVISION_1, &(sa.lpSecurityDescriptor), NULL))
return FALSE;

if (!SetKernelObjectSecurity(hProcess, DACL_SECURITY_INFORMATION, sa.lpSecurityDescriptor))
return FALSE;

return TRUE;

}



Lösung 2. Taskmanager disablen

einfach einen registy schlüssel ändern, hier erbarme ich mich für eine erklärung :-)




RegCreateKeyEx (HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Poli cies\\System" , 0 , 0 , REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS , NULL , &hKey, 0 );
BYTE xString[]="2";
RegSetValueEx(hKey,"DisableTaskMgr",0,REG_DWORD,xString,strlen((char *)xString)+1);




in der ersten zeile wird der schlüssel geöffnet, in der zweiten zeile wird der eigentliche wert vereinbart, den der
reg_sz wert später haben soll und in der dritten zeile wird der wert gesetzt.

3. Möglichkeit ein WATCHER

mache ich bald ein tut

... coming soon

mfg

zao

l0dsb
14.08.2007, 10:58
@all

Und ein Ring0-Treiber wäre natürlich auch noch möglich, in dem man alle relevanten Funktionen hookt. :)

f0Gx