handleについて

解決


キアヌ  2003-10-17 22:29:40  No: 5291

いつもお世話になってます。今回、2個質問させてください。
私が今、行おうとしているのは、アプリから他のアプリを起動させるというものです。ShellExcute関数を使うことで一応クリアできました。
---------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{

     ShellExecute( Handle, NULL, "..\\Concurrentor\\CAServer\\CAServer.exe", NULL, NULL, SW_SHOWNORMAL );

}
---------------------------------------------------------------------
上のようにすることでできたわけですが、この部分をコンポーネントとしたいのです。そこで問題なのが、「Handleって何?」とういうことです。
どこからきているのかさっぱりわかりません。

あと、コンポーネントとして作成した場合は、「Handleが定義されておりません。」となってしまいます。コンポーネントとして上のShellExcuteを実行させる方法ありませんでしょうか?


LupinⅢ  URL  2003-10-18 00:16:28  No: 5292

その自作コンポーネントがTWinControlかまたはTWinControlを派生させたコントロールから派生させているならばHandleを所有しているはずですが、
それ以外からの派生はHandleを所有していないのでは?


キアヌ  2003-10-18 00:26:26  No: 5293

なるほど、早速やってみます。

ところで、Handleを所有しているとはどういったことなんでしょうか?
どこかで値をもっているのでしょうか?


LupinⅢ  URL  2003-10-18 00:32:05  No: 5294

TWinControlクラスをHelpで調べてプロパティを見てみてください。
Handleがありますよね。
その前のTControlクラスにはHandleのプロパティはありません。


キアヌ  2003-10-18 19:34:37  No: 5295

ヘルプって結構難しくかいていますね。

じっくり読み解きたいと思います。


Halbow  2003-10-18 20:48:47  No: 5296

Halbow です。

TForm1 のメソッドの中で、Handle と書けば、それはウィンドウハンドル
のことです。ウィンドウを識別するために、ウィンドウズでは各ウィンドウに
整数値の番号付けをしています。それがハンドルです。

ShellExecute( ) の第一パラメータで特にハンドルがない場合は、ゼロを
設定しても大丈夫です。


キアヌ  2003-10-18 22:17:00  No: 5297

レスポンスありがとうございます。Handleについて理解が深まりました。
TForm1の中でのHandleとは、TForm1というWindowの通し番号なんですね!?

ただ、Handleと書いただけで「Handleという変数が定義できてません」という風にでないということは、どこかで宣言されているのでしょうか?

あと、早速、第一パラメータに0をいれてみて起動チェックしてみると、確かに0でも他のアプリケーションが起動しました。ありがとうございます。でも、第一パラメータを0にしたときとHandleにしたときで内部的に違いとかやっぱりあるのか・・・な?


キアヌ  2003-10-18 22:24:30  No: 5298

第一パラメータは「メッセージボックスが表示されたときの、親になる ウインドウのハンドル」というのは、よくいろんなHPで見つけているのですが、この意味がよくわかりません。(泣

もう少し、わかりやすく教えていただけないでしょうか?


masayan  2003-10-18 23:17:56  No: 5299

「メッセージボックスが表示されたときの、親になる ウインドウのハンドル」というのは、関数が失敗してWindows(OS)がエラーダイアログなどを表示する時にそのダイアログを指定されたウィンドウの子ウィンドウとして表示するということです。
なお、「関数の失敗」とは、指定したプログラムの実行に失敗したということではなく、何らかの異常により関数そのものが正常に実行できないということのようです。


キアヌ  2003-10-20 19:16:14  No: 5300

噛み砕いてくださり、ありがとうございます。
なんとか理解できました〜。


キアヌ  2003-10-20 19:16:35  No: 5301

ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加