我编写了一个程序,它使用全局热键来存储用户拖动的文本,并在按下 crtl + shift + w <时读取文本/ KBD>。 但是当拖动的文本在其他应用程序(如firefox,adobe reader等)中时,该程序不起作用。 这里我的代码在挂钩键的方法中:
void hook_KeyPressed(object sender, KeyPressedEventArgs e)
{
//System.Threading.Thread th;
string backup = Clipboard.GetText();
SpeechSynthesizer speaker = new SpeechSynthesizer();
speaker.SetOutputToDefaultAudioDevice();
string text = null;
SendKeys.SendWait("^{c}");
text = Clipboard.GetText();
//IDataObject format= Clipboard.GetDataObject();
// string[] str = format.GetFormats();
// MessageBox.Show(str[0]);
MessageBox.Show(text);
Clipboard.SetText(backup);
speaker.Speak(text);
}
它的作用是将剪贴板的文本存储到字符串并发送crtl + c键(存储(或抓取)拖动的文本)并将文本存储在另一个字符串中,然后恢复备份(ed )文本到剪贴板。
有什么想法吗?感谢。