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 06-09-2004
NeWNeO NeWNeO is offline
Miembro
 
Registrado: ago 2003
Posts: 35
Poder: 0
NeWNeO Va por buen camino
Exclamation ¿RunDll32? Funciones extendidas para explorer.exe

Wolaps. Hace tiempo estoy trabajando en la integración de una aplicación dentro del entorno del explorer de windows.
Mi objetivo es integrarla lo máximo posible para que los usuarios interactuen como si un apartado más de windows se tratara.

Para iniciar mi camino empezé trabajando con claves del registro para añadir
un nuevo icono en "Mi PC" haciendo:

1-. Creando una nueva clave en HKEY_CLASSES_ROOT\CLSID
2-. Añadiendo el nombre de la clave a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\explorer\MyComputer\NameSpace
(Si alguien quiere la info completa que me lo diga)

Hasta aquí todo bien, el icono aparece en Mi PC, el comentario, las opciones en el botón derecho.. pero.. llegamos al problema: Abrir.

Basandome en el software de 1 dispositivo bluetooth (que hace justamente lo que yo quiero) encontré que este ejecuta esta línea de comando al "abrir":

rundll32.exe C:\WINDOWS\System32\BtWizard.dll,RunMyComputerShortcut

Carga ciertas funciones en memoria para que el explorer pueda interactuar con ellas, creo. Al abrir aparece en la ventana una serie de iconos y opciones del bluetooth.

El problema es que no se que acciones se encuentran en dicho dll del bluetooth para que sean cargadas por el explorer de windows. ¿Alguien me puede ayudar, o decirme alguna web donde puedan?

Gracias.
Responder Con Cita
  #2  
Antiguo 06-09-2004
Avatar de vic_ia
vic_ia vic_ia is offline
Miembro
 
Registrado: ene 2004
Posts: 238
Poder: 21
vic_ia Va por buen camino
Hola....
Cita:
Empezado por NeWNeO
Para iniciar mi camino empezé trabajando con claves del registro para añadir un nuevo icono en "Mi PC" haciendo:

1-. Creando una nueva clave en HKEY_CLASSES_ROOT\CLSID
2-. Añadiendo el nombre de la clave a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\explorer\MyComputer\NameSpace
(Si alguien quiere la info completa que me lo diga)
te agradeceria si mandaras o postearas esta información...

saludos...
Responder Con Cita
  #3  
Antiguo 07-09-2004
NeWNeO NeWNeO is offline
Miembro
 
Registrado: ago 2003
Posts: 35
Poder: 0
NeWNeO Va por buen camino
Añadir iconos a Mi PC y Escritorio

Antes que nada debemos obetener un GUID (Global Unic Identifier) para el registro. Usaremos la función CreateGUID para obtenerla..

Código Delphi [-]
var
s: string;
begin
 CreateGUID(GuidToString(s));
 edit1.caption(s);
end;

Una vez tenemos el GUID...

1º debemos crear un nuevo tipo en: (Nueva clave)
HKEY_CLASSES_ROOT\CLSID quedando así
HKEY_CLASSES_ROOT\CLSID\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
(sin x, las x serían el GUID generado con nuestra aplicación delphi)

En HKEY_CLASSES_ROOT\CLSID\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} :
Creamos un nuevo valor alfanumérico llamado "InfoTyp"
editamos los valores:
1) (Predeterminado) = "Nuestra Carpeta de Sistema"
2) InfoTip = "Esta es la descripción de la carpeta que aparecerá en Mi PC y en el escritorio

Creamos una subclave llamada DefaultIcon y editamos el predeterminado con la dirección al icono de nuestro invento

HKEY_CLASSES_ROOT\CLSID\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\DefaultIcon

Ahora debemos de crear 2 subclaves debajo de esta
HKEY_CLASSES_ROOT\CLSID\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\Shell
HKEY_CLASSES_ROOT\CLSID\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\ShellFolder

Nuevas subclaves debajo de "Shell" (estas serán las acciones que querramos dar a nuestra carpeta en el popup del botón derecho)

HKEY_CLASSES_ROOT\CLSID\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\Shell\Abrir\Command

Y Editamos el predeterminado con la acción que realizaría nuestro icono ej: "explorer.exe"
(arrancaría el explorador de windows)

Y así tantas acciones como queramos

Ahora en ShellFolder creamos un valor binario y lo editamos:
00 40 00 30 (esto impedirá que sea borrado o renombrado, 00 00 00 00 para poder editarlo)

Y por ultimo tomamos el GUID i nos dirigimos a
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current Version\Explorer\MyComputer\NameSpace y creamos una nueva clave (todo esto para el escritorio) con nuestro GUID quedando:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current Version\Explorer\MyComputer\NameSpace\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}

Y editando el predeterminado de esta clave le ponemos el nombre

lo mismo pero

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current Version\Explorer\Desktop\NameSpace\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}

para el escritorio

Resumen:

- HKEY_CLASSES_ROOT
-CLSID
-{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
-Shell
+DefaultIcon>Predetermiando
-Shell
-Abrir
Command>Predeterminado
-...
+ShellFolder>Atributes

- HKEY_LOCAL_MACHINE
-Software
-Microsoft
-Windows
-CurrentVersion
-Explorer
-MyComputer
-{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}>Predeterminado
-Desktop
-{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}>Predeterminado

Espero que me haya explicado bien y que sea de ayuda para todo el que lo necesite. Si hay alguna duda podeis preguntar aquí mismo

Y a ver si alguien puede resolver mi duda en la parte de \Shell\Abrir\Command
y me puede contestar a la pregunta del principio.
Gracias.
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 12:00:33.


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