1
私は最近、WinX DVD Ripper Platinumのライセンスを取得しました。DVDをリッピングしたら、それはわかりません。ポップアップはなく、システムの「ビープ音」はありません。何もありません。進行状況ダイアログが閉じます。メインウィンドウでも、私はその(C#とVS2010を使用して)簡単なコンソールアプリケーションを作ってるんだ、私のDVDリッピングproccessをスピードアップするために...別のアプリケーションのウィンドウが表示されているかどうかを確認するにはどうすればよいですか?
を自分自身に集中しない:
- は、ハンドルを検索します「WinX_DVD_Ripper_Platinum」(WINX DVDリッパープラチナソフトウェアのプロセス名)という名前のプロセスの
- はthis sample at pinvoke.net
- で定義されて
GetChildWindows
方法を使用して、そのプロセスの進行状況ダイアログのハンドルを見つけチェックSystem.Timers.Timer
インスタンスを起動します(または確認しなければならない)アローグが5秒ごとに終了しました(theGetWindowLong
functionを使用し、 System.Console.Beep
メソッドでビープ音を鳴らして、リッピングが完了したことをユーザーに伝えます。ユーザーがコンソールウィンドウのキーを押すまで、タイマーは自動的にリセットされ、5秒ごとにチェックを実行します(またはダイアログが閉じている場合はビープ音を繰り返します)。
ステップ1,2、および4はうまくいきますが、ステップ3に問題があります。私の質問は、window style constantsのうち、ウィンドウが表示されているかどうかを確認する必要がありますか?
private static bool IsWindowVisible(IntPtr hwnd)
{
var style = GetWindowLong(hwnd, GWL.GWL_EXSTYLE);
var visible = style & (WS flag goes here);
return visible != 0;
}
うわー、私は愚かだと感じます... :)素早く簡単な答えをありがとう。私は最後の2日間で約50回の「ピンボケ・ウインドウ・ビジュアル」のグーグル・グーグル・グーグル・グーグルにグーグル・グーグル・グーグル・グーグル・ジャパンありがとう、ランバート。 –
助けてくれてうれしい! :)(編集:ところで、経験から:**決して** google "pinvoke"あなたが 'DllImport'を使用して記事をしない限り!) – Mehrdad