DLLの画面をタスクに乗せたくないのですが。
VBで言うShowTaskのような処理はありませんでしょうか?
ちなみにShowWindow(SW_HIDE)でHInstance、Application.Handel
は駄目でした・・・
FormのHandleではタスクは消えるのは良いんですが
画面も消えてしまいます。。
タスクに出ているのは、親ウィンドウです。
誰かが、その画面を所有すればよろしいかと。
Parentを設定してみてください。
Halbow です。
DLL で作られたフォームを表示するとタスクバーに現れるのは、Owner である DLL の
Application オブジェクトが Window を作らないからです。Exe 側の Application.Handle
を DLL のそれに代入しておくとこれを防ぐことができます。詳しくは
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=058464
で書いています。またコード例は以下にあります。
http://www.sakaki.keiaikai.or.jp/cgi-bin/ConvRoom/webconv.dll/body?No=13396
にしのさん、Halbowさん
回答ありがとうございます。
上記サイトの方法で呼出側のApplication.Handle
をDll側でセットする方法で解決できました。
どうやら?パッケージを使用しない場合DLL側のApplicationHandle
は0になってしまっていた様です。
呼出側のExeとDllが両方ともパッケージを使用して
コンパイルされている場合のみ?かは解りませんが
DLLのApplicationHandleが呼出元のExeと同じで
タスク上も一つになったのでとりあえずそちらでの
対応となりました。。ありがとうございました。
ツイート | ![]() |