【发布时间】:2015-06-15 15:23:11
【问题描述】:
我需要我的 Windows 控制台应用程序只能在一个实例中运行(即一次只能运行一个应用程序实例)。 这是我所拥有的:
int _tmain(int argc, _TCHAR* argv[])
{
PCTSTR Name = TEXT("AnyName");
HANDLE h = CreateMutex(NULL, FALSE, Name);
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
_tprintf_s(TEXT("This application is already opened."));
CloseHandle(h);
// Close the console somehow
return 0;
}
else _tprintf_s(TEXT("The application has been opened the first time."));
_gettchar();
return 0;
}
如果同一个程序已经初始化,我如何以编程方式关闭控制台窗口?
【问题讨论】:
-
将另一个实例带到前面,让这个实例简单地退出。
-
你不应该试图关闭控制台窗口——你应该退出。如果您的程序拥有它的控制台,它将自动关闭。如果没有(例如当您的程序从 dos 框启动时),则窗口将保持打开状态。
-
@PeterRuderman 感谢您的解释)