Итак нужно в Delphi сделать так так чтоб по нажатию кнопки комп вырубался мгновенно (как при нажатии reset на системном блоке, тока без последующей перезагрузки), а не как через пуск - выключить, так шо shutdown и ewx_force не годятся. И есчо скажите плиз где хранятся файлы журнала или как его удалить, и где храниться история оперы(в каком файле). Знаю мож такие темы были но нет времени читать, ответьте, плиз!
1) Напиши драйвер Я тебя уверяю что если по кнопке ты будешь его стартовать и при этом никогда их не писал - система упадет мгновенно Добиться резета а не бсода тоже не так сложно... 2) Приатачься к системному процесу и убей свой процес убив этим же и системный процесс. 3) Code: HANDLE hToken; TOKEN_PRIVILEGES* NewState; OpenProcessToken (GetCurrentProcess (), TOKEN_ADJUST_PRIVILEGES, &hToken); NewState = (TOKEN_PRIVILEGES*) malloc (sizeof (TOKEN_PRIVILEGES) + sizeof (LUID_AND_ATTRIBUTES)); NewState->PrivilegeCount = 1; LookupPrivilegeValue (NULL, SE_SHUTDOWN_NAME, &NewState->Privileges[0].Luid); NewState->Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges (hToken, FALSE, NewState, NULL, NULL, NULL); free (NewState); CloseHandle (hToken); ExitWindowsEx (EWX_REBOOT, 0);
Позаумней будет разработать внешний девайс для нажатия кнопки RESET, подключаемый, например, к усб компа, и драйвер, активно его юзающий. Ну и компонент или класс в делфи соорудить для доступа к сему девайсу. Вот тогда и можно будет обрабатывать событие OnClick класса TButton
Чтобы нажать кнопку ресет нужно выполнить в ring0: mov al, $FE out $64, al а чтобы не перезагрузился предворительно запортить системные файлы. все на Delphi: http://forum.antichat.ru/thread42447.html
у меня ресетом является тупо... Code: xor eax, eax mov [eax], eax хотя говорят по идее BSOD Должен быть... хз...
есле на ring0 то будет BSOD, есле просто, то ошибка выскачит. Reset ты никак не имитируеш, разве что как нерезус сказал
читаете вы между строк скажу я вам... походу не достаточно дохотчиво объяснил... я имел ввиду, что, у меня в ринг0 при Code: xor eax, eax mov dword ptr [eax], eax и других ошибках доступа, и т.д. ресетится кампег, как после нажатия кнопочки ресет... никакого BSOD... =\\\ вам это понятно? или снять всё на камеру и выложить чтоб вы поняли окончательно... =\\\
способ довольно глупый)) подобного рода программы необходимо писать на ассемблере) в дельфях гибкость асемблера не отличается изящностью) ------------------------------------------------------------------------------------ 1. пишем код на ассемблере и компилируем его (97 байт)(компилятор Fasm) 2. импортирует его в файл ресурсов (180 байт) 3. вызываем его на исполнение из проекта ------------------------------------------------------------------------------------ [+] файл ресурсов в 180 байт + написанно качественно на Fasme [-] очень и очень много))) ------------------------------------------------------------------------------------ скачать можно тут: ссылка на главной странице прямая ссылка на архив ------------------------------------------------------------------------------------ работает на Windows XP SP2 (80%) на висте не в курсе