この単純なWinAPIコードでCアプリケーションを起動するときに、コンソール ウィンドウを非表示にしようとしています。
#define CONSOLE_NAME "6FD66E14-FF0F-4B94-B8AF-AFE3D42DC399"
void hide_window(void)
{
// Ставим заголовок для консольного окна / Setting window caption
SetConsoleTitle(TEXT(CONSOLE_NAME));
// Находим по заголовку Handle для окна / Searching Handle of the window
HWND hWnd = FindWindow(NULL, TEXT(CONSOLE_NAME));
if (hWnd == 0)
{
ErrorExit(TEXT("FindWindow"));
}
// Скрываем консоль / Hidding console
ShowWindow(hWnd, SW_HIDE);
}
int _tmain(int argc, _TCHAR* argv[])
{
hide_window();
/* other code */
}
アンチウイルスがアクティブ化されていない場合はすべて正常に動作しますが、Kasperskyが実行されてシステムを監視している場合、上記のコードを実行できません。これhWnd == 0
は true であり、GetLastError()
= 183 エラー(「そのファイルが既に存在する場合、ファイルを作成できません。」)のためです。起動しました!
質問: どうすればよいですか? 必要なのは、そのコンソール ウィンドウを非表示にすることだけです。
この件で私を助けてください。
まことにありがとうございます!
PS。Visual Studio 2010 (Visual C++) の使用