以编程方式关闭 Windows 控制台应用程序 c++
Programmatically close Windows console application c++
我需要我的 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;
}
如果同一程序已经初始化,我如何以编程方式关闭控制台window?
你可以通过
隐藏它
ShowWindow(GetConsoleWindow(), SW_HIDE);
虽然我真的认为你应该退出程序而不是关闭控制台。
_gettchar() 用于阻止控制台关闭,因此只有在您想要保持控制台打开时才允许它,这意味着如果您希望它关闭,它将:
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);
return 0;
}
else
{
_tprintf_s(TEXT("The application has been opened the first time."));
_gettchar();
}
return 0;
}
我需要我的 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;
}
如果同一程序已经初始化,我如何以编程方式关闭控制台window?
你可以通过
隐藏它ShowWindow(GetConsoleWindow(), SW_HIDE);
虽然我真的认为你应该退出程序而不是关闭控制台。
_gettchar() 用于阻止控制台关闭,因此只有在您想要保持控制台打开时才允许它,这意味着如果您希望它关闭,它将:
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);
return 0;
}
else
{
_tprintf_s(TEXT("The application has been opened the first time."));
_gettchar();
}
return 0;
}