1

私のC#dllにメソッドを呼び出すソフトウェアがあります。このdllメソッドでは、dllを呼び出したプログラム/ウィンドウのウィンドウハンドルが必要です。

この「呼び出しウィンドウハンドル」を取得する方法は?

ありがとう!

4

2 に答える 2

2

できません:ウィンドウはメソッドを呼び出さず、コードはメソッドを呼び出します。

理想的には、ウィンドウハンドルパラメータをメソッドに追加する必要があります。それが絶対に不可能な場合は、たとえばGetActiveWindowAPI関数を使用して、現在のスレッドでウィンドウをアクティブにすることができます。これが機能することは保証されていません。開いているウィンドウがない可能性があります。

何のためにウィンドウハンドルが必要ですか?

于 2010-03-09T14:58:57.830 に答える
2

これにより、メインウィンドウのハンドルを返すことができます。

System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle

私が知っているように、それはFormオブジェクトにすぎないので、具体的なウィンドウを取得する方法はありません。ただし、FormクラスにはプロパティがありますHandle。dllメソッド呼び出しの引数として渡すことができます。

于 2010-03-09T15:04:26.610 に答える