Форум: "WinAPI";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
ВнизИмитация нажатия клавиш 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.041 c