実行中のプロセスから現在デバッグモードで起動しているかどうか判別する関数に CheckRemoteDebuggerPresent 関数というものがある。 使用例は下記の通りです。

プロジェクトのダウンロード

[C++コード]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
HANDLE hProcess = GetCurrentProcess();
BOOL bDebuggerPresent;
if (CheckRemoteDebuggerPresent(hProcess, &bDebuggerPresent))
{
  if (bDebuggerPresent)
  {
    MessageBox(hWnd, TEXT("デバッグ中です。"), 0, 0);
  }
  else
  {
    MessageBox(hWnd, TEXT("デバッグ中ではないです。"), 0, 0);
  }
}
else
{
  MessageBox(hWnd, TEXT("CheckRemoteDebuggerPresent関数が失敗"), 0, 0);
}

参考文献