• Поиск по форумам
  •  
      Этот форум закрыт. Новый форум располагается по адресу http://forum.use.ru  

      Nordnet Форум
      Программирование
      Delphi_Help
     
    Страницы: 1
    Автор Тема:  Delphi_Help
    Go_Men 

    регистрация: 03-10-2006 в 10:48
    сообщений: 3

    отправлено 03-10-2006 10:51    
    Привет я тут новенький, а форум мне прорекламмировали друзья помогите пожалуйста.
    Вообщем проблемка такова очень хочеться сделать прогу для на..бывания программы по
    слепой печати. В технаре просто парюсь на этом уроке,а потому хочу состряпать прогу
    которая в независимости от того чего нажал чел считала это нажатие правильным.
    Короче почти все сделал осталось только понять
    как словить нажатие на клаву раньше Винды
    и иниациировать нажатек кнопы с определенным кодом.


    P.S. Полностью согласен с Force о том что Delphi фигня да еще и с глюками, но жизнь заставляет
    работать на нем, а вернее глупая система образования в Технаре.
    Force 

    регистрация: 06-12-2001 в 00:09
    сообщений: 20128

    отправлено 03-10-2006 23:04    
    Вешайся на клавиатурный хук (SetWindowHookEx) и там все делай. Если же требуется обычное абстрактное нажание, то вызывай keybd_event с нужными параметрами.
    Разжевывать все не буду, есть в документации, я только указал направление, куда копать.
    Шпион 

    регистрация: 04-04-2005 в 23:30
    сообщений: 1928

    отправлено 04-10-2006 10:50    
    Создавай dll - обязательно!
    И еще, я бы тебе свою работающую ловушку послал бы, но здесь нельзя файлы передавать... Так что, создай лучше тему на форуме, ссылка к-го справа вверху, я там выложу исходники... Как-то в свое время над эти парился..

    Ну вот, как пример:

    function Key_HookKey(code: integer; wParam: integer; lParam: integer): integer stdcall;
    begin
    
     if code >= 0 then
     begin
    
      if (wParam =/твое условие, например ord('x')/)
       then begin
        Result := 1;
        /Условие, которое должно выполняться при совпадении параметра/
    
       end
      else Result:=0;
     end
     else
    
       Result := CallNextHookEx(HKey, Code, wParam, lParam);
    end;
    
    procedure StartKey;
    
    begin
     HKey := SetWindowsHookEx(WH_KEYBOARD, @Key_HookKey, hInstance, 0);
     if HKey = 0 then
       MessageBox(0, 'Ловушка не установилась!', 'Не порядок!', mb_Ok);
    end;
    
    begin
      SaveExitProc := ExitProc;
      ExitProc := @RemoveAllHooks;
    
    exports
     StartKey,
    
    </pre>
    
    А теперь в юните:
    
    <pre>
    
    procedure StartKey; external 'твой длл';
    
    


    Вообщем, направление я указал..:)
    Force 

    регистрация: 06-12-2001 в 00:09
    сообщений: 20128

    отправлено 04-10-2006 22:25    
    2 Шпион:
    Можно и без dll, только событие другое нужно.
    Go_Men 

    регистрация: 03-10-2006 в 10:48
    сообщений: 3

    отправлено 04-10-2006 22:34    
    Спасибо большое всем за помощь, а то вообще так заманало печатаньем в слепую заниматься, такое чувство что учишься на Секретаршу какую-то

    Шпион если отошлешь мне этот Dll буду очень благодарен тебе.
    www.servis-ru@mail.ru

     
    Сообщение было изменено автором 04-10-2006 в 22:37
    Шпион 

    регистрация: 04-04-2005 в 23:30
    сообщений: 1928

    отправлено 05-10-2006 08:08    
    Хук должен всегда присутствовать в системе, так что, если таким образом, то только dll .. Я пробовал без - не получилось(кстати, даже вопрос такой около 1.5 года назад был у меня, и остался без ответа...:)

    А событие, в смысле не хук на клаву и мышь? Тогда мэй би, мэй би..
    Decker 

    регистрация: 09-08-2004 в 15:13
    сообщений: 1403

    отправлено 05-10-2006 10:46    
    зря ты так про секретаршу, я вот не умею вслепую печатать, печатаю, конечно, быстро, но не так как это было бы вслепую, а вот попробуй терь переучись :(
    Force 

    регистрация: 06-12-2001 в 00:09
    сообщений: 20128

    отправлено 05-10-2006 10:48    
    2 Шпион:
    Ты наверное ставил WH_KEYBOARD, а надо
    WH_KEYBOARD_LL
    Windows NT/2000/XP: Installs a hook procedure that monitors low-level keyboard input events.
    Тоже самое с мышкой.

    С ним есть единственная проблема - если у тебя приложение будет тормозить - то сливай воду ;) Клава и мышка будут еле двигаться.
    Шпион 

    регистрация: 04-04-2005 в 23:30
    сообщений: 1928

    отправлено 05-10-2006 11:57    
    Шпион 

    регистрация: 04-04-2005 в 23:30
    сообщений: 1928

    отправлено 05-10-2006 20:14    
    Отослал...
    Страницы: 1