Call CreateProcess without new window.

First, sry for my english, i don't speak many english.

I have this problem:

I need to call a comand(open an executable .jar) and exit from the program, but, the window called don't close until these executable jar end's ...

see on image:

http://i67.photobucket.com/albums/h319/ryryel/call.jpg

the code used:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
int main()
{
    STARTUPINFO si;
    PROCESS_INFORMATION p;
    //
    // dica: muitas estruturas no Windows têm uma variável membro chamada
    // cb ou cbSize. Esse membro deve ser preenchido com o sizeof()
    // da estrutura ANTES de chamar a função. Se você não fizer isso a função
    // retornará um erro. Esse é um erro comum de iniciantes (eu apanhei muito...)
    //
    ZeroMemory(&si, sizeof(si));
    si.cb = sizeof(si);
    si.wShowWindow = ShowWindow(GetWindow(NULL, SW_HIDE), SW_HIDE);
    ZeroMemory(&p, sizeof(p));
    //
    // Abrindo o Bloco de Notas
    //
    if( ! CreateProcess( NULL,   // Sem módulo
        "java -jar C:\\ComRead.jar", // linha de comando para o executável
        NULL,
        NULL,
        FALSE,            // O processo criado não herdará os handles
        0,
        NULL,
        NULL,
        &si,              // Ponteiro para STARTUPINFO
        &p )             // Ponteiro para PROCESS_INFORMATION
    )
    {
        printf( "Erro em CreateProcess: 0x%X", GetLastError() );
        return 0;;
    }
    // O CreateProcess preencheu as estruturas e colocou handles nelas
    // como não vamos usar os handles, precisamos fechá-los...
    CloseHandle(p.hProcess);
    CloseHandle(p.hThread);
    return 0;
}


Basically, i need only call this comand on SO without window command:

java -jar C:\\ComRead.jar

tks :-(
Set the wShowWindow member of the STARTUPINFO structure to SW_HIDE. No need for all that ShowWindow(GetWindow()) mess.

And you also need to set the dwFlags member to STARTF_USESHOWWINDOW.
Last edited on
Topic archived. No new replies allowed.