我们可以设置窗口文本:
BOOL WINAPI SetWindowText( __in HWND hWnd, __in_opt LPCTSTR lpString );
和这个窗口文本由另一个应用程序
int WINAPI GetWindowText( __in HWND hWnd, __out LPTSTR lpString, __in int nMaxCount );
我不想更改我的表单标题,但我想保留一个自定义的文本在窗口中,并通过同一程序的另一个实例获取此文本。 我怎样才能做到这一点?
一个简单的方法是:
这个方案允许你发送任意数据(只要它不包含指针),只要数据是相当小的(比如说几KB)。 这也很容易实现。 它缺少的是安全控制,所以如果你不得不防止坏人从你的应用程序中检索这些数据,你将需要使用更重的东西。
我不确定,但我想你将不得不使用openProcess
来打开其他进程,然后使用进程句柄上的某个函数来获取标题文本。 一旦你有了这个文本,你就可以很好的在你的应用程序中使用它。 为了获得所需进程的进程,可以使用EnumProcess
,这里是一个完整的示例: http : //msdn.microsoft.com/en-us/library/ms686701%28v=vs.85%29.aspx
可能最简单的方法是在WM_APP范围内定义一个Windows消息,并将其从一个实例发送到另一个实例。 尽管使用GlobalAlloc之类的东西,你还得自己编组。