Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Comando "Ejecutar" de Windows XP, desde Delphi (https://www.clubdelphi.com/foros/showthread.php?t=59250)

BuRtOn 19-08-2008 00:27:57

Comando "Ejecutar" de Windows XP, desde Delphi
 
Saludos amigos, de neuvo yo molestando, jejejeje, bueno es que me preguntaba como puedo hacer lo siguiente:


necesito que delphi me ejecute lo siguiente

Inicio ---> Ejecutar ---> "Calc.exe" ---> Aceptar ó Cancelar.


quiero que me ejecute esa secuencia, se por ejemplo como ejecutar la calculadora que esta en windows, en la carpeta system 32 es algo as:

Código Delphi [-]
WinExec(PChar('C:\WINDOWS\system32\calc.exe'),SW_SHOWNORMAL);

pero no se como es para encontrar el ejecutar, y que el mismo programa me ejecute el comando o la frase a ejecutar, osea que no sea calc.exe, si no que me ejecute por ejemplo msconfig......


Bueno si alguien sabe algo por favor se lo agardezco....

pcicom 19-08-2008 18:04:32

Si el programa que quieres ejecutar esta dentro del PATH de Windows, entonces no hay necesidad que le pases la ruta del programa,

Por ejemplo:

calculdadora -> c:\windows\calc.exe

WinExec(PChar('alc.exe'),SW_SHOWNORMAL);

Block de Notas -> c:\windows\notepad.exe


WinExec(PChar('alc.exe'),SW_SHOWNORMAL);

Tu Applicacion

WinExec(PChar('C:\Archivos de Programa\MyAplicacion\myapp.exe'),SW_SHOWNORMAL);


Saludos...

BuRtOn 19-08-2008 18:20:21

Saludos, ok gracias, esa parte no la sabia, pense que habia que dar toda la ruta, pero la pregunta se rige a estos parametros:

1. donde esta el "Ejecutar", en la carpeta de windows ?, que nombre recive en esa carpeta...por ejemplo la calculadora es calc.exe, y Ejecutar es??

2. Hacer que se ejecute y pasarle un parametro string, como lo dije en el ejemplo anterior.....


[msconfig] = Cadena oó parametro string a pasarle al Ejecutar

Inicio ---> ejecutar ---> msconfig ----> Aceptar - Cancelar...

eso es lo que quiero hacer y que me ejecute msconfig, con solo darle click a un boton, sin necesidad de ponerce a buscar el Ejecutar y escribirle el parametro......Gracias saludos.

pcicom 19-08-2008 18:32:03

ejecutar.exe <- no existe, a menos que tu hagas un programa que se llame asi,

El Sistema operativo es el encargado de capturar los comandos o llamadas que se hacen al mismo sistema operativo, de tal manera que cuando intentas llamar a un programa .exe .com .bat ... lo primero que trata es de buscarlo en la ruta definida de windows PATH, si se encuentra en la ruta trata de ejecutarlo, pero si no es una applicacion reconocida como un programa, entonces te manda el mensaje de que no es una applicacino valida.

En algunos casos Windows permite asociar extensiones de archivos a uno o varios programas de tal manera de que cuando lo llamas automaticamente se abre con el programa asociado..

ejemplo:

C:\>x.txt <-- automaticamente abre el notepad y te muestra el contenido de x.txt..


WinExec te permite hacer una llamada al programa que le pases, por ejemplo sy le pasas el archivo .txt posiblemente te abre el notepad y te lo muestre..

BuRtOn 19-08-2008 18:35:27

Ha veo,. entonces coo haria para que se active el "Ejecutar", es que necesito ejecutar ese comando como te dije anteriormente, msconfig en ejecutar, y listo, pero como lo hago, esa es mi gran pregunta, yo se como se hace para ejecutar los programas normales, pero necesito ese especialmente, y no encuentro como....Gracias...









Saludos.

BlueSteel 19-08-2008 18:54:16

Hola

intentastes con Msconfig.exe ???

Dicho programa se aloja en diferentes carpetas tales como

C:\Windows\ServicePackFiles\i386
o
C:\Windows\pchealth\helpctr\binaries

Código Delphi [-]
WinExec(PChar('msconfig.exe'),SW_SHOWNORMAL);

si utilizas en buscar y pones msconfig.exe te dará la ruta exacta

Salu2:p:D

BuRtOn 20-08-2008 00:16:31

Bueno BlueSteel, solo ponia un ejemplo, pero en si lo que necesito es ejecutar esta cadena de string:

[FONT='Trebuchet MS','sans-serif']RunDll32 advpack.dll,LaunchINFSection %windir%\INF\msmsgs.inf,BLC.Remove[/font]


entonces que todo quede programando en un boton...que al darle click, me acciones el comando "Ejecutar" y me coloque a que ejecute esto:
[FONT='Trebuchet MS','sans-serif']RunDll32 advpack.dll,LaunchINFSection %windir%\INF\msmsgs.inf,BLC.Remove , y para que se ejecute esa cadena sale un aceptar y un cancelar, y el programa tiene que seleccionar el aceptar.....es identico cuando haces el proceso manualmente, Inicio ---> Ejecutar, y le doy click en aceptar...eso es lo que necesito..[/font]

[FONT='Trebuchet MS','sans-serif'][/font]

[FONT='Trebuchet MS','sans-serif']Bueno creo que eso es todo...espero que me colaboren...es que no he encontrado lo que quiero hacer....[/font]

BuRtOn 22-08-2008 07:53:47

Saludos, Dios aun no puedo, alguien me pùede colaborar...parece que este problema no va tener solucion...

dec 22-08-2008 08:10:54

Hola,

Sin complicarte mucho la vida, podrías hacer algo así, si no me equivoco:

Código Delphi [-]
uses
  ShellApi;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(0, 'open', 'RunDll32.exe',
   'advpack.dll,LaunchINFSection %windir%\INF\msmsgs.inf,BLC.Remove', 
    nil, SW_NORMAL);
end;

BuRtOn 22-08-2008 08:23:18

Saludos Dec, ok no tenia ni idea que hacer, pero aun asi no me funciona....


trate de hacer una prueba mas secilla, y tampoco, algo asi:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(0,'open','RunDll32.exe','msconfig',nil, SW_NORMAL);
end;

Y nada....y mas con mi ejemplo que es el que necesito..

en fin, no se que mas intentar, gracias Dec..

dec 22-08-2008 08:32:05

Hola,

Se me ocurre preguntarte qué es lo que quieres hacer, exactamente: igual encontramos otra forma de hacerlo, que no sea la que hemos intentado.

BuRtOn 22-08-2008 08:39:15

Ok, en pocas palabras ahi un metodo para eliminar el msn que viene nativo con winxp...se necesitam estos 4 pasos:

1. Inicio
2. Ejecutar
3. escribir el siguiente codigo:

Código:

RunDll32 advpack.dll,LaunchINFSection %windir%\INF\msmsgs.inf,BLC.Remove
4. clic en aceptar

y quiero que esos 4 pasos queden resumidos en un solo clic de un boton...si me entiendes ???que no me toque hacer todo el procedimiento a mi...solo con un clic....y eso es lo que no se como hacerlo...y sabes que cuando le doy ejecutar tiene un boton de aceptar y otro de cancelar, como hago para que me clickee automaticamente el de aceptar o el de cancelar ???


ese es mi gran problema Dec.

cHackAll 22-08-2008 19:07:09

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
 WinExec('cmd /crundll32 advpack.dll,LaunchINFSection %windir%\inf\msmsgs.inf,blc.remove', SW_HIDE);
end;

BuRtOn 23-08-2008 03:44:59

Huy si me sirvio cHackAll, gracias amigo, solo que no entiendo muy bien el codigo, pues lso primeros comandos, como ejecutaste "Ejecutar ", es que me gusta aprender...Y de nuevo gracias.

cHackAll 23-08-2008 16:41:54

Cita:

Empezado por BuRtOn (Mensaje 308939)
Huy si me sirvio cHackAll, gracias amigo, solo que no entiendo muy bien el codigo, pues lso primeros comandos, como ejecutaste "Ejecutar ", es que me gusta aprender...Y de nuevo gracias.

En realidad no exite tal cosa de llamar al "ejecutar"... lo que fallaba en tus anteriores intentos es el uso de una variable de entorno %windir%, la cual no es reconocida implicitamente por las APIs encargadas de crear procesos nuevos. Para solucionar dicha eventualidad ejecuto el comando bajo una consola invisible, CMD se encargará de realizar el reemplazo de %windir% a la carpeta respectiva.

Saludos

BuRtOn 25-08-2008 17:07:15

Huy ya mas o mnenos te entiendo, pero entonces eso del %windir% indica que tiene que ser con el cmd ?, es que no se mucho de esto, pero me gustaria conocermas a fondo este tema..

otra pregunta, como haces cuando ejecutas algo, y te sale un aviso de acpetar o cancelar, donde va ese parametro para aceptar o cancelar ???, es algo que me pregunto y no se como hacerlo....Gracias cHackAll me fue util tu información.


La franja horaria es GMT +2. Ahora son las 10:49:40.

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