どうしを無効にする'デバッグ/申請書"ダイアログのWindows Vistaでは動作しないのですか?
-
29-08-2019 - |
質問
アプリケーションがクラッシュをWindowsおよびデバッガなどのVisual Studioを設置し、以下のモーダルダイアログが表示されます:
[タイトル:Microsoft Windows]
X形状ミラー
るプログラムの停止 働きます。窓が閉まり のプログラムを通知する場合 解決が可能です。
[Debug][閉じるアプリケーション]
があるのでは無効にこのダイアログを?このプログラムだけでクラッシュの燃焼静?
マシナリオを想定したように走る複数の自動化試験、衝突によるバグのなければなりません。僕はこれらの対話の失速に自動化。
探きているのだと思い位のものを無効にするこWindows XP、nukingこの字キー:
HKLM\Software\Microsoft\Windows NT\CurrentVersion\AeDebug\デバッガ
しかし、動作しなかったWindows Vista.
解決
あなたはこれらのレジストリエントリを設定することができ、代わりにプログラムをデバッグするためにあなたを促すの、クラッシュダンプを取ると、アプリを閉じるには、Windowsエラー報告(WER)を強制するには:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting]
"ForceQueue"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\Consent]
"DefaultConsent"=dword:00000001
これが設定されているの後、時にアプリがクラッシュ、あなたは* .hdmpおよび* .mdmpファイルの中に表示されるはずです。
%ALLUSERSPROFILE%\Microsoft\Windows\WER\
他のヒント
こちらをご参照:
http://msdn.microsoft.com/en-us/library/bb513638.aspx
regedit
DWORD HKLMはHKCU\Software\Microsoft\Windows\Windowsエラーを報告\DontShowUI="1"
を比は、黙々と報告する。そのままセット
DWORD HKLMはHKCU\Software\Microsoft\Windows\Windowsエラーを報告\無効="1"
停止からいさん
これはまったく同じダイアログを指しますが、ここで<のhref = "http://blogs.msdn.com/oldnewthing/archive/2004/07/27/198410から別のアプローチであれば、私はよく分かりません。 ASPX」のrel = "noreferrer">レイモンド・チェンするます:
DWORD dwMode = SetErrorMode(SEM_NOGPFAULTERRORBOX);
SetErrorMode(dwMode | SEM_NOGPFAULTERRORBOX);
あったかを無効にするこのリリース作業の自動化Windows64ビットのためのFirefoxで動かったので、下
- gpedit.msc
- コンピューター設定->管理テンプレート
- Windows Components Windowsコンポーネント->Windowsのエラーレポート
- セット"の予防に表示したり、ユーザインターフェースのための重要な誤差を"Enabled
は、私の状況では、私は私のユニットテストのためではなく、システム全体のポップアップを抑止します。私は、機能の組み合わせは、このような(例えば、スタックポインタの妥当性など)実行時のチェックとエラーモードフラグを抑制し、未処理の例外をキャッチするようにこれらのエラーを、抑制するために必要であることがわかりました。これは、私はいくつかの成功を収めて使用されてきたものです。
#include <windows.h>
#include <rtcapi.h>
int exception_handler(LPEXCEPTION_POINTERS p)
{
printf("Exception detected during the unit tests!\n");
exit(1);
}
int runtime_check_handler(int errorType, const char *filename, int linenumber, const char *moduleName, const char *format, ...)
{
printf("Error type %d at %s line %d in %s", errorType, filename, linenumber, moduleName);
exit(1);
}
int main()
{
DWORD dwMode = SetErrorMode(SEM_NOGPFAULTERRORBOX);
SetErrorMode(dwMode | SEM_NOGPFAULTERRORBOX);
SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)&exception_handler);
_RTC_SetErrorFunc(&runtime_check_handler);
// Run your tests here
return 0;
}
WPFアプリケーションで
[DllImport("kernel32.dll", SetLastError = true)]
static extern int SetErrorMode(int wMode);
[DllImport("kernel32.dll")]
static extern FilterDelegate SetUnhandledExceptionFilter(FilterDelegate lpTopLevelExceptionFilter);
public delegate bool FilterDelegate(Exception ex);
public static void DisableChashReport()
{
FilterDelegate fd = delegate(Exception ex)
{
return true;
};
SetUnhandledExceptionFilter(fd);
SetErrorMode(SetErrorMode(0) | 0x0002 );
}
て実現しようとする独自のレンダリングメカニズムの例外のフィルタだけでは終了のご応募、そのセットをフィルター機能 SetUnhandledExceptionFilter().
だけのような広く使われているCRTものではありませんを提供する無効なパラメータハンドラを設定す _set_invalid_parameter_handler().
このブログは、一部の情報もhttp://blog.kalmbachnet.de/?postid=75
あなたは添付ADPlusのような「デバッガ」を使用して実行することができますテスト中A>エラーに関するデータを収集するために多くの有用な方法(ミニダンプ)で構成され、まだあなたがこの状態モーダルダイアログの問題を防ぐことができます。
あなたが設定することができ、製造に際にアプリがクラッシュするいくつかの有用な情報を取得したい場合は、<のhref =「http://msdn.microsoft.com/en-us/library/bb219076.aspx」のrel = "nofollowをnoreferrer 「> Microsoftエラーは、ADPlusのデータに似た何かを得るためにに報告します。
この質問への直接の答えではありません他の回答のいずれかを使用。だから、私は回避策を必要としていました。これはおそらく、この質問に終わる少なくともいくつかの他の人のために働くだろう。
私は AutoHotkeyをポータブルに使用し、ポップアップボックスが存在する場合、1分に1回のチェックが参照するマクロを作成し、それがない場合は、プログラムを閉じるためのボタンをクリックします。私の場合、それは十分だし、他のユーザーのための機能を残します。それは私が、リスクのプログラムを実行すると、私は、スクリプトを起動するが、それは私のニーズのために働くことを要求します。
次のようにスクリプトがあります:
sleep_duration = 60000 ; how often to check, in milliseconds.
; 60000 is a full minute
Loop
{
IfWinExist, ahk_class #32770 ; use autohotkey's window spy to confirm that
; ahk_class #32770 is it for you. This seemed to be consistent
; across all errors like this on Windows Server 2008
{
ControlClick, Button2, ahk_class #32770 ; sends the click.
; Button2 is the control name and then the following
; is that window name again
}
Sleep, sleep_duration ; wait for the time set above
}
の編集の迅速なフラグ。他のものがアップしている場合は、これがフォアグラウンドウィンドウ内のコントロールをアクティブ化しようとしているようだ - バックグラウンドでプログラムに送ることになっています。私は修正を見つけた場合、私はそれを反映するために、この答えを編集しますが、今のところ、これを使用して、同時にマシン上で他の作業をしようとについて注意が必要です。
タイムデバッガでだけを取り除くために、インターネット上の他のすべてを試した後、私は実際に働いていた簡単な方法を発見し、私は他の誰かを助けることを願っています。
コントロールパネルに移動します [管理ツール]に移動します サービスに移動します マシンデバッグマネージャーのためのリストを下に見て その上で右クリックし、[プロパティ]をクリックします [全般]タブの下で、スタートアップの種類を探してください 無効化をクリックします。 適用をクリックし、[OK]をクリックします。
私は以来、デバッガのメッセージを見ていない、と私のコンピュータが完全に実行されます。
serverWerOptin /disable
の代わりに、レジストリの値を変更するので、あなたはcompletlyでのWindows Server 2008 R2は、Windows Server 2012およびWindows 8上でエラー報告を無効にすることができます
https://technet.microsoft。 COM / EN-US /ライブラリ/ hh875648(V = ws.11).aspxのの