Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-06-2007
Avatar de jorgegetafe
jorgegetafe jorgegetafe is offline
Miembro
 
Registrado: dic 2006
Posts: 238
Poder: 18
jorgegetafe Va por buen camino
Ejecutar un .exe

Me gustaría hacer que al presionar un botón se ejecutase un programa de mi ordenador, es decir, un ejecutable (*.exe) del que se su ruta exacta. ¿Es posible? ¿cual es el código?

Muchas gracias.
Responder Con Cita
  #2  
Antiguo 05-06-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Busca WinExec o ShellExecute en los foros.

// Saludos
Responder Con Cita
  #3  
Antiguo 05-06-2007
Avatar de jorgegetafe
jorgegetafe jorgegetafe is offline
Miembro
 
Registrado: dic 2006
Posts: 238
Poder: 18
jorgegetafe Va por buen camino
gracias, saludos
Responder Con Cita
  #4  
Antiguo 05-06-2007
Avatar de jorgegetafe
jorgegetafe jorgegetafe is offline
Miembro
 
Registrado: dic 2006
Posts: 238
Poder: 18
jorgegetafe Va por buen camino
Vale ya se hacerlo:

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

Pero como sabe donde está el programa? acaso lo busca? no entiendo como lo hace...
Responder Con Cita
  #5  
Antiguo 05-06-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Windows tratará de localizar el programa en el directorio activo, en el del propio Windows, en "System" ó "System32", entre otros...

Pero, generalmente, indicamos la ruta completa del programa a ejecutar.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 05-06-2007
Avatar de jorgegetafe
jorgegetafe jorgegetafe is offline
Miembro
 
Registrado: dic 2006
Posts: 238
Poder: 18
jorgegetafe Va por buen camino
Y para ejecutar IE? no se donde está su ejecutable, no quiero poner una página en concreto sino la que tenga el usuario como "home"
Responder Con Cita
  #7  
Antiguo 05-06-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Prueba con esto:
Código Delphi [-]
ShellExecute(0,nil,'about:home',nil,nil,SW_SHOW);

Acuerdate de agregar ShellApi a las uses
Responder Con Cita
  #8  
Antiguo 05-06-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Cita:
Empezado por dec
Hola,

Windows tratará de localizar el programa en el directorio activo, en el del propio Windows, en "System" ó "System32", entre otros...

Pero, generalmente, indicamos la ruta completa del programa a ejecutar.
También en el registro se guardan las rutas de las aplicaciones, específicamente bajo la clave: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

Por ejemplo Internet Explorer tiene un alias específico bajo esta clave, por lo cual si hace un WinExec(PChar('IEXPLORE.EXE'), SW_SHOWNORMAL); te debería abrir sin problemas el IE con su página Home...


Saludos...

Última edición por maeyanes fecha: 05-06-2007 a las 22:33:44.
Responder Con Cita
  #9  
Antiguo 05-06-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Una opción:

Código Delphi [-]
ShellExecute(0, 'open', 'iexplore.exe', nil, nil, SW_SHOW);

Otra opción (la aprendí hoy del compañero cHackAll )

Código Delphi [-]
var
  IE: OleVariant;

begin
  IE := ComObj.CreateOleObject('InternetExplorer.Application');
  IE.GoHome;
  IE.Visible := true;
end;

// Saludos
Responder Con Cita
  #10  
Antiguo 05-06-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Bueeeeno, ¿se puede saber por qué pasan "horas" y nadie contesta y cuando lo hago se me adelantan?



// Saludos
Responder Con Cita
  #11  
Antiguo 05-06-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Cita:
Empezado por roman
Bueeeeno, ¿se puede saber por qué pasan "horas" y nadie contesta y cuando lo hago se me adelantan?



// Saludos
Bueno, en algún momento te tenía que pasar lo que nos ha pasado a otros con respecto a ti...
Responder Con Cita
  #12  
Antiguo 05-06-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Está bueno, vale para tí.

seoane, ¿tú que justificación das?

// Saludos
Responder Con Cita
  #13  
Antiguo 05-06-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Pero no se quejara, ya le dimos 4 maneras de hacerlo. Y si me apuras le saco alguna mas
Responder Con Cita
  #14  
Antiguo 05-06-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por roman
seoane, ¿tú que justificación das?
Fue a hablar el que siempre me pisa las respuestas
Responder Con Cita
  #15  
Antiguo 05-06-2007
Avatar de jorgegetafe
jorgegetafe jorgegetafe is offline
Miembro
 
Registrado: dic 2006
Posts: 238
Poder: 18
jorgegetafe Va por buen camino
Muchas gracias a todos, me va de lujo ;-) esto tiene bastante utilidad.
Responder Con Cita
  #16  
Antiguo 05-06-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Y lo prometido es deuda, hay va otra forma de hacerlo

Esta función devuelve la ruta del navegador predeterminado:
Código Delphi [-]
uses Registry;

function Navegador: string;
var
  Cliente: String;
begin
  Result:= '';
  with TRegistry.Create do
  try
    RootKey:= HKEY_LOCAL_MACHINE;
    Cliente:= '';
    if OpenKey('\SOFTWARE\Clients\StartMenuInternet' ,FALSE) then
    begin
      Cliente:= ReadString('');
      CloseKey;
    end;
    if OpenKey('\SOFTWARE\Clients\StartMenuInternet\' + Cliente + '\shell\open\command' ,FALSE) then
    begin
      Result:= ReadString('');
      CloseKey;
    end;
  finally
    Free;
  end;
end;
Responder Con Cita
  #17  
Antiguo 05-06-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Yo voto por esta última. Es la que más respeta la desición del usuario.

// Saludos
Responder Con Cita
  #18  
Antiguo 05-06-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
seoane,

el segundo if, ¿no vendría mejor anidarlo en el primero?

// Saludos
Responder Con Cita
  #19  
Antiguo 06-06-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por roman
seoane, el segundo if, ¿no vendría mejor anidarlo en el primero?
Por poder se puede ...

Código Delphi [-]
uses Registry;

function Navegador: string;
var
  Cliente: String;
begin
  Result:= '';
  with TRegistry.Create do
  try
    RootKey:= HKEY_LOCAL_MACHINE;
    if OpenKey('\SOFTWARE\Clients\StartMenuInternet' ,FALSE) then
    begin
      Cliente:= ReadString('');
      CloseKey;
      if OpenKey('\SOFTWARE\Clients\StartMenuInternet\' + Cliente + '\shell\open\command' ,FALSE) then
      begin
        Result:= ReadString('');
        CloseKey;
      end;
    end;    
  finally
    Free;
  end;
end;

¿mejor?
Responder Con Cita
  #20  
Antiguo 06-06-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Yo "nomás" decía. Porque si el primer condicional falla, como que el segundo ya venía sobrando

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ejecutar .bat Maibok Conexión con bases de datos 5 29-10-2007 19:45:38
Ejecutar un cmd.exe en C#. REHome .NET 0 05-06-2007 21:48:27
Ejecutar Dll 3XEMIK3 Impresión 1 23-01-2006 16:56:19
Ejecutar un .EXE con una .GDB Gustavo Gowdak Conexión con bases de datos 1 17-12-2004 09:42:37
Ejecutar asp altp Internet 3 31-05-2004 19:28:32


La franja horaria es GMT +2. Ahora son las 21:29:48.


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
Copyright 1996-2007 Club Delphi