2011-01-04 16 views
1

私は最近、WinX DVD Ripper Platinumのライセンスを取得しました。DVDをリッピングしたら、それはわかりません。ポップアップはなく、システムの「ビープ音」はありません。何もありません。進行状況ダイアログが閉じます。メインウィンドウでも、私はその(C#とVS2010を使用して)簡単なコンソールアプリケーションを作ってるんだ、私のDVDリッピングproccessをスピードアップするために...別のアプリケーションのウィンドウが表示されているかどうかを確認するにはどうすればよいですか?

を自分自身に集中しない:

  1. は、ハンドルを検索します「WinX_DVD_Ripper_Platinum」(WINX DVDリッパープラチナソフトウェアのプロセス名)という名前のプロセスの
  2. this sample at pinvoke.net
  3. で定義されてGetChildWindows方法を使用して、そのプロセスの進行状況ダイアログのハンドルを見つけチェックSystem.Timers.Timerインスタンスを起動します(または確認しなければならない)アローグが5秒ごとに終了しました(the GetWindowLong functionを使用し、
  4. 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; 
} 

答えて

4

は、あなたの代わりにIsWindowVisible()を使用してみました。詳細については

を(WS_VISIBLEが...動作しませんでした)、これは私がダイアログの可視性を確認するために使用している機能ですか?

+0

うわー、私は愚かだと感じます... :)素早く簡単な答えをありがとう。私は最後の2日間で約50回の「ピンボケ・ウインドウ・ビジュアル」のグーグル・グーグル・グーグル・グーグルにグーグル・グーグル・グーグル・グーグル・ジャパンありがとう、ランバート。 –

+2

助けてくれてうれしい! :)(編集:ところで、経験から:**決して** google "pinvoke"あなたが 'DllImport'を使用して記事をしない限り!) – Mehrdad

関連する問題