Главная страница
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.047 c
15-1140181613
roottim
2006-02-17 16:06
2006.03.26
gmail


2-1142226931
Rubey
2006-03-13 08:15
2006.03.26
Текущая строка в STRINGGRID


3-1138806707
Serg2103
2006-02-01 18:11
2006.03.26
SCOPE_IDENTITY() не всегда корректно выполняется


2-1142324933
dabreezy
2006-03-14 11:28
2006.03.26
Опять вопрос по потокам


2-1142294469
Wood
2006-03-14 03:01
2006.03.26
Файл или каталог.