Главная страница
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.028 c
2-1142168978
Golik
2006-03-12 16:09
2006.03.26
Как указать путь к БД ????


2-1142247358
mrAndersen
2006-03-13 13:55
2006.03.26
Как написать свой декодер для GIF формата?


4-1135935445
oleggar
2005-12-30 12:37
2006.03.26
file monitoring


1-1140416878
V.exeR
2006-02-20 09:27
2006.03.26
Корзина (Recycled)


3-1138809212
-Вася-
2006-02-01 18:53
2006.03.26
Установка SQL Server 2000