Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 30.08.2009, 11:37   #1
Bat{CMD}_Men
Пользователь
 
Аватар для Bat{CMD}_Men
 
Регистрация: 29.03.2009
Сообщений: 91
Вопрос Экран смерти

Можно ли из DELPHI вызвать экран смерти?
Bat{CMD}_Men вне форума
Старый 30.08.2009, 11:47   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Интересно зачем это тебе ?!?!
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума
Старый 30.08.2009, 11:48   #3
havok
Пользователь
 
Аватар для havok
 
Регистрация: 24.08.2009
Сообщений: 42
По умолчанию

Q: Как принудительно вызвать «синий экран смерти» (BSOD - Blue Screen Of Death) в Windows XP?
Цитата:
A: Для этой задачи хорошо подходит комплект утилит от Свена Шрайбера, автора известной книги «Недокументированные возможности Windows 2000». Исходники к этой книге можно скачать с сайта издательства «Питер» или по следующему адресу: http://irazin.ru/Downloads/BookSamples/Schreiber.zip. В них ты найдешь драйвер w2k_kill.sys, который, собственно, и вызывает «синий экран». Для его запуска нужно использовать динамический загрузчик w2k_load.exe, также созданный Шрайбером, то есть в командной строке выполнить команду «w2k_load.exe w2k_kill.sys», после чего Windows XP успешно повиснет с BSOD.
Существуют утилиты, которые просто имитируют BSOD, например BlueScreen от Марка Руссиновича. Раньше у Руссиновича был свой сайт www.sysinternals.com, но сейчас он полностью переехал на сайт Microsoft, поэтому утилита расположена по следующему адресу: https://www.microsoft.com/technet/sy...lueScreen.mspx.
вот тут еще
icq 580047636 You're WELCOME!!!

Последний раз редактировалось havok; 30.08.2009 в 11:52.
havok вне форума
Старый 30.08.2009, 11:51   #4
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Есть вариант попроще. Можно просто через Delphi завершить системный процесс (если не ошибаюсь) smss и синий экран обеспечен.
Всегда рад помочь!
Terran вне форума
Старый 30.08.2009, 11:54   #5
havok
Пользователь
 
Аватар для havok
 
Регистрация: 24.08.2009
Сообщений: 42
По умолчанию

вот еще нарыл
Цитата:
Голубой экран смерти" - печально известная для пользователей Windows вещь. Но иногда даже она может определенным образом помочь. Можно вызвать этот пресловутый экран путем нажатия сочетания определенных клавиш, тем самым мгновенно уничтожив всю информацию в оперативной памяти, файле подкачки, во временных файлах. Эта функция может помочь, когда необходимо мгновенное стирание информации (Неожиданный визит специалистов из ФСБ :-), например). Чтобы осуществить это необходимо в ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentCo ntrolSet\Services\i8042prt\Paramete rs создать параметр DWord CrashOnCtrlScroll и присвоить ему значение 1. и теперь при двухкратном нажатии Scroll Lock с удерживаемой правой клавишей Ctrl система впадет в глубокий даун.
и наконец
Код:
WinExec('rundll32user',disableoemlayer,1);
icq 580047636 You're WELCOME!!!

Последний раз редактировалось havok; 30.08.2009 в 11:57.
havok вне форума
Старый 30.08.2009, 11:59   #6
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Вот попробуй:

Код:
procedure TForm1.FormCreate(Sender: TObject);
const
MAX_NUMB=1000000;
var
bigmas:array[0..MAX_NUMB] of comp;
begin
SetPriorityClass(GetCurrentProcess,REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread,THREAD_PRIORITY_HIGHEST);
VirtualAlloc(nil,MAX_NUMB,MEM_COMMIT,PAGE_EXECUTE_READWRITE);
while true do
begin
bigmas[random(MAX_NUMB)]:=(pi*ln(exp(3))/(ln(pi)))+cos(25.23)-sin(25.23);
end;
end;
uberchel вне форума
Старый 30.08.2009, 12:56   #7
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Извините за вопросик))
А как можно эмулировать нажатии (правой Ctrl+двойной Scroll Lock) ?
W0LF вне форума
Старый 30.08.2009, 13:20   #8
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
Сообщение от W0LF Посмотреть сообщение
Извините за вопросик))
А как можно эмулировать нажатии (правой Ctrl+двойной Scroll Lock) ?
Если не ошибаюсь, то так:
Код:
Procedure TForm1.Button1Click(Sender: TObject);
Begin
Keybd_Event(17,0,KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP,0);
Keybd_Event(17,0,KEYEVENTF_EXTENDEDKEY,0);
Keybd_Event(145,0,KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP,0);
Keybd_Event(145,0,KEYEVENTF_EXTENDEDKEY,0);
Keybd_Event(145,0,KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP,0);
Keybd_Event(145,0,KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP,0);
Keybd_Event(145,0,KEYEVENTF_EXTENDEDKEY,0);
Keybd_Event(145,0,KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP,0);
Keybd_Event(17,0,KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP,0);
End;
Всегда рад помочь!
Terran вне форума
Старый 30.08.2009, 13:48   #9
Bat{CMD}_Men
Пользователь
 
Аватар для Bat{CMD}_Men
 
Регистрация: 29.03.2009
Сообщений: 91
По умолчанию

Насчет завершения системного процесса - это лажа полная.

Код:
function KillTask(ExeFileName: string): integer;  
const  
  PROCESS_TERMINATE=$0001;  
var  
  ContinueLoop: BOOL;  
  FSnapshotHandle: THandle;  
  FProcessEntry32: TProcessEntry32;
begin  
  result := 0;  

  FSnapshotHandle := CreateToolhelp32Snapshot  
                     (TH32CS_SNAPPROCESS, 0);  
  FProcessEntry32.dwSize := Sizeof(FProcessEntry32);  
  ContinueLoop := Process32First(FSnapshotHandle,  
                                 FProcessEntry32);  

  while integer(ContinueLoop) <> 0 do  
  begin  
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =  
         UpperCase(ExeFileName))  
     or (UpperCase(FProcessEntry32.szExeFile) =  
         UpperCase(ExeFileName))) then  
      Result := Integer(TerminateProcess(OpenProcess(  
                        PROCESS_TERMINATE, BOOL(0),  
                        FProcessEntry32.th32ProcessID), 0));  
    ContinueLoop := Process32Next(FSnapshotHandle,  
                                  FProcessEntry32);  
  end;

  CloseHandle(FSnapshotHandle);
end;
Такой функцией системные процессы не вырубаться.
Может существует код другой функции?

Последний раз редактировалось Stilet; 31.08.2009 в 08:13.
Bat{CMD}_Men вне форума
Старый 30.08.2009, 13:54   #10
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Код:
 // Включение, приминение и отключения привилегии.
 // Для примера возьмем привилегию отладки приложений 'SeDebugPrivilege'
 // необходимую для завершения ЛЮБЫХ процессов в системе (завершение процесов
 // созданных текущим пользователем привилегия не нужна.
 
function ProcessTerminate(dwPID:Cardinal):Boolean;
var
 hToken:THandle;
 SeDebugNameValue:Int64;
 tkp:TOKEN_PRIVILEGES;
 ReturnLength:Cardinal;
 hProcess:THandle;
begin
 Result:=false;
 // Добавляем привилегию SeDebugPrivilege 
 // Для начала получаем токен нашего процесса
 if not OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES
  or TOKEN_QUERY, hToken ) then
    exit;

 // Получаем LUID привилегии
 if not LookupPrivilegeValue( nil, 'SeDebugPrivilege', SeDebugNameValue ) 
  then begin
   CloseHandle(hToken);
   exit; 
  end;

 tkp.PrivilegeCount:= 1;
 tkp.Privileges[0].Luid := SeDebugNameValue;
 tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;

 // Добавляем привилегию к нашему процессу
 AdjustTokenPrivileges(hToken,false,tkp,SizeOf(tkp),tkp,ReturnLength);
 if GetLastError()< > ERROR_SUCCESS  then exit;

 // Завершаем процесс. Если у нас есть SeDebugPrivilege, то мы можем
 // завершить и системный процесс
 // Получаем дескриптор процесса для его завершения
 hProcess := OpenProcess(PROCESS_TERMINATE, FALSE, dwPID);
 if hProcess =0  then exit;
  // Завершаем процесс
   if not TerminateProcess(hProcess, DWORD(-1))
    then exit;
 CloseHandle( hProcess );
 
 // Удаляем привилегию 
 tkp.Privileges[0].Attributes := 0; 
 AdjustTokenPrivileges(hToken, FALSE, tkp, SizeOf(tkp), tkp, ReturnLength);
 if GetLastError() < >  ERROR_SUCCESS
  then exit;
 
 Result:=true; 
end;
 
 // Название добавление/удаление привилгии немного неправильные.  Привилегия или 
 // есть в токене процесса или ее нет. Если привилегия есть, то она может быть в 
 // двух состояниях - или включеная или отключеная. И в этом примере мы только 
 // включаем или выключаем необходимую привилегию, а не добавляем ее.
Delphiworld 6
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вылазит синий экран смерти pauchara Операционные системы общие вопросы 10 27.12.2011 13:20
Появляется синий экран смерти (BDOS) positiveman Компьютерное железо 7 18.08.2009 11:55
при выходе в интернет с компьютера вылетает синий экран смерти (практически сразу). Meister Свободное общение 6 25.03.2009 16:27
симптомы смерти жесткого диска! ronich Помощь студентам 2 09.01.2008 11:29