Zamykanie systemu

0

Zeby moj program uruchamial sie "przed" systemem windows wstawilem odpowiedni wpis w SYSTEM.INI:

shell= mojprogram.exe

i ok, program startuje jako pierwszy jednak kiedy po kliknieciu na button ma odpalic explorer.exe (tak jak wpis w SYSTEM.INI) to odpala sie explorer jednak ten ktory znamy z Windowsa kiedy probujemy cos eksplorowac :(.

ShellExecute(Handle, 'open', 'explorer.exe', nil, nil, SW_SHOWMAXIMIZED)

Taka linijeczka kodu odpalam tego explorerka.
Co musze zmienic zeby zaladowal mi sie poprawnie caly system.

A drugi problem jest z wylaczeniem nie do konca zaladowanego systemu

Win32Check(ExitWindowsEx(EWX_SHUTDOWN, 0));
Po kliknieciu na button w miom ww programie ma sie wylaczyc komputer, jednak to nie dziala, pewnie dlatego,ze system sie caly nie zaladowal, jakie macie propozycje na te dwa problemy ??

Bede wdzieczny za podpwiedzi.

0

Bo ci sie odpala menager explorer a rdzeń systemu to rundl32 który w systemie widziany jest jako explorer ... I to własnie jego musisz odpalać tylko nie wiem juz z jakimi parametrami ...

0

A próbowałeś tak:
shell=mojprog.exe;explorer.exe
?

0

Na zamknięcie Windows mam wyjątkowo dziwny pomysł (nie jest sprawdzony i nie wiem, czy zadziała).

Otóż możesz napisać swój plik typu *.vxd. On działa w ring0 i ma możliwość wywoływania przerwań. Oczywiście można by tego dokonać wprost ze swojego programu, ale przechodzenie normalnych aplikacji z ring3 do ring0 to używanie różnego rodzaju sztuczek i nie jest zalecane (co nie oznacza, że nie jest stosowane user image).

Otóż można by spróbować wykorzystać kod, który wyłącza komputer klasy ATX z poziomu DOSa (sam opracowałem kod :d). Oto on:
[code]mov ax,5302h
mov bx,0
int 15h
mov ax,5307h
mov bx,1
mov cx,3
int 15h[/code]

Próbuj - może Ci wyjdzie (i nie proś mnie o napisanie tego za Ciebie).

0

Sposób, jaki przedstawił Marooned proponowałbym już tylko jako ostateczność ;-)
Może najpierw spróbuj wymusić wyłączenie:
ExitWindowsEx(EWX_FORCE or EWX_SHUTDOWN, 0);

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