![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.1ベストアンサー
- 回答日時:
↓こんな感じかな。
汚いけど解読してね。Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Const STANDARD_RIGHTS_REQUIRED = &HF0000
Const SYNCHRONIZE = &H100000
Const STILL_ALIVE = &H103&
**************
Private Sub 監視します(ByVal MyID As Long)
Dim lFlag As Long
Dim ret As Long, ret1 As Long
Dim l As Long
Dim lCheckID as long
lCheckID = lGet_ID("監視したいフォームキャプション")
If lCheckID= 0 Then
'そんなフォームないよ。だからおわり。
Exit Sub
End if
lFlag = STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF
ret = OpenProcess(lFlag, False, lCheckID)
Do
ret1 = GetExitCodeProcess(ret, l)
If Not (l = STILL_ALIVE) Then
'フォームがなくなったよ!!
Exit Do
End If
DoEvents
'フォームがあるからずーーとループして監視
Loop
End Sub
'***************************
Private Function lGet_ID(MyCaption As String) As Long
Dim st As String
Dim ret As Long, ret1 As Long
Dim lProcessId As Long
ret = FindWindow(st, MyCaption)
If ret Then
GetWindowThreadProcessId ret, lProcessId
ret1 = PostMessage(ret, WM_CLOSE, 0, 0)
'プロセスID取得!!
lGet_ID = lProcessId
Exit Function
End If
'プロセスID取得できません!!
lGet_ID = 0
End Function
No.3
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 バッチファイルでのエクスプローラー終了 1 2022/05/30 14:32
- ノートパソコン Win10 EXCEL でのエラー 2 2022/04/03 15:57
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- その他(プログラミング・Web制作) Windows上のプログラム。「予め決められた時刻に自分で起動して処理して自分で終了する」って可能? 3 2023/01/04 14:29
- 建設業・製造業 オペレーター 7 2022/08/02 07:24
- Visual Basic(VBA) VBAでOutlookを終了させたい ExcelVBAで既に起動されているOutlookを終了させる 3 2022/03/24 07:37
- Firefox(ファイヤーフォックス) firefoxが頻繁に停止する 1 2023/01/09 10:26
- 英語 英語の相の種類 Wikipediaでは He began to talk.(起動相) He cont 1 2023/06/26 11:54
- 消費者問題・詐欺 自分の学校がカリキュラムを偽装しています。 1 2023/02/15 23:40
- Outlook(アウトルック) outlook メモリ不足 1 2022/05/31 10:16
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba アプリケーションが立ち上...
-
C#でGUI・CUIの判断する仕方を...
-
MFCアプリケーションでの終了コ...
-
フレームワーク「4.8.1」で、[S...
-
2重起動の防止
-
VBSでのSendKeysでの画面の最小化
-
MFCでコンソール出力
-
Windowsプログラムのビジー状態...
-
EXCELを常にIEなど他のアプリの...
-
httpd.pidって何ですか?
-
VB2008で作成したアプリケーシ...
-
対象のアプリケーションが終了...
-
イベントドリブン(C言語)
-
アプリケーションエラー 0xc00...
-
他のアプリケーションの起動と...
-
メモ帳を好きな位置で開くには?
-
outlookが強制終了してしまう
-
MFCのマルチドキュメントで
-
pccNTmon.exeとntrtscan.exeの違い
-
他アプリケーションの終了
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba アプリケーションが立ち上...
-
VBSでのSendKeysでの画面の最小化
-
コンソールアプリケーションの...
-
フレームワーク「4.8.1」で、[S...
-
WSH(VBScript)でアプリケーショ...
-
Accessフォームからの外部アプ...
-
VB6での二重起動(複数起動)の制...
-
イラストレーターCS4のシリアル...
-
VB.NETでMessageBoxを表示した...
-
Console Applicationをタスクト...
-
Java Web Start アプリケーショ...
-
VB.NETでフォームアクティブの...
-
C#でGUI・CUIの判断する仕方を...
-
vb6で異なるのプロジェクト間で...
-
MFCアプリケーションでの終了コ...
-
pccNTmon.exeとntrtscan.exeの違い
-
自分自身を更新するプログラム
-
excel VBAで、外部アプリケーシ...
-
vcxprojファイルの修正法???
-
実行時のコマンドプロンプトを...
おすすめ情報