掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
マイコンピュータでファイルをダブルクリックし開く動作を実現するには (ID:101638)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
YuO様、登校ありがとうございます。ファイルを開くことができました。 実は、この先があり、Shell関数の戻り値を変数に保存後、EnumWindowsを使用して 開いたファイルのハンドルを取得しています。取得したハンドルでアプリケーションを閉じたいのです。実行するとShell関数から取得したProcessIDとEnumWindows のProcessIDが一致しません。Shell関数からのProcessIDの取得がまずいのでしょうか。追加質問になりますが、よろしくお願いします。 Private Sub Command1_Click() Dim file_full As String Find_Process = 0 Find_WinWnd = 0 file_full = "d:\abc.dwg" Find_Process = Shell("""" & Environ$("COMSPEC") & """ _ /C START """" """ & file_full & """", vbHide) MsgBox "アプリケーションを終了させます。" Call EnumWindows(AddressOf EnumWinProc, 0&) If (Find_WinWnd <> 0&) Then Call SendMessage(Find_WinWnd, WN_CLOSE, 0&, 0&) End If End Sub Public Function EnumWinProc(ByVal hwnd As Long, lParam As Long) _ As Boolean Dim lngTrd As Long Dim lngPrs As Long EnumWinProc = True If Not (GetParent(ByVal hwnd) = 0) Then GoTo PGMEND lngTrd = GetWindowThreadProcessId(hwnd, lngPrs) If lngPrs = Find_Process Then Find_WinWnd = hwnd EnumWinProc = False End If PGMEND: End Function
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.