Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Establecer un programa para una extension (https://www.clubdelphi.com/foros/showthread.php?t=46854)

Khronos 11-08-2007 18:13:10

Establecer un programa para una extension
 
Hola tengo un pequeño problemilla y no sabia bien dondo ponerlo ya que no es una duda de lenguaje.
He hecho un reproductor de musica y video. La lista de reproduccion la guarda en un texto bajo la extension .phx. Lo que intento hacer es ponerle un icono propio para esa extension, tambien que al abrirlo se ejecute mi programa.

Se que hay que emplear el registro y concretamente la clave HKEY_CLASSES_ROOT pero no tengo ni idea de como hacerlo, se manejar el registro pero no se como hacer algo como esto.
Espero que puedan ayudarme.

Salu2

poliburro 11-08-2007 18:29:34

Una excelente guía para configurar el registro la puedes encontrar en

www.winguide.com

Suerte

cHackAll 12-08-2007 02:41:56

Código Delphi [-]
var
 hKey: Windows.HKEY;
 App: string;
begin
 App := '"'+ParamStr(0)+'" %*';
 RegCreateKey(HKEY_CLASSES_ROOT, '.abc\shell\open\command', hKey);
 RegSetValue(hKey, nil, REG_SZ, PChar(App), Length(App));
 RegCloseKey(hKey);
end;

Lo subrayado es la extensión manejada.

PD: No olvides procesar luego el ParamCount, y el vector ParamStr.

Suerte

Khronos 13-08-2007 15:24:22

Gracias cHackAll, funciona perfectamente y ya registre la extension .phx para que ejecute mi programa.
Pero no me funciona ParamStr y ParamCount.

Código Delphi [-]
procedure TFPlayer.FormCreate(Sender: TObject);
begin
If ParamCount>0 then begin
showmessage(Paramstr(1));
end;
end;

Me sale el mensaje en blanco. Lo unico que necesito obtener es la path del archivo que llamo a mi programa pero no me funciona.

Salu2

cHackAll 13-08-2007 16:21:19

Si es un solo parámetro te aconsejo cambiar la siguiente parte:

Código Delphi [-]
...
 
 App := '"'+ParamStr(0)+'" "%1"';

...

Edito: Si es la ruta lo que necesitas, no olvides tambien usar ExtractFilePath

Saludos

jhonny 13-08-2007 20:28:37

Cita:

Empezado por poliburro (Mensaje 222191)
Una excelente guía para configurar el registro la puedes encontrar en

www.winguide.com

Suerte

www.winguide.com muestra que el dominio esta disponible para la venta, supongo que mas bien hablas de http://www.pctools.com/guides/ o lo que es lo mismo www.winguide.net :)

Khronos 15-08-2007 22:47:16

Mil gracias cHackAll, va de perlas. Se solucionaba con esto:

Código Delphi [-]
 App := '"'+ParamStr(0)+'" "%1"';

Tengo otra duda, como podria asignar un icono a una extension?

cHackAll 16-08-2007 05:11:30

Cita:

Empezado por Khronos
...Tengo otra duda, como podria asignar un icono a una extension?

Me alegra que este andando bien tu proyecto; al asignarle a una extensión una determinada aplicación, la misma adquiere el icono que la aplicación tiene, caso contrario puedes crear una clave como ésta:

Código Delphi [-]
var
 hKey: Windows.HKEY;
 Icon: string;
begin
 Icon := '%SystemRoot%\System32\shell32.dll,3';
 RegCreateKey(HKEY_CLASSES_ROOT, '.abc\DefaultIcon', hKey);
 RegSetValue(hKey, nil, REG_SZ, PChar(App), Length(App));
 RegCloseKey(hKey);
end;

Donde el ,3 estaría definido por los recursos de la librería o aplicación. tambien puedes definirlo con un archivo Icon := 'c:\micono.ico' o el nombre de tu aplicación ,0 para que tenga exactamente el icono de tu aplicacion.

Saludos

Khronos 16-08-2007 22:13:59

No me acaba de funcionar, use este codigo:


Código Delphi [-]
var hKey: Windows.HKEY;
 Icon: string;
begin 
Icon := 'C:\Archivos de programa\Phoenix\ListPlayer.ico,3';
 RegCreateKey(HKEY_CLASSES_ROOT, '.phx\DefaultIcon', hKey); 
RegSetValue(hKey, nil, REG_SZ, PChar(Icon), Length(Icon)); 
RegCloseKey(hKey);
end;

Salu2

D-MO 16-08-2007 22:44:22

[FONT=verdana,geneva,lucida,'lucida grande',arial,helvetica,sans-serif]Usa esta línea:
[/font]
Código Delphi [-]
Icon := 'C:\Archivos de programa\Phoenix\ListPlayer.ico';

El ,3 al final era innecesario ya que estabas llamando al icono de una vez.

Saludos.

Khronos 17-08-2007 01:43:51

Ya lo habia probado sin el 3, pero le habia puesto comillas a la path por eso no me iba. Fallo tonto.
Muchas gracias, he solucionado el problema ahora me faltan los ultimos retoques al reproductor y pronto terminare la web para su descarga.


Salu2


La franja horaria es GMT +2. Ahora son las 07:30:15.

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