Главная страница
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
2-1142238684
Stanislav
2006-03-13 11:31
2006.03.26
Сохранение строки в Юникоде


2-1141663768
Arazel
2006-03-06 19:49
2006.03.26
IDAPI: Как вставить новую запись? С Автоинкрементом?


15-1141385636
Rule
2006-03-03 14:33
2006.03.26
Как расшарить СОМ-порт по сети


1-1140344181
s&r
2006-02-19 13:16
2006.03.26
[?]Отправка символа RichEdit


2-1141897963
DelphiN!
2006-03-09 12:52
2006.03.26
Перевод массива ASCLL кодов в их символьное представление