c++ - 如何在空的 Visual C++ 项目(或控制台应用程序)中使用查找窗口和发送消息

标签 c++ windows visual-studio console-application message

我想制作最简单的应用程序,可以通过 windows 发送消息(并解析 json)进行通信。我找到了一个示例代码:

CWnd* pWnd = FindWindow("old title");
pWnd->SendMessage(WM_SETTEXT,0,(LPARAM)"New title");

这行得通...但前提是我使用 MS Visual Studios“创建新的 MFC 表单应用程序”向导。如何制作一个向我的程序发送消息的控制台应用程序?或者我可以吗?如果我启动一个空项目或控制台应用程序,我需要包含/链接什么?

伪代码的目标:

a = ""
while !EOF
  a += read(stdin)

commandArray = jsonToArray(a)

CWnd* pWnd = FindWindow("program");
pWnd->SendMessage(WM_COPYDATASTRUCT,0,commandArrayWrappedInCOPYDATASTRUCT);

exit

令人烦恼的是,代码的有效部分大约有 20 行(以上),但向导生成的部分有数百行。其中大部分是我不明白的东西。另外,我得到了一个我不需要的窗口。

编辑

最终的 main.cpp(没有 json 的东西):

/*
This closes calculator
*/

#include <Windows.h>
#include <atlstr.h>

int main (void)
{
    HWND HWnd = FindWindow(NULL, CStringW("Calculator"));
    SendMessage(HWnd, WM_CLOSE, 0, 0);

    return 0;
}

朱哈

最佳答案

如果您想要如此简单的东西,那么我会完全忘记 MFC,并从新建项目向导中的基本控制台应用程序开始。对于如此简单的事情,MFC 似乎相当繁重。

关于c++ - 如何在空的 Visual C++ 项目(或控制台应用程序)中使用查找窗口和发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5248302/

相关文章:

c++ - 如何将多个模板传递给一个类

windows - 将上下文菜单添加到 Inno Setup 页面

c++ - 自定义分配器仅在 VS 2015 中以 Release模式编译

c# - 如何重命名我的 c# 命名空间以包含一个点

c++ - 如何在 C++ 中将密码通过管道传递给 ssh?

c++ - ‘int main;’ 是有效的 C/C++ 程序吗?

c++ - 使用c++在当前运行的进程中获取X显示变量

php - 将 Docker 容器连接到远程 MySQL 数据库

c++ - Exe 不是有效的 win32 应用程序,但在 64 位上运行

visual-studio - Visual Studio 黄色工具提示卡在屏幕上