小编Fra*_*erz的帖子

如何将字符串发送到其他应用程序,包括Microsoft Word

我试图完成这个但是没有取得好成绩.我使用GetForegroundWindow(),AttachThreadInput(uint,uint,bool)和GetFocus()函数将字符串发送到另一个窗口.它适用于记事本,写字板和其他应用程序,但不适用于Microsoft Word.

int foregroundWindowHandle = GetForegroundWindow();
uint remoteThreadId = GetWindowThreadProcessId(foregroundWindowHandle, 0);
uint currentThreadId = GetCurrentThreadId();
bool b = AttachThreadInput(remoteThreadId, currentThreadId, true);
int focused = GetFocus();
int d = System.Runtime.InteropServices.Marshal.GetLastWin32Error();
b = AttachThreadInput(remoteThreadId, currentThreadId, false);
SendMessage(focused , WM_GETTEXT, builder.Capacity, builder);
clip = builder.ToString();

//Text operations...

SendMessage(focused, WM_SETTEXT, 0, builder);
Run Code Online (Sandbox Code Playgroud)

这是我的代码,但它不适用于Word.我知道Word使用自定义控件,但我认为应该有另一种方法来处理它.

例如:Windows语音识别将文本发送到每个具有焦点的应用程序,即使它是Word.我不认为他们手动输入.

我想使用SendInputs函数,但我不知道如何做到这一点.

c# windows winapi sendmessage sendinput

2
推荐指数
1
解决办法
8838
查看次数

标签 统计

c# ×1

sendinput ×1

sendmessage ×1

winapi ×1

windows ×1