No.2ベストアンサー
- 回答日時:
>とりあえず、調べなおすと簡単にできました(汗)
しっかり調べられたようですね^^
(いつも)反感を買うのではと、ちょっとヒヤヒヤしながら発言をしております。
個人的に厳しい発言をするときは、何らかの意味を持って行うようにしているつもりです。
そして、たぶん
「TerminateProcess」
を見つけて、APIの利用方法で再質問してくるかな?
と思っておりました。
しかし、APIをしっかり使いこなしていらっしゃるようですね^^
そこで、余談です。
TerminateProcess = Terminate + Process
OpenProcess = Open + Process
[プロセス+どうする]
という組み合わせから生まれている命令です。
そこで「Terminate」という言葉で、VBカテ内をもう一度検索をかけてみると
[EXEファイルのタイトル取得]
http://okwave.jp/kotaeru.php3?q=558701
がヒットします。
#5さんの発言に、それらしき物があることと、APIを利用していないということに気づくと思います。
スクリプトで、EXEのパスからオブジェクトを探し、強制終了するやり方をしております。
それをちょっとだけ改造し、Shell関数で起動したプロセスのシャットダウンをする方法を張っておきますね^^
Sub Test()
Dim lngPID As Long
lngPID = Shell("calc")
MsgBox "OKを押すと終了させます", vbSystemModal
Call MyTerminate(lngPID)
End Sub
Private Sub MyTerminate(ByVal p_lngPID As Long)
Dim strSQL As String
Dim objProc As Object
Dim lngSts As Long
Dim strWk As String
strSQL = "SELECT * FROM Win32_Process where handle = " & p_lngPID
For Each objProc In VBA.GetObject("winmgmts:").ExecQuery(strSQL)
lngSts = objProc.Terminate
Select Case lngSts
Case 0 '正常終了
Exit For
Case 2: strWk = "アクセスが拒否されました"
Case 3: strWk = "権限が不足しています"
Case 8: strWk = "不明なエラーです"
Case 9: strWk = "パスが見つかりません"
Case 21: strWk = "パラメータが不正です"
Case Else: strWk = "予期せぬエラー:" & lngSts
End Select
MsgBox strWk
Next objProc
End Sub
1050YENさん、今回はありがとうございました。
上記のコードも参考にしたいと思います。
また何か分からないことがあると質問すると思いますが、よろしくお願いします。
No.3
- 回答日時:
今見たら、、、
>VBA.GetObject("winmgmts:").ExecQuery(strSQL)
となっていた部分ですが、ExcelVBAで書いていたので、気づきませんでした。
そのままVBで走ればよいのですが、訂正をしておきます。
>VBA.GetObject("winmgmts:").ExecQuery(strSQL)
⇒GetObject("winmgmts:").ExecQuery(strSQL)
No.1
- 回答日時:
あなたの質問のタイトル
>他のアプリの終了
で、ここの掲示板のVBカテゴリで履歴を検索したら、21件ヒットしました。
全てが全て、あなたの望む回答ではないとは思いますが、それらを参考にしてください。
目的に沿わない内容でも、目を通すだけで、予備知識を得るというスキルアップになりますよ。
参考にしたものの中で、わからない部分があったら
・参考にしたURL
・参考URLのどの部分がわからないか
を示すと、この書き込みを見ている人も、アドバイスがしやすいと思います。
またそのURLに、質問者さん独自の拡張機能が必要である場合も、その旨を示すとよいと思います。
すみません、少し甘えてました。
検索し、過去ログはみたのですがうまくいかなかったので楽しようと思ってしまいました。(反省)
とりあえず、調べなおすと簡単にできました(汗)
Dim hProcess As Long
hProcess = OpenProcess(SYNCHRONIZE Or PROCESS_TERMINATE, True, retval)
'retvalはプロセスID
Call TerminateProcess(hProcess, 0&)
Call CloseHandle(hProcess)
モジュール省略
とりあえず、動いたのですがもし問題ある書き方ならご意見おねがいします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 10:00
- その他(Microsoft Office) windows10で作業を終了する際の「保存しますか はい いいえ」を表示させずに自動で保存する方法 6 2023/03/15 11:29
- バックアップ Windows11パソコンのデータを数クリックで完全に引っ越しするにはどうすれば良いでしょうか? 5 2022/10/11 14:08
- Visual Basic(VBA) VBA active sheetをPDF化して指定フォルダに保存 1 2022/07/07 11:27
- その他(プログラミング・Web制作) GASでガントチャートを作りたいです 1 2022/09/05 17:26
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- UNIX・Linux Ubuntu22.04、nanoエディタの使い方について 2 2022/10/24 19:50
- Excel(エクセル) マクロで謎の現象が起きていて困ってます。 エクセルで作ったボタンを押すとマクロが動いて処理をしてくれ 3 2023/06/22 17:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
e-taxで送信ファイルの拡張子が...
-
個別に違う添付ファイルを付け...
-
エクセルで「特定の文字を含む...
-
A4の紙に印刷されている文字を...
-
ビデオファイルのプロパティの...
-
エアコンの冷媒 R410Aの重...
-
TextBoxにフォーカスを与えると...
-
スマホでtxtファイルを編集する...
-
C言語のselectでのファイルディ...
-
GIMP separate+プラグイン クラ...
-
stdio.hの中身
-
エクセルのセルからフォーカス...
-
ポーカーの手の判断
-
拡張子「.IDJ」を、windo...
-
テキストエディタでVBを編集...
-
カメラのフラッシュは大丈夫?
-
PC内で速度を遅くした音源をCD...
-
ファイル数と合計サイズの取得方法
-
iphone のメモが消えてしまいま...
-
ドアスコープが取れない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
e-taxで送信ファイルの拡張子が...
-
個別に違う添付ファイルを付け...
-
スマホでtxtファイルを編集する...
-
エクセルで「特定の文字を含む...
-
A4の紙に印刷されている文字を...
-
Fortniteのクラッシュについて
-
ビデオファイルのプロパティの...
-
iPhoneの内蔵の記憶媒体は、HDD...
-
ガラケーからPCへの写真の取り込み
-
情けない話ですが成田エクスプ...
-
PC内で速度を遅くした音源をCD...
-
TextBoxにフォーカスを与えると...
-
2枚、マイクロSDカードを入...
-
エアコンの冷媒 R410Aの重...
-
リストビューの選択状態を取得...
-
RSSフィードと無断転載について
-
拡張子「.IDJ」を、windo...
-
VBA:カウンターの i の値が開放...
-
ファイル数と合計サイズの取得方法
-
複数のブックを新しいブックのS...
おすすめ情報