2重起動の時に、参考URLの処理をやったらいいだけデシ
もちろん、標準モジュールから立ち上がるようにするベシ
'標準モジュール
Option Explicit
Public Const CAP_FORM As String = "ぱけらった"
Public Const CAP_BTN As String = "ほげほげ"
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_COMMAND = &H111
Private Const BN_CLICKED = &H0&
Sub Main()
If App.PrevInstance Then
Call func二重起動
End
End If
Form1.Show
End Sub
Sub func二重起動()
Dim lngWindWnd As Long
Dim lngBtnWnd As Long
lngWindWnd = FindWindow(vbNullString, CAP_FORM)
lngBtnWnd = FindWindowEx(lngWindWnd, 0, vbNullString, CAP_BTN)
Call PostMessage(lngWindWnd, WM_COMMAND, BN_CLICKED, ByVal lngBtnWnd)
End Sub
'フォームモジュール
Option Explicit
Private Sub Command1_Click()
MsgBox "フォームのボタンが押下された"
End Sub
Private Sub Form_Load()
Me.Caption = CAP_FORM
Me.Command1.Caption = CAP_BTN
Me.Command1.Visible = False
End Sub
お礼
App.PrevInstanceをつかって実現できればなぁと思っていたのですが、こうすればよかったんですね! ありがとうございました!おかげで中間EXEをかます必要がなくなりました。