即使窗口隐藏在托盘中也可以使用热键。德尔福可以吗?
我需要将表单隐藏到系统托盘中,但同时我想使用热键,例如“ctrl+3”,从隐藏表单上的 tEdit 获取文本,并将其插入到 Firefox SendText(edit1.Text); // 在这样的方法中'.我知道如何插入文本,但我对热键一无所知/有什么建议吗?谢谢。下面插入文本的代码
procedure SendText(const Value: WideString);
var
I: Integer;
S: WideString;
TI: TInput;
KI: TKeybdInput;
const
KEYEVENTF_UNICODE = $0004;
begin
S := WideUpperCase(Value);
TI.Itype := INPUT_KEYBOARD;
for I := 1 to Length(S) do
begin
KI.wVk := 0;
KI.dwFlags := KEYEVENTF_UNICODE;
KI.wScan := Ord(S[I]);
TI.ki := KI;
SendInput(1, TI, SizeOf(TI));
end;
end;
I need to hide a form to the system tray, but in the same time I want to use hotkey, such a "ctrl+3" to get text from tEdit on my hiden form being inserted to Firefox SendText(edit1.Text); // in such method'. I know how to insert text, but i don't know anything about hotkeys/ Any suggestions? Thank you. Code of text inserting below
procedure SendText(const Value: WideString);
var
I: Integer;
S: WideString;
TI: TInput;
KI: TKeybdInput;
const
KEYEVENTF_UNICODE = $0004;
begin
S := WideUpperCase(Value);
TI.Itype := INPUT_KEYBOARD;
for I := 1 to Length(S) do
begin
KI.wVk := 0;
KI.dwFlags := KEYEVENTF_UNICODE;
KI.wScan := Ord(S[I]);
TI.ki := KI;
SendInput(1, TI, SizeOf(TI));
end;
end;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
要注册系统范围的热键,您必须使用
RegisterHotKey
和UnRegisterHotKey
< /a> 函数。检查此示例
只需小心您选择的组合键,因为可以在其他应用程序内部使用。例如,Firefox 使用组合 Ctrl Number 来切换选项卡。
To Register a system wide hotkey you must use the
RegisterHotKey
andUnRegisterHotKey
functions.Check this sample
Just be carefull about the key combination which you choose, because can be used internally for another app. for example the combination Ctrl Number is used by Firefox to switch the tabs.