procedure TForm1.Button1Click(Sender: TObject); var KeyData : packed record RepeatCount : word; ScanCode : byte; Bits : byte; end; begin {Let the button repaint} Application.ProcessMessages; {Set the focus to the window} Edit1.SetFocus; {Send a right so the char is added to the end of the line} // SimulateKeyStroke(VK_RIGHT, 0); keybd_event(VK_RIGHT, 0,0,0); {Let the app get the message} Application.ProcessMessages;
FillChar(KeyData, sizeof(KeyData), #0); KeyData.ScanCode := 255; KeyData
.RepeatCount := 1; SendMessage(Edit1.Handle, WM_KEYDOWN, 255,LongInt(KeyData)); KeyData.Bits := KeyData.Bits or (1 shl 30); KeyData.Bits := KeyData.Bits or (1 shl 31); SendMessage(Edit1.Handle, WM_KEYUP, 255, LongInt(KeyData)); KeyData.Bits := KeyData.Bits and not (1 shl 30); KeyData.Bits := KeyData.Bits and not (1 shl 31); SendMessage(Edit1.Handle, WM_CHAR, 255, LongInt(KeyData)); Application.ProcessMessages; end;
Комментарий от "Aleksey Moiseev" (moiseev@samara-gsm.ru)
Этот способ не годится, если нельзя получить handle у Edit-а, в который надо послать сообщение, что бывает, когда вводишь символы в чужую программу.
Для передачи русских символов в keybd_event, например, того
же 'я', надо сначала переключить раскладку клавиатуры на русский, а затем вызвать key
bd_event, передав ему scan-код символа. Для переключения!
расклад
ки в чужой программе можно делать так:
var rus,curKey,progKey: HKL; hwProg,progId : THandle; begin // получить handle окна чужой программы hwProg := findWindow('<класс окна>','<заголовок окна>'); // Получить идентификатор чужого процесса progId := GetWindowThreadProcessId(HwProg,nil); SetForegroundWindow(hwProg); SetActiveWindow(hwProg); // Получить ссылку на русскую раскладку rus:=LoadKeyboardLayout('00000419', 0); // Переключить раскладку на русскую ActivateKeyboardLayout(rus,KLF_ACTIVATE); curKey := GetKeyboardLayout(0); // Получить текущую раскладку // Получить текущую раскладку в чужой программе progKey :=
GetKeyboardLayout(progId); // переключить раскладку в hwProgif progKey <> curKey thenbegin sendMessage(hwProg,WM_INPUTLANGCHANGEREQUEST,1,curKey); Application.processMessages; // можно вставить задержку, что-нибудь типа delay(1000) из rxlib end;
keybd_event(lo(VkKeyScan('я')),0,0,0); // Ввести символ, например, 'я'
// Таким же образом переключить раскладку обратно ... end;
Обработка звука!!!
Проблема такая, нужно получить изображение звуковой волны (ну как в Winamp-e аквалайзер), каким принципом пользоваться? ...
И опять com порт
Есть TV tuner с ним в комплекте ДУ пульт, кот. подключается через COM порт...каким образом можно получить сигнал с ...
Форма "прозрачная" для кликов
Хочется, что бы форма под Win2K и XP была не только полупрозрачной, но и "Прозрачной" для кликов мышкой. Можно ли это ...
Определяю IP
Определяю IP в локальной сети по имени компа: const WINSOCK_VERSION = $0101; function GetIPAddress(name: string): ...
Игруху выставил
http://www.monolife.fatal.ru/bigpuzzle.zip В деле разработок программ и игр на Delphi я являюсь новичком. Поэтому не ...
TWebBrowser
TWebBrowser как запретить отключение в нем картинок и Flash. Спасибо заранее за ответы.
Hooks - аспекты реализации
Что же происходит в системе когда мы "ставим" ловушку и что это вообще такое - ловушка ? Ловушка (hook) - это механизм Windows, позволяющий перехватывать события, предназначенные некоторому приложению, до того как эти события до этого приложения дойдут. Функции-фильтры - это функции, получающие уведомления о произошедшем событии от ловушки. В зависимости от типа ловушки функции-фильтры могут изменять события, отменять их или просто реагировать на них...
Технология разработки программного обеспечения
Книга является классическим руководством по технологии разработки программного обеспечения. В ней рассматриваются основные этапы процесса разработки программного продукта, включая его описание, проектирование, собственно разработку, интеграцию и тестирование частей, тестирование программы в целом и сопровождение. Каждый из этапов подробно иллюстрируется на конкретных примерах. Отдельные главы посвящены определению типа процесса разработки и управлению проектом. Материал сопровождается упражнениями для закрепления теоретических знаний. Предназначена для студентов и аспирантов, специализирующихся в области программного обеспечения, а также для профессиональных разработчиков.
Автор: Брауде Э. Д.
Хокку дня
О, как печально звучат под окном Три ненастоенных сямисэна Пьяные гейши достали...
Афоризмы
Где хорошо, там и... тоска по родине.
Фраза дня
Кто с чем к нам зачем, тот от того и - того! (А. Невский)
Дурацкие законы (информация предоставлена сайтом kurilka.com)
В Австралии запрещено составлять и читать гороскопы, а также заниматься гаданиями во всех видах. Закон считает это преступным колдовством.
В провинции Виктория на пляж Брайтон Бич можно купаться только в купальнике, который закрывает тело от горла до колен
И на закуску коротенький анекдот
Я долго думал, что такое 90х60х90. Оказалось, что это 486 000.