全局热键设置文本框值

时间:2014-06-16 03:30:52

标签: c# clipboard sendkeys

目前我有全局热键设置将文本框的内容粘贴到当前活动表单(浏览器)中。这些工作完全正常( CTRL + 0 - 9 ),但是我试图通过设置文本来反过来来自外部值的框值。最初我觉得这很容易,因为他们是全球热门我只是突出我想要的东西,然后按热键( ALT + 0 - 9 )它会发送SendKeys.Send(" ^ c"),然后设置TextBox.Text = Clipboard.GetText(),但这不会表现为期望并从我的代码/过去的剪贴板条目中返回看似随机的值。

我环顾四周,发现了各种不起作用的东西。重要的是要注意我将始终从当前活动窗口调用此全局热键,因此我不需要查找/设置活动窗口,只需发送 ctrl + C 命令并让它可靠地执行它。

感谢任何帮助,谢谢。

RegisterHotKey(Handle, 12, 0x0001, (int) Keys.D1);

case (12):
if (x.Text == "" || x.Text == @"YYYYYY")
{
    //Window is in Focus and the text is already highlighted
    SendKeys.SendWait("^c");
    x.Text = Clipboard.GetText();                          
}
return;

奖励积分,我可以在做任何事情之前扩展剪贴板类以返回选择的计数吗?

编辑:

我尝试发送WM_COPY:

[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int wMsg, IntPtr wParam, IntPtr lParam);

case (12):
if (x.Text == "" || x.Text == @"YYYYYY")
{
    //Window is in Focus and the text is already highlighted
    SendMessage(m.HWnd, 0x0301, (IntPtr)0, (IntPtr)0);
    x.Text = Clipboard.GetText();                          
}
return;

0 个答案:

没有答案