2011-06-23 16 views
5

私は複数のモニターを使用しているプログラムを持っています。プログラムは、第2のモニタ上に特別な視覚化を表示しています。ある時点で、プログラムはWindowsシェル関数を使用してファイルをごみ箱に送ります。しかし、これを行うと、削除確認のダイアログが私の視覚化の上に表示されます。これは特に問題です。マウスが2番目のモニタにあるとき、私のプログラムはマウスフックを使ってすべてのマウス入力をキャプチャするので、ユーザは確認ダイアログをクリックすることさえできません。ダイアログを表示するウィンドウを教えてください

Windowsに特定のディスプレイ上にダイアログボックスを配置するように何らかの方法で指示することはできますか?私はC WinAPIの関数を呼び出す必要があればそれはあなたがごみ箱にファイルを送信するために使用されている機能の問題

答えて

2

すべきではないものの

私は、パイソンを使用していますか? SHFileOperationを使用する場合は、親HWNDを渡すことができます。他のモニタ上に目に見えないWS_EX_TOOLWINDOWウィンドウを作成することもできます。

私は、そのウィンドウを親として扱うAPIは、そのウィンドウに対して相対的に中心を置くことが期待されますが、試していません。

対象とするWindowsのバージョンによっては、画面の両側に「ドッキング」する机上バンドを作成する機能がありました。これはrcWorkとして返された領域に自動的に分解され、GetMonitorInfoとなり、ダイアログがこの領域と重ならないようにすべきです。 かもしれないは、領域が "使用中"であることを宣言する別の方法ですが、私はそれがわからないのでおそらく存在しません...

あなたが行うことができる醜いと粗いことは、自分自身を調査し、ダイアログを移動することですが、これは、広くよりも害を引き起こす可能性のある広く展開された商用のアプリケーションのいずれかであれば。

+0

私はそれを試してみます。 SHFileOperationはファイルを削除しますか、それともごみ箱に移動しますか? Tim Goldenのwinshellパッケージ(http://timgolden.me.uk/python/winshell.html)を使っていましたが、直接API関数を試すことができます。 – jmite

+0

愚かなことに、ティム・ゴールデン・モジュールで確認を求めないという選択肢があることが判明しました。これは長期的な問題を解決するものではありませんが、ファイルを削除する以外に問題はありません。答えをありがとう! – jmite