Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
15-1141227035
Pazitron_Brain
2006-03-01 18:30
2006.03.26
Покритикуйте страницу


2-1142343735
ЧиЧиЧи
2006-03-14 16:42
2006.03.26
Запихнуть что-нить в ехе


2-1141888762
YDS
2006-03-09 10:19
2006.03.26
ClsID программы


2-1142195886
kilop
2006-03-12 23:38
2006.03.26
Как приостановить процесс работы проги?


2-1142278839
*<ATAS>*SHERIFF
2006-03-13 22:40
2006.03.26
ClientSocket





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский