Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-12-2005
Avatar de Durbed
Durbed Durbed is offline
Miembro
 
Registrado: ago 2004
Posts: 166
Poder: 20
Durbed Va por buen camino
Question ShellExecute y "c:\WINDOWS\system32\telephon.cpl"

Hola, quiero abrir las opciones de marcado de windows, lo estoy intentando mediante un shellexecute, lo raro es que si lo pongo en el ejecutar de windows (inicio->ejecutar->C:\Windows\System32\telephone.cpl), lo abre sin problemas. El shellexecute que utilizo es este:
Código Delphi [-]
ShellExecute(Handle, 'open', 'C:\Windows\System32\telephone.cpl', nil, nil, SW_SHOW);

Un saludo y gracias.
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5
Responder Con Cita
  #2  
Antiguo 20-12-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Probá algo como:
Código Delphi [-]
WinExec('rundll32.exe shell32.dll,Control_RunDLL "C:\Windows\System32\telephone.cpl"', SW_SHOW);

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 20-12-2005
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 20
OSKR Va por buen camino
Exclamation

Chiezen!!!!, disculpa q me entrometa en este hilo sin aportar Federico, puedes decirme algo respecto al .cpl y porq se ha de correr como parámetro del kernel (o mejor dicho.....parte del kernel)?
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).
Responder Con Cita
  #4  
Antiguo 20-12-2005
Avatar de Durbed
Durbed Durbed is offline
Miembro
 
Registrado: ago 2004
Posts: 166
Poder: 20
Durbed Va por buen camino
No me ha funcionado, pero tampoco me ha dado error, simplemente no ha pasado nada.

Gracias.
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5
Responder Con Cita
  #5  
Antiguo 20-12-2005
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,


Cita:
Empezado por Durbed
No me ha funcionado, pero tampoco me ha dado error, simplemente no ha pasado nada.
Lo que pasa es que no estás usando la ruta correcta: no es "telephone.cpl", sino "telephon.cpl". Si lo miras verás que el archivo "telephone.cpl" no existe en el directorio "System32" y sí existe "telephon.cpl".
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 20-12-2005
Avatar de Durbed
Durbed Durbed is offline
Miembro
 
Registrado: ago 2004
Posts: 166
Poder: 20
Durbed Va por buen camino
Muchas gracias a los dos, ya funciona perfectamente, esa es la tipica chorrada que te tiene liado media tarde XD

Un saludo y gracias de nuevo
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5
Responder Con Cita
  #7  
Antiguo 20-12-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Empezado por OSKR
Chiezen!!!!, disculpa q me entrometa en este hilo sin aportar Federico, puedes decirme algo respecto al .cpl y porq se ha de correr como parámetro del kernel (o mejor dicho.....parte del kernel)?
¿Cómo parámetro del Kernel?.... Todos los procesos son objetos del Kernel!
RunDll o RunDll32 simplemente sirven para llamar a funciones exportadas por DLL´s:
Código:
RUNDLL.EXE Archivo.dll,Función Parámetro1, Parámetro2, Parámetro3
Y en este caso estamos llamando a Control_RunDLL de la librería Shell32.dll, cosa que podríamos escribir 100% en Delphi:
Código Delphi [-]
{ Declaración }
procedure Control_RunDLL(hWnd: HWND; hInst: HINST; cmd: LPCSTR; nCmdShow: DWORD); stdcall; external 'Shell32.dll';
...
{ Implementación }
begin
  Control_RunDLL(Handle, hInstance, 'telephon.cpl', SW_SHOW);
end;

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #8  
Antiguo 20-12-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
La escribí y no la voy a dejar de subir
Código Delphi [-]
type
  TControl_RunDLL = procedure(hWnd: HWND; hInst: HINST; cmd: LPCSTR; nCmdShow: DWORD); stdcall;
var
  hMod: HMODULE;
  Control_RunDLL: TControl_RunDll;
begin
  hMod := LoadLibrary('Shell32.dll');
  if hMod > 0 then
    try
      @Control_RunDLL := GetProcAddress(hMod, 'Control_RunDLL');
      if @Control_RunDLL <> nil then
        Control_RunDLL(Handle, hInstance, 'telephon.cpl', SW_SHOW);
    finally
      FreeLibrary(hMod);
    end
  else
    RaiseLastOsError;
end;

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
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


La franja horaria es GMT +2. Ahora son las 14:28:36.


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