Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.10.2011, 20:50
tred tred вне форума
Прохожий
 
Регистрация: 06.01.2011
Сообщения: 7
Репутация: 10
По умолчанию функция SendInput

Здравствуйте , приведите пожалуста рабочий пример функции SendInput
с комментариями .
Заранее благодарю.
Ответить с цитированием
  #2  
Старый 23.10.2011, 21:38
t116 t116 вне форума
Новичок
 
Регистрация: 29.06.2011
Адрес: Луганск
Сообщения: 92
Версия Delphi: Delphi7
Репутация: выкл
Сообщение

Цитата:
Здравствуйте , приведите пожалуста рабочий пример функции SendInput
с комментариями .
Заранее благодарю.
Дааа , думал только я деревянный http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx

Последний раз редактировалось t116, 23.10.2011 в 21:41.
Ответить с цитированием
  #3  
Старый 23.10.2011, 21:42
tred tred вне форума
Прохожий
 
Регистрация: 06.01.2011
Сообщения: 7
Репутация: 10
По умолчанию

да благодарю в рунете каждый на буржуйском читает каже я забыл то
Ответить с цитированием
  #4  
Старый 23.10.2011, 21:44
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Как же я забыл-то, что не все знают про существование такого сервиса в сети, как перевод.
http://translate.google.com
http://translate.yandex.ru
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 23.10.2011 в 21:47.
Ответить с цитированием
  #5  
Старый 23.10.2011, 21:48
tred tred вне форума
Прохожий
 
Регистрация: 06.01.2011
Сообщения: 7
Репутация: 10
По умолчанию

а вы им пользовались )) я без программного перевода больше пойму на английском )) хотябы интуитивно
Ответить с цитированием
  #6  
Старый 23.10.2011, 21:49
t116 t116 вне форума
Новичок
 
Регистрация: 29.06.2011
Адрес: Луганск
Сообщения: 92
Версия Delphi: Delphi7
Репутация: выкл
По умолчанию

Так в чем проблема?
Ответить с цитированием
  #7  
Старый 23.10.2011, 21:51
tred tred вне форума
Прохожий
 
Регистрация: 06.01.2011
Сообщения: 7
Репутация: 10
По умолчанию

мне не интуитивно надо знать а фактически , в этом и проблема и потому я обратился сюда за помощью
ладно попробую перевести на великий могучий ))
и сразуже прикол ))
"Синтезирует нажатия клавиш и движений мыши и кнопки нажимает."

Последний раз редактировалось tred, 23.10.2011 в 21:56.
Ответить с цитированием
  #8  
Старый 23.10.2011, 21:56
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от tred
а вы им пользовались ))...
Начинается флуд, но всё же отвечу: "Очень часто, так как английский не изучал."
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #9  
Старый 23.10.2011, 21:57
t116 t116 вне форума
Новичок
 
Регистрация: 29.06.2011
Адрес: Луганск
Сообщения: 92
Версия Delphi: Delphi7
Репутация: выкл
По умолчанию

http://vsokovikov.narod.ru/New_MSDN_..._sendinput.htm
Ответить с цитированием
  #10  
Старый 23.10.2011, 21:59
t116 t116 вне форума
Новичок
 
Регистрация: 29.06.2011
Адрес: Луганск
Сообщения: 92
Версия Delphi: Delphi7
Репутация: выкл
По умолчанию

Цитата:
Сообщение от tred
"Синтезирует нажатия клавиш и движений мыши и кнопки нажимает."
Функция SendInput синтезирует нажатия клавиши, движения и щелчки кнопкой мыши.
Ответить с цитированием
  #11  
Старый 23.10.2011, 22:06
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Если бы ТС умел пользоваться поиском, ему не составило бы труда найти примеры в сети:
http://tripsin.narod.ru/articles/mou..._imitation.htm
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #12  
Старый 23.10.2011, 22:14
tred tred вне форума
Прохожий
 
Регистрация: 06.01.2011
Сообщения: 7
Репутация: 10
По умолчанию

Код:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, jpeg, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    Image1: TImage;
      Label1: TLabel;
        Label2: TLabel;
          Label3: TLabel;
    procedure FormCreate(Sender: TObject);
      procedure TimePause(dwMilliseconds: Longint);
        procedure emKeyPress1(var str: string);
  private
    { Private declarations }
    procedure WM_HotKeyHandler (var Message: TMessage);
      message WM_HOTKEY;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
    keyid: integer;
      keyid1: integer;
        iStart: DWORD;
          iStop: DWORD;
            flag: integer=0;
              inp: TInput;
implementation

{$R *.dfm}
//////////////////////////////////////////////////////////////////
procedure TForm1.WM_HotKeyHandler (var Message: TMessage);
  var
    idHotKey: integer; //идентификатор, но об этом - позже
      fuModifiers: word; //модификатор MOD_XX
        uVirtKey: word; //код виртуальной клавиши VK_XX
begin
  // параметры сообщения получаем так:
  idHotkey:= Message.wParam;
    fuModifiers:= LOWORD(Message.lParam);
      uVirtKey:= HIWORD(Message.lParam);

  //теперь - небольшая проверочка:
  if (fuModifiers = MOD_ALT) AND (uVirtKey = VK_NUMPAD1) then
  begin
    repeat
      TimePause(3000);
       emKeyPress1('1');  //  вот тут выделяется  тут ошибка
              TimePause(250);
                keybd_event(Ord('2'), 0, KEYEVENTF_EXTENDEDKEY, 0);
                  TimePause(100);
                    keybd_event(Ord('2'), 0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
    until flag<>0;
     UnregisterHotKey(handle, keyid);
        GlobalDeleteAtom(keyid);
          UnregisterHotKey(handle, keyid1);
            GlobalDeleteAtom(keyid1);
              Form1.Close();
  end
  else if (fuModifiers = MOD_ALT) AND (uVirtKey = VK_NUMPAD9) then
    flag:=1;
  inherited;
end;
//////////////////////////////////////////////////////////////////
// процедура  создания горячих клавиш при создании формы
procedure TForm1.FormCreate(Sender: TObject);
begin
  keyid:=GlobalAddAtom('My Hotkey'); //создаем атом
  keyid1:=GlobalAddAtom('My Hotkey1');
    RegisterHotKey(handle,// сообщение о HotKey будет получать форма
      keyid, // регистрируем атом как id
        MOD_ALT,// модификатор у нас - клавиша Alt
          VK_NUMPAD1); // вирт. клавиша - F10

    RegisterHotKey(handle,// сообщение о HotKey будет получать форма
      keyid1, // регистрируем атом как id
        MOD_ALT,// модификатор у нас - клавиша Alt
          VK_NUMPAD9); // вирт. клавиша - F10

end;
//////////////////////////////////////////////////////////////////
//         процедура типа таймер задержки
procedure TForm1.TimePause(dwMilliseconds: Longint);
begin
  iStart := GetTickCount;
  repeat
    iStop := GetTickCount;
      Application.ProcessMessages;
  until (iStop - iStart) >= DWORD(dwMilliseconds);
end;
//////////////////////////////////////////////////////////////////
procedure TForm1.emKeyPress1(var str: string);
begin
  inp.Itype:=INPUT_KEYBOARD;
    inp.ki.wVk:=Ord('31')
      inp.ki.dwFlags:=0;
        SendInput(31, inp, SizeOf(inp));
  inp.Itype:=INPUT_KEYBOARD;
    inp.ki.wVk:=Ord('31')
      inp.ki.dwFlags:=KEYEVENTF_KEYUP;
        SendInput(31, inp, SizeOf(inp));
end;


end.

чтото не работает вот какие ошибки выдаёт

Build
[Error] Main.pas(54): Types of actual and formal var parameters must be identical
[Error] Main.pas(101): Incompatible types
[Error] Main.pas(102): Missing operator or semicolon
[Error] Main.pas(105): Incompatible types
[Error] Main.pas(106): Missing operator or semicolon
[Fatal Error] ArenaOnline.dpr(5): Could not compile used unit '..\timer2\Main.pas'

Последний раз редактировалось tred, 23.10.2011 в 23:03.
Ответить с цитированием
  #13  
Старый 24.10.2011, 21:27
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

1. Ожидается параметр типа переменная - передаётся непосредственное значение.
2. Функция ord, применима для цифр (для одинарных типов), но не для чисел. Разницу улавливаешь?
3. Нет запятой в конце вышеуказанной строки.
4. Повтор пункта 2.
5. Повтор пункта 3.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 24.10.2011 в 21:31.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:03.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter