Привет. Написал программку для посылки в текстовый редактор нажатий клавиш, чтобы сделать удобные макросы. Днлаю через RegisterHotKey и потом вот такой п/п, как в конце (к сож., на Дельфи). Не получается посылать коды русских букв и стрелок курсора, хотя в текстовом редакторе стоит русская расклатка. Подскажите, что надо посылать ему в этом случае? Код (Text): procedure PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean); type TShiftKeyInfo = record shift: Byte; vkey: Byte; end; byteset = set of 0..7; const shiftkeys: array[1..3] of TShiftKeyInfo = ((shift: Ord(ssCtrl); vkey: VK_CONTROL), (shift: Ord(ssShift); vkey: VK_SHIFT), (shift: Ord(ssAlt); vkey: VK_MENU)); var flag: DWORD; bShift: ByteSet absolute shift; i: Integer; begin for i:=1 to 3 do if shiftkeys[i].shift in bShift then keybd_event(shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0), 0, 0); if specialkey then flag:=KEYEVENTF_EXTENDEDKEY else flag:=0; keybd_event(key, MapvirtualKey(key, 0), flag, 0); flag:=flag or KEYEVENTF_KEYUP; keybd_event(key, MapvirtualKey(key, 0), flag, 0); for i:=3 downto 1 do if shiftkeys[i].shift in bShift then keybd_event(shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0), KEYEVENTF_KEYUP, 0); end; {PostKeyEx32}
Хотелось бы уметь делать как в type pilot: http://www.colorpilot.ru/typepilot.html В её окне выбираешь нужную фразу, щёлкаешь, и фраза появляется в позиции курсора в окне редактора, которое перед этим имело фокус ввода. Причём, это не зависит от раскладки клавиатуры в редакторе. В этой программке не удобно то, что каждый раз при вставке фразы она сворачивается в трей.