皆様お世話になります。
外部EXE(AとB)を、Aを起動→Aを終了→Bを起動 という風にしたいのですが、
Execを使用すると、Aの終了を待たずにBが起動してしまいます。
何かやり方は有りますでしょうか? 簡単に。
Exec "A.exe"
Exec "B.exe"
END
プログラムの終了を待ってから次のプログラムを起動する方法
以下のようなコードで終了を待ってから次のアプリケーションを実行します。
例ではメモ帳を実行後、終了を待って電卓を実行します。
そのままだとアプリケーションが固まってしまうのでスレッドで実行なりしてください。
例ではメモ帳を実行後、終了を待って電卓を実行します。
そのままだとアプリケーションが固まってしまうのでスレッドで実行なりしてください。
[ここをクリックすると内容が表示されます]
コード: 全て選択
Declare Function ShellExecuteEx Lib "shell32" Alias "ShellExecuteExA" ( _
ByRef lpExecInfo As SHELLEXECUTEINFO _
) As Long
Type SHELLEXECUTEINFO
cbSize As DWord
fMask As DWord
hWnd As HWND
lpVerb As BytePtr
lpFile As BytePtr
lpParameters As BytePtr
lpDirectory As BytePtr
nShow As Long
hInstApp As HINSTANCE
lpIDList As VoidPtr
lpClass As BytePtr
hkeyClass As HKEY
dwHotKey As DWord
hIcon As HICON
hProcess As HANDLE
End Type
Const SEE_MASK_NOCLOSEPROCESS = &H40
Dim sei As SHELLEXECUTEINFO
ZeroMemory(VarPtr(sei),Len(sei))
sei.cbSize=Len(sei)
sei.fMask=SEE_MASK_NOCLOSEPROCESS
sei.lpFile="notepad"
sei.nShow=SW_SHOWNORMAL
ShellExecuteEx(sei)'メモ帳実行
WaitForSingleObject(sei.hProcess,INFINITE)'終了待ち
sei.lpFile="calc"
ShellExecuteEx(sei)'電卓実行