abを初めて5日目の初心者です。ハンドルやら構造体やらまるっきり理解できていないで質問させていただきます。(^^;)
下記の様に見よう見まねでコーディングしましたが、exeを実行するとエラーとなります(CreateProcessで0が帰ってきてしまいます)。ご迷惑をおかけしますが、よろしくお願い致します。m(_ _)m
---------------------------------------
Sub MainWnd_Destroy()
AutoFax2_DestroyObjects()
PostQuitMessage(0)
End Sub
Dim CmdLine As String
CmdLine = "explorer.exe d:\systemtool"
Dim si As STARTUPINFO
Dim pi As PROCESS_INFORMATION
dim retval as dword
retval=CreateProcess(0, StrPtr(CmdLine), ByVal 0, ByVal 0, FALSE,DETACHED_PROCESS, 0, 0, si, pi)
MessageBox(0, "retval="+Str$(retval)+"です。", "CreateProcess関数のテスト", MB_OK)
CloseHandle(pi.hProcess)
CloseHandle(pi.hThread)
---------------------------------------------
デバッグモードとexe実行で動作が違うんですが...
MainWnd_Destroy関数を抜けた下の部分はいつ実行されるのでしょうか?
MainWnd_Create関数内でSetTimer関数でサブ関数を呼び出し、サブ関数内でKilltimer関数を使ってからCreateProcess関数を使ってみてはどうでしょう?(下のコードは例です。試してません^^;)
MainWnd_Create関数内でSetTimer関数でサブ関数を呼び出し、サブ関数内でKilltimer関数を使ってからCreateProcess関数を使ってみてはどうでしょう?(下のコードは例です。試してません^^;)
コード: 全て選択
Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
SetTimer(hMainWnd,1,1,AddressOf(A) As DWord)
End Sub
Sub A()
KillTimer(hMainWnd,1)
Dim CmdLine As String
CmdLine = "explorer.exe d:\systemtool"
Dim si As STARTUPINFO
Dim pi As PROCESS_INFORMATION
dim retval as dword
retval=CreateProcess(0, StrPtr(CmdLine), ByVal 0, ByVal 0, FALSE,DETACHED_PROCESS, 0, 0, si, pi)
MessageBox(0, "retval="+Str$(retval)+"です。", "CreateProcess関数のテスト", MB_OK)
CloseHandle(pi.hProcess)
CloseHandle(pi.hThread)
End Sub
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
デバッグモードとexe実行で動作が違うんですが...
konisiさん
サポートありがとうございました。下まんまで完璧でした。
今日中に(後3時間もありませんが)何とか理解できるようリキを入れたいと思います。
感謝感激です。ありがとうございました。 m<(_ _)m
> MainWnd_Destroy関数を抜けた下の部分はいつ実行されるのでしょうか?
>
> MainWnd_Create関数内でSetTimer関数でサブ関数を呼び出し、サブ関数内でKilltimer関数を使ってからCreateProcess関数を使ってみてはどうでしょう?(下のコードは例です。試してません^^;)
>
>
サポートありがとうございました。下まんまで完璧でした。
今日中に(後3時間もありませんが)何とか理解できるようリキを入れたいと思います。
感謝感激です。ありがとうございました。 m<(_ _)m
> MainWnd_Destroy関数を抜けた下の部分はいつ実行されるのでしょうか?
>
> MainWnd_Create関数内でSetTimer関数でサブ関数を呼び出し、サブ関数内でKilltimer関数を使ってからCreateProcess関数を使ってみてはどうでしょう?(下のコードは例です。試してません^^;)
>
>
コード: 全て選択
> Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
> SetTimer(hMainWnd,1,1,AddressOf(A) As DWord)
> End Sub
>
> Sub A()
> KillTimer(hMainWnd,1)
>
> Dim CmdLine As String
> CmdLine = "explorer.exe d:\systemtool"
> Dim si As STARTUPINFO
> Dim pi As PROCESS_INFORMATION
> dim retval as dword
> retval=CreateProcess(0, StrPtr(CmdLine), ByVal 0, ByVal 0, FALSE,DETACHED_PROCESS, 0, 0, si, pi)
> MessageBox(0, "retval="+Str$(retval)+"です。", "CreateProcess関数のテスト", MB_OK)
> CloseHandle(pi.hProcess)
> CloseHandle(pi.hThread)
> End Sub