Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Не работает WM_DEVICECHANGE.


Автор: Так, мимо проходил 30.11.2003, 11:03
Не хочет работать WM_DEVICECHANGE. При открытии или закрытии CD-ROM ничего не происходит. Помогите!

Код
function WindowProc(hWnd: THandle; uMsg, wParam, lParam: Integer): Integer;
 stdcall; export;
begin
Result := 0;
 //Сообщения от меню
   case uMsg of
    WM_COMMAND:
     case wParam of
      ID_CLOSE:        PostMessage(hWnd, WM_DESTROY, 0, 0);
     end;

  WM_DEVICECHANGE: MessageBox(hwnd, 'Ура! Получилось.', '', 0);

   // Остальные сообщения Windows
   WM_DESTROY:PostQuitMessage(0);
end;
end;

begin
FillChar(WndClass, SizeOf(WndClass), 0);
 with WndClass do begin
  hInstance      := SysInit.hInstance;
  lpszClassName  := 'sMyWindow';
  lpfnWndProc    := @WindowProc;
 end;
  RegisterClass(WndClass);
  hWnd := CreateWindow('sMyWindow', '', 0, 0, 0, 0, 0, 0, 0, hInstance, NIL);
 if hWnd = 0 then begin
  if MessageBox(hwnd,'Ошибка инициализации !', '',
   MB_ICONERROR or MB_OK or MB_TASKMODAL) = ID_OK then Exit;
 end;
 //Скрываем окно
 ShowWindow(hWnd, SW_HIDE);

//Цикл обработки сообщений
repeat
 waitMessage;
  while GetMessage(Msg, 0, 0, 0) do begin
   TranslateMessage(Msg);
   DispatchMessage(Msg);
    if msg.message = WM_HOTKEY then
     case msg.wParam of
      ID_HOTKEY_OPENTIME: MessageBox(hwnd, 'HOTKEY', '', MB_OK);
     end;
  end;
until FALSE;

end.


Автор: stab 30.11.2003, 15:14
а если убрать
Код
//Скрываем окно
ShowWindow(hWnd, SW_HIDE);


то как тогда?

Автор: Так, мимо проходил 30.11.2003, 18:30
Это пофиг, окно скрыто, а не закрыто.

Автор: stab 30.11.2003, 20:08
а ты пробовал?

Автор: Так, мимо проходил 3.12.2003, 16:38
Конечно!

Автор: stab 4.12.2003, 14:32
я вот на код смотрю и думаю, что с таким кодом окно не создастся... может код не полный?

Автор: Так, мимо проходил 4.12.2003, 15:10
Не полный!

Автор: stab 4.12.2003, 15:11
ну, так выложи код, где хотя бы окно создается smile.gif там будем думать

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)