Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   winExec() me produce un pantallazo negro (https://www.clubdelphi.com/foros/showthread.php?t=73012)

Matos 25-03-2011 13:57:53

winExec() me produce un pantallazo negro
 
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

1 Archivos Adjunto(s)
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


La franja horaria es GMT +2. Ahora son las 02:18:16.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi