Ver Mensaje Individual
  #3  
Antiguo 14-03-2012
_cero_ _cero_ is offline
Miembro
 
Registrado: abr 2007
Posts: 147
Reputación: 18
_cero_ Va por buen camino
Thumbs up

Pfff eso se vuelve un poco complicado, porque con ShellExecute no se puede, pero si con CreateProcess, el problema de este ultimo es que no te ejecuta archivos directamente por lo que tendrás que buscar la ruta del programa que abre el archivo mediante registro de Windows u otro método, por lo demás te dejo código que hace lo que quieres, en este ejemplo ejecuto el programa de acrobat pasándole el archivo que quiero que habrá como parámetro y desplegando un mensaje después de que se cierra el acrobat.

Código:
    STARTUPINFO si; //Estructura de inicio de proceso
    PROCESS_INFORMATION pi; //Estructura que trae información del proceso
    //Limpiamos estructuras e inciamos
    SecureZeroMemory( &si, sizeof( si ) );
    SecureZeroMemory( &pi, sizeof( pi ) );
    si.cb = sizeof( si );

    if( CreateProcessW( //Crea el proceso igual que ShellExecute
        NULL,
        L"C:\\Program Files (x86)\\Adobe\\Acrobat 10.0\\Acrobat\\Acrobat.exe C:\\Preview.pdf",
        NULL, NULL, false, 0, NULL, NULL, &si, &pi ) ) {

        WaitForSingleObject( pi.hProcess, INFINITE ); //Espera a que el proceso se cierre
    }

    ShowMessage( "Este mensaje va después" );
Responder Con Cita