如何将文本发送到应用程序?

时间:2010-12-05 11:33:52

标签: c++ windows

我正在尝试创建一个应用程序,它从串行端口读取数据(在串行端口上插入了条形码扫描器),然后将其转发到应用程序。我现在可以从串口读取数据,但我不知道如何将读取的文本转发到应用程序,例如记事本。我尝试使用SendMessage()API但它没有成功。也许我做错了什么。 有人可以帮助我,也许可以展示一些例子吗?

谢谢,

kampi

5 个答案:

答案 0 :(得分:1)

听起来您正在寻找keybd_event或更新的SendInput。它允许您模拟键盘输入。

答案 1 :(得分:0)

如果要将其发送到记事本,则可以更轻松地将文本保存到临时文件中,然后使用记事本打开它。从Windows应用程序可以使用CreateProcess完成此操作。

另一方面,如果您控制接收器应用程序的工作方式,则可以使用不同的方法,例如:管道,窗口消息,共享内存和其他一些方法。 This是一个很好的起点。

答案 2 :(得分:0)

如果您指的是另一个应用程序,则应使用IPC methods之一。

答案 3 :(得分:0)

HWND hwnd = FindWindow(NULL, L"Untitled - Notepad");
SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)L"Hello!");

这会将记事本的标题栏文本设置为Hello。当然,你可以详细说明一下找到Notepad的文本框控件,或者在应用程序中找到你自己的控件,或者找到在活动前台窗口中有焦点的控件(参见GetForegroundWindow),但想法是你有了要设置文本的窗口/控件的hwnd,上面的代码应该可以工作。

答案 4 :(得分:0)

最简单的方法应该是named pipes