На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! user posted image
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.

Соблюдайте общие правила форума

Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как запустить программу/файл? (и дождаться ее завершения)
5. Как перехватить API-функции, поставить hook? (перехват сообщений от мыши, клавиатуры - внедрение в удаленное адресное прстранство)
... (продолжение следует) ...

Внимание:
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки - бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Rouse_, user posted image Krid

Модераторы: Rouse_, Krid
  
> Не работает WM_DEVICECHANGE.
    Не хочет работать 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.


      case Msg of
      WM_DEVICECHANGE:
        begin
         if wParam=32772 then MessageBox(hWnd,'CD','Open',0);
         if wParam=32768 then MessageBox(hWnd,'CD','Closed',0);
       end;
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0251 ]   [ 16 queries used ]   [ Generated: 27.04.24, 10:42 GMT ]