将消息从C 发送到DelphiX
Sending message from C++ to Delphi X
我正在尝试将我的C 控制台应用程序发送到Windows 10上的Delphi X应用程序,但由于某种原因,它不起作用。以下是我的C 代码:
int _tmain(int argc, _TCHAR* argv[])
{
CString dataToSend = _T("MY DATA");
COPYDATASTRUCT cds;
cds.dwData = 1; // can be anything
cds.cbData = sizeof(TCHAR) * (_tcslen(dataToSend) + 1);
cds.lpData = (void*)dataToSend.GetBuffer(cds.cbData);
HWND hwndFound; // This is what is returned to the caller.
hwndFound = FindWindow(_T("TMyForm"), 0);
if (hwndFound)
{
printf("WINDOW IS FOUND %i... Sending a message...n", hwndFound);
SendMessage(hwndFound, WM_COPYDATA, (WPARAM)hwndFound, (LPARAM)(LPVOID)&cds);
}
else
{
printf("WINDOW IS NOT FOUND!n");
}
char* end = "";
printf("Press enter to continue...");
scanf(end);
return 0;
}
这是我的delphi代码:
private
procedure WMCopyData(var Msg : TWMCopyData); message WM_COPYDATA;
....
procedure TMyForm.WMCopyData(var Msg: TWMCopyData);
var
s : AnsiString;
begin
s := PAnsiChar(Msg.CopyDataStruct.lpData) ;
ShowMessage(s);
end;
....
procedure TMyForm.MyButtonClick(Sender: TObject);
begin
// Checking my handle
ShowMessage(IntToStr(Handle));
end
C 应用程序说它找到了一个句柄:
窗口找到3609366 ...发送消息...按Enter继续...
当我按Mybutton(3609366)时显示相同的句柄,但不会出现消息框。由于某种原因,Delphi应用程序未收到该消息。
你知道为什么吗?
P.S。:他们在同一用户帐户下运行。
您正在向Delphi发送WM_USER 1消息,但在Delphi中没有听取该消息。
相关文章:
- boost::进程间消息队列引发错误
- 在线编译器中的分段C++没有打印消息
- C++错误消息*成员参考.**初学者*
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- 要与"if constexpr"一起使用的编译时消息(在预处理器之后)
- 如何通过参数抛出错误消息
- 从服务器传输到客户端的消息不会出现
- ROS2 动态消息模板
- C++秘密消息学校作业
- glad 导致 glfwSwapBuffers 返回错误消息
- C++入门 5 版:类消息和文件夹
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- 如何处理从一个对象传递到另一个在C++中具有公共抽象类的对象的消息
- 如何接受 [ENTER] 键作为无效输入并发送错误消息
- 由于无效的 ValidateRgn() 子窗口不会收到WM_PAINT消息
- "string.h"在构建适用于iOS的qt应用程序中找不到消息
- 如何将 Firebase 与基于 Linux 的客户端应用配合使用,以便与服务器进行双向消息通信
- 重新定义预定义的 errno 错误消息 (E2BIG)
- Libmosquitto publish 不会将所有消息传递到 Azure IoT Hub
- 将消息从C 发送到DelphiX