PDA

Ver la Versión Completa : winExec() me produce un pantallazo negro


Matos
25-03-2011, 13:57:53
Buenas tardes.

Tengo el siguiente problema: usando la funcion winExec() y pasandole como prametro sw_hide para que no me muestre el proceso (lo que hago es ejecutar un fichero.bat cualquiera) me produce un pantallazo negro (a pantalla completa) y me pinta lo que hace el .bat, que solo lo veo si le doy a la tecla pause mientras esta la pantalla en negro.

lo que necesitaría es conseguir que no saliese ese pantallazo negro, o bien, si existe alguna otra forma de hacer lo mismo (llamar a un .bat) sin la funcion anterior o el createproccesss (que tambien me ocurre lo mismo)

muchas gracias por vuestra ayuda

Neftali [Germán.Estévez]
25-03-2011, 15:43:58
¿Ya has probado con otros parámetros de visualización eln la llamada?
SW_HIDE
SW_MINIMIZE
SW_SHOWMINIMIZED

Al menos para detectar si hay cambios.

También debes mirar las propiedades que hay definidas por defecto para una ventana MSDOS. Abre una pantalla de MSDOS y desde el menú de sistema hay un acceso a Porpiedades.
Ahí hay una una opción de "pantalla completa". Revisa que no lo estés aplicando esa configuración a todas las ventanas.

Matos
25-03-2011, 16:27:20
todo igual, he probado todas las opciones, incluidas la que muestran una ventana y ni siquiera se ve la ventana, lo que se ve es el pantallazo negro. en dos equipos iguales, en uno sale la pantalla negra y en otro no, la unica diferencia es una impresao hp instalada. ademas este problema me ha pasado ya en varios equipos en la misma situacion.

Neftali [Germán.Estévez]
25-03-2011, 16:59:20
Si quieres, prepara un pequeño proyecto de ejemplo, con lo necesario para probarlo y lo subes.
Podremos probarlo, ver el código y comentarte algo más.

Matos
25-03-2011, 17:18:24
aqui tienes el ejemplo, a ver si me podeís ayudar. muchas gracias

Neftali [Germán.Estévez]
25-03-2011, 17:37:07
Lo he probado y no le veo nada raro.
No veo ninguna ventana negra y hace la copia perfectamente.

Compilado con D6 y ejecutando en un XP.

AÑADO: Ejecutado en una máquina con Windows 7, funciona y no se ve ninguna pantalla negra.

:confused::confused::confused:

Matos
25-03-2011, 17:43:10
claro, ami tambien me funciona perfectamente, pero en un otro equipo que tengo aqui, si me sale el pantallazo negro.... y ya me ha sucedido con otros equipos

el equipo donde falla tiene windows xp, los anteiores (2 o 3 casos) no los recuerdo...

Matos
25-03-2011, 17:44:11
¿Habría alguna forma de hacer lo mismo sin usar winexec o createproccess?

ecfisa
25-03-2011, 18:22:39
Hola Matos.

Salvo un error que me genera Delphi 7 y que soluciono eliminando la línea "Application.MainFormOnTaskbar := True;", el código ejecuta correctamente tál como a Neftalí.

La prueba la hice con Delphi 7 y S.O. Vista.

Un saludo.

Matos
28-03-2011, 10:22:20
se os ocurre alguna otra forma de hacerlo??, el problema es que con ese código, lo que realmente lanzo son comandos de opennsl para generar y evaluar claves de certificados... y de momento no he encontrado otra forma de usar opennssl en delphi