Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.26;
Скачать: CL | DM;

Вниз

Имитация нажатия клавиш keybd_event().   Найти похожие ветки 

 
Medved ©   (2006-01-03 18:55) [0]

На форме 2 edit`a и 1 button. При нажатии на button текст из edit1 должен скопироваться в edit2. Но для строки в edit1

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

получается результат

abcdefghijklmnopqrstuvwxyz123456789*+-./123456789

Может быть, кто разбирался в этом и подскажет, где ошибка?


unit main2;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, XPMan, StdCtrls;

type
 TForm2 = class(TForm)
   Edit1: TEdit;
   XPManifest1: TXPManifest;
   Edit2: TEdit;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form2: TForm2;

implementation

{$R *.dfm}

 procedure TForm2.Button1Click(Sender: TObject);
   var
     s: string;
     i: integer;
     key: byte;
 begin
   s := Edit1.Text;
   Edit2.SetFocus;
   for i:=1 to Length(s) do
     begin
       key := Ord(s[i]);
       keybd_event(key, MapVirtualKey(key, 0), 0, 0);
       keybd_event(key, MapVirtualKey(key, 0), KEYEVENTF_KEYUP, 0);
     end;
 end;

end.


 
SpyBoy ©   (2006-01-04 02:04) [1]

Может я не догоняю, ...э..э ..а бачему нельзя просто :
edit2.text:=edit1.text;
Хотя , конечно, на вкус и цвет....


 
Medved ©   (2006-01-04 13:32) [2]

2 SpyBoy ©   (04.01.06 02:04) [1]


> бачему нельзя просто


Проблема не в том, чтобы скопировать содержание Edit`a, а в том, что функция keybd_event работает не так, как надо (либо я ее использую не так, как надо). А код - просто для примера. Неужели никто не разбирался с keybd_event???


 
umbra ©   (2006-01-04 15:28) [3]

чтобы получить "А" надо нажать 2 кнопки - шифт и "а"


 
Medved ©   (2006-01-09 10:53) [4]

2 umbra ©   (04.01.06 15:28) [3]
Спасибо. Получается, что надо нажать "A", чтобы получить "a", SHIFT+"A", чтобы получить "A" и т.д.


 
kami ©   (2006-01-09 11:58) [5]

Интересно, а почему MSDN пишет, что параметр bScan в keybd_event не используется?
Или так оно и есть?


 
ANB ©   (2006-01-10 17:30) [6]


> Medved ©   (09.01.06 10:53) [4]

Еще и раскладку надо переключать. А также делать окно приемник ForeGround.



Страницы: 1 вся ветка

Текущий архив: 2006.03.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
2-1141716984
Ivolg
2006-03-07 10:36
2006.03.26
Чтение из потока...


15-1140689075
mrRocky
2006-02-23 13:04
2006.03.26
Ищу обновленную библиотеку типа TICQClient


4-1136275749
Arazel
2006-01-03 11:09
2006.03.26
Как присвойть лог. диску другую букву?


1-1140432435
SergProger
2006-02-20 13:47
2006.03.26
Иконка нестандартного размера


2-1141838875
Adios
2006-03-08 20:27
2006.03.26
Проблема с процедурой