gpt4 book ai didi

c++ - 不同的 RegisterWindowMessage() 名称显示相同

转载 作者:太空宇宙 更新时间:2023-11-04 12:26:01 25 4
gpt4 key购买 nike

使用 C/C++ Windows API RegisterWindowMessage()

我使用应用程序的名称作为消息名称。

接下来我调用 CreatMutex()使用相同的名称,以便我可以判断它是否已经存在。如果是这样,我知道这个应用程序已经在运行并且不会启动它的第二个实例。这是我的函数 Running() 的操作

我的困惑在于消息名称。似乎“AutoConvert.exe”和“AutoAppend.exe”被解释为相同的名称。为什么?

添加:我不在我的机器上,但这类似于在两个应用程序中调用的函数,用于检查应用程序当前是否正在运行

INT AlreadyRunning( string sAppName ) {
INT runchk = RegisterWindowMessage( sAppName.c_str() );
INT retval = CreateMutex( 0, 1, sAppName.c_str() );
if( retval > 0 ) {
if( GetLastError = ERROR_ALREADY_EXISTS ) {
SendMessage HWND_BROADCAST, runchk, 0, 0;
return 1;
}
}
return 0;
}

当我回来时,我需要做一些进一步的测试,因为你提出了一个很好的观点。

最佳答案

这段代码:

#include <windows.h>
#include <stdio.h>

int main() {
int m1 = RegisterWindowMessage( "AutoConvert.exe" );
int m2 = RegisterWindowMessage( "AutoAppend.exe" );

printf( "%d %d\n", m1, m2 );
}

对我来说打印了两个不同的整数值(即它注册了两个不同的消息)——它为你打印了什么?

关于c++ - 不同的 RegisterWindowMessage() 名称显示相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2499819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com