FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Hola a todos de nuevo;
Después de haber terminado mi aplicación y de estas funcionando bien se me ocurio ponerle una Barra de Progreso para su estetica, Pero no se como voy hacer para que cuando mi aplicación este cargando la aplicación a ejecutar se me baya llenando la barra de progreso... E encontrado algunos ejemplos pero en delphi si me los pudieran dar en C++ se los agradeseria mucho. [Saludos]... |
#2
|
||||
|
||||
El problema que vas a tener es saber en que parte del proceso te encuentras, es decir, saber por donde va Windows creando tu proceso y cuanto le falta...
No tienes forma de saberlo. Sin embargo la API WaitForInputIdle te permite esperar hasta que tu nuevo proceso se ha creado. Mientras puedes mostrar un cursor tipo reloj de arena o una barra de progreso infinita... Claro que este método no te servirá para lanzar procesos tipo consola sin cola de mensajes. Saludos. |
#3
|
|||
|
|||
Gracias escafandra;
Creo que me quedare con WaitForInputIdle Pero como puedo utilizar esto en mi aplicación DWORD WINAPI WaitForInputIdle( __in HANDLE hProcess, __in DWORD dwMilliseconds ); -El hProcess seria el Handele de la aplicación a Ejecutar no, -Pero dwMilliseconds que seria , Sino les fuera molestia me podrian explicar como utilizar este code de la API para cambiar mi cursor mientras cargue la aplicación, Muchas Gracias y disculpen la comodidad [Saludos]... |
#4
|
||||
|
||||
Es relativamente sencillo. La realidad es que el cursor ya cambia a IDC_APPSTARTING, pero podemos poner el que queramos.
Código:
DWORD WINAPI WaitForInputIdle( __in HANDLE hProcess, // Handle del proceso que estamos creando __in DWORD dwMilliseconds // Milisegundos de espera mínima para esta API ); Un ejemplo práctico siguiendo el código expuesto en el hilo: Código:
PROCESS_INFORMATION piProcInfo; STARTUPINFOW siStartInfo; // Set up members of STARTUPINFO structure. ZeroMemory(&siStartInfo, sizeof(STARTUPINFO)); siStartInfo.cb = sizeof(STARTUPINFO); HRESULT hRes = CreateProcessWithLogonW( Usuario, Dominio, Password, LOGON_WITH_PROFILE, NULL, App, // application name NULL, // creation flags NULL, // use parent's environment L"C:\\", // use parent's current directory &siStartInfo, // STARTUPINFO pointer &piProcInfo // recive PROCESS_INFORMATION CreateProcessWithLogonW(); ); // Cambiamos el cursor a un rejoj de arena.... ::SetCursor(LoadCursor(0, IDC_WAIT)); // Esperamos hasta que termine de crearse el nuevo proceso WaitForInputIdle(piProcInfo.hProcess, INFINITE); // Recuperamos el cursor estandar. ::SetCursor(LoadCursor(0, IDC_ARROW)); if(hRes){ CloseHandle(piProcInfo.hProcess); CloseHandle(piProcInfo.hThread); } |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
como ejecutar una instruccion | omy | Varios | 14 | 05-11-2007 21:25:59 |
como ejecutar archivos *.txt | kurono | Varios | 4 | 03-09-2007 06:04:43 |
como ejecutar archivo .msi | nosferatu177 | API de Windows | 7 | 08-06-2007 21:09:28 |
Ejecutar como.... | raf.rsr | API de Windows | 1 | 07-11-2006 23:28:57 |
ejecutar un .bat Como? | pruz | Varios | 4 | 02-12-2003 19:23:45 |
|