Jak wywołać wyjątek krytyczny w win XP

0

ort! uda sie wywołać wyjątek krytyczny w win xp to system atomatycznie sam sie zamknie bez zapisywania ustawień i włączonych programów z nie zapisanymi zmianami. A dokładnie chodzi mi o to żeby zamknąć win xp bezwarunkowo! [diabel] jes to<ort> w ogóle </ort>możliwe???

0

Hm... Tam w XP jest jakiś proces, który jak zabijesz, to komp się wyłączy po 60sec. Tylko nazwy nie pamiętam. Uruchom sobie XP i zabijaj procesy pokolei, jak padnie, to znaczy, że to ten :)

0

RPC

0

RPC

[rotfl]
nie żartujecie, po pierwsze rpc to nie jest nazwa procesu, to nazwa usługi. po drugie udostępnia ją serwis svchost, i jak sama nazwa (serwis) wskazuje, nie można go zabić. serwisów nie można zabić.

obawiam się, że w pełni powtarzalne wywołanie wyjątku krytycznego w windowsie nt jest nie do zrealizowania, nt to zbyt dobry system, chociaż to dzieło M$.
poza tym system może pogubić dane z dysku, więc pomysł jak na mój lekko gust debilny.

0

Cześć! SVCHOST'a nie da się zabić!!?? To co robi MSBLAST?? On zabija wszystkie procesy (chyba 4) svchost odpalone na kompie, przez co pokazuje się ta głupia tabliczka. Nie wiem, jak to jest z programem do napisania, może nie będzie to jakoś najłatwiejsze, ale u mnie na XP wyłączanie SVCHOST'a jest dziecinnie proste...

0

u mnie tak samo mozna zabic svchost (sprobuj zabic ten o duzym uzyciu procka, to chyba ten)

mozesz tez uzyc: shutdown.exe -f (zamyka wszystko bez ostrzezenia)
a potem: shutdown.exe -s

ps. nie ejstem pewnien ale moze samo -s wystarczy, albo dajesz wszystko naraz: shutdown.exe -f -s

0

Taką funkcją zamkniesz każdego windowsa (w każdym razie testowałem na 2000 i 2003 server)

function SetPrivilege: boolean;
var
  tpPrev, tp: TTokenPrivileges;
  hwnd: THandle;
  dwRetLen: DWord;
begin
  Result := False;
  OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hwnd);
  tp.PrivilegeCount := 1;
  if LookupPrivilegeValue(nil, pchar('SeShutdownPrivilege'), tp.Privileges[0].LUID) then
    begin
      tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
      dwRetLen := 0;
      Result := AdjustTokenPrivileges(hwnd, False, tp, SizeOf(tpPrev), tpPrev, dwRetLen);
    end;
  CloseHandle(hwnd);
end;

procedure BezwarunkoweZamkniecie;
begin
  if SetPrivilege then
    ExitWindowsEx(EWX_POWEROFF or EWX_FORCE, 0);
end;

Odpalasz procedurkę BezwarunkoweZamkniecie i zamykasz windows NT (testowałem na 2000). Najlepsze jest to że używając tej funkcji można zamknąć nawet windows 2003 server kiedy jest się użytkownikiem z ograniczonym dostępem:D (czyli nie ma się w ogóle możliwości zamknięcia systemu)

Mam nadzieję że nie zrobiłem żadnych literówek podczas przepisywania funkcji (mam ją wydrukowaną, na kartce:)). Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1