[リストへもどる]
一括表示

投稿時間:2003/04/21(Mon) 11:23
投稿者名:まな
Eメール:
URL :
タイトル:
別EXEを起動した時に・・・
どうもこんにちわっ!
別EXEを起動するプログラムの質問です。CreateProcessを使用したのですが、
どうもうまくプログラムが起動しません。CloseHandleをする前までは無事に
起動出来てました。このCloseHandleに間違いはないように思えるのですが、
間違っていたら教えてください!お願いします♪
    
    
    Dim udtProcInfo As PROCESS_INFORMATION
    Dim udtStartInfo As STARTUPINFO
    Dim lngret As Long

    udtStartInfo.cb = LenB(udtStartInfo)
    lngret = CreateProcess(vbNullString, "C:\DATA\Price.exe" _
                            & Space(1) & "13" & "," & name_id _
                            & "," & "1" & "," & "systemOracleDSN" _
                            & "," & "homeuser" & "," & "homeuser" _
                            , ByVal 0&, ByVal 0&, 1&, NORMAL_PRIORITY_CLASS _
                            , ByVal 0&, vbNullString, udtStartInfo, udtProcInfo)

    Call TerminateProcess(udtProcInfo.hProcess, 0&)
    Call CloseHandle(udtProcInfo.hThread)
    Call CloseHandle(udtProcInfo.hProcess)
    
    
    '-------  モジュール --------
Public Type PROCESS_INFORMATION
    hProcess As Long
    hThread As Long
    dwProcessId As Long
    dwThreadId As Long
End Type

Public Type STARTUPINFO
    cb As Long
    lpReserved As String
    lpDesktop As String
    lpTitle As String
    dwX As Long
    dwY As Long
    dwXSize As Long
    dwYSize As Long
    dwXCountChars As Long
    dwYCountChars As Long
    dwFillAttribute As Long
    dwFlags As Long
    wShowWindow As Integer
    cbReserved2 As Integer
    lpReserved2 As Long
    hStdInput As Long
    hStdOutput As Long
    hStdError As Long
End Type

Public Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, lpProcessAttributes As Any, lpThreadAttributes As Any, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long

Public Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwAccess As Long, ByVal fInherit As Integer, ByVal hObject As Long) As Long

Public Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long

Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Public Const SYNCHRONIZE = 1048576
Public Const NORMAL_PRIORITY_CLASS = &H20&
Public Const PROCESS_TERMINATE = &H1

投稿時間:2003/04/21(Mon) 22:49
投稿者名:南でたロン
Eメール:
URL :
タイトル:
Re: 別EXEを起動した時に・・・
> 別EXEを起動するプログラムの質問です。CreateProcessを使用したのですが、
> どうもうまくプログラムが起動しません。>    
>    
CreateProcess()の後に即TerminateProcess()だからではないですか?
TerminateProcess()をコメントアウトしいたらどうなりますか?

投稿時間:2003/04/22(Tue) 10:34
投稿者名:まな
Eメール:
URL :
タイトル:
お礼
直りました!
TerminateProcessが即座に動いていたようです。
ありがとうございました!