- ベストアンサー
EXEファイルのタイトル取得
一応、自分なりにWEB等で調べてみたのですが、 実行ファイルのタイトル取得の仕方が分かりません。 (実行した時のタイトルバーに出る文字) そのファイルを実行せずにタイトルを取得したいのです。 ご存知の方いらっしゃいましたら、どうか宜しくお願いします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
出題者 >そのファイルを実行せずにタイトルを取得したいのです この質問から、自作アプリでは無いこと想像できる。 自作アプリなら、どのようなタイトルかは既にわかるはず。 wm_closeは、終了メッセージを送るだけ。 もしアプリが、終了確認を問うメッセージを出したら、そのメッセージボックスのOKボタンにもポストしてやらねばならん。 それ以外にも、複数のウィンドウを開くタイプであれば、一つのウィンドウに対して閉じるだけの命令なので、一番の親フォームを取得しておく必要がある。 プロセス単位で行えば、確実に終了できる。 ∴強制終了 → 諸刃
その他の回答 (6)
> 起動するアプリによってはOSが不安定になりえる諸刃の剣。 強制終了じゃなく、WM_CLOSEをPostすればよろしいかと。 (大して変わらない?)
- 2ch
- ベストアンサー率51% (64/125)
wm_closeやCloseHandleでやるなら http://oshiete1.goo.ne.jp/kotaeru.php3?q=344472 スクリプト的に行うなら Sub Main() ExeFree "c:\Project1.exe" End Sub Sub ExeFree(ByVal inExePath As String) Dim strSQL As String Dim objApps As Object Dim objProc As Object Dim lngSts As Long Dim strWk As String inExePath = UCase(inExePath) strSQL = "SELECT * FROM Win32_Process" Set objApps = VBA.GetObject("winmgmts:").ExecQuery(strSQL) For Each objProc In objApps 'Exeのパスが一緒の物を探す If (inExePath = UCase(objProc.ExecutablePath)) Then Exit For End If 'End If Next objProc '取得できていない If (objProc Is Nothing) Then Exit Sub End If '取得したプロセスを終了する lngSts = objProc.Terminate Select Case lngSts Case 0 '正常終了 Exit Sub Case 2: strWk = "アクセスが拒否されました" Case 3: strWk = "権限が不足しています" Case 8: strWk = "不明なエラーです" Case 9: strWk = "パスが見つかりません" Case 21: strWk = "パラメータが不正です" Case Else: strWk = "予期せぬエラー:" & lngSts End Select MsgBox strWk End Sub
お礼
2度にわたって返答いただき、ありがとうございます。 コードを参考に色々と試してみたいと思います。 どうもありがとうございました。(^^
- 2ch
- ベストアンサー率51% (64/125)
あえて、起動しちゃったらどうかと、 SHELLで非表示で起動できるっしょ。 んでもって、強制終了。 起動するアプリによってはOSが不安定になりえる諸刃の剣。
お礼
お返事どうもありがとうございます。 No1の返答欄に追記した内容がお分かりでしたら、 お手数ですが再度アドバイス等お願いしたいと思います。 宜しくお願いします。m(__)m
- taka_tetsu
- ベストアンサー率65% (1020/1553)
できません。 実行中にいくらでも変更可能です。
お礼
お返事どうもありがとうございます。 No1の返答欄に追記した内容がお分かりでしたら、 お手数ですが再度アドバイス等お願いしたいと思います。 宜しくお願いします。m(__)m
- rara_sun
- ベストアンサー率50% (271/539)
できないという記載やできるという記載ががどこにも見つからないのですが、無理矢理やろうと思ったら、処理系ごとの実行形式を調べて、タイトルが埋め込まれている場所を突き止める方法になるのかと思います。ただ、タイトルが埋め込まれている場所に、規則性があれば良いですが・・。
お礼
お返事どうもありがとうございます。 No1の返答欄に追記した内容がお分かりでしたら、 お手数ですが再度アドバイス等お願いしたいと思います。 宜しくお願いします。m(__)m
- todo36
- ベストアンサー率58% (728/1234)
無理でしょう。 バージョン情報を取得するなら可能ですが
お礼
お返事どうもありがとうございます。 EXEファイルパスだけが分かっている状況で、 そのEXEファイルを実行してタイトルを取得後、 終了するといったする方法はありますでしょうか。 (できればShell使って) 度々お手数をおかけしますがご存知でしたら、 返答、どうかよろしくお願いします。m(_ _)m ※GetWindowText等々部分的な事までは調べ られたのですが、それを結びつける事ができません。 (起動→取得→終了という具合に)
お礼
アドバイス、どうもありがとうございます。 色々と参考にさせていただきます。m(_ _)m