| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Cuato Cdt


Registrado: 31 Ene 2004Mensajes: 17Ubicación: Buenos Aires
|
Publicado: Mie 06 Jul, 2005 5:30 pm Asunto: Nuevo tipo en "menú Nuevo". |
|
|
Compañeros:
He logrado asociar un nuevo tipo de archivo a mi aplicación mediante la escritura del registro de Windows, de esta manera, al hacer doble clic en un archivo de mi tipo se abre mi programa y se cargan en él los datos.
Lo único que me faltaría es lograr que al estar en el Explorador de Windows, presionar el botón derecho del mouse para que se despliegue el menú e ir a la opción "Nuevo", aparezca allí mi tipo de archivo. Si me pueden orientar sobre cómo debería proceder se los agradecería de verdad.
No sé si esto se ha resuelto antes, ya que no pude encontrar ningún post sobre este tema.
Muchas gracias de antemano. |
|
| Volver arriba |
|
 |
Crandel Lt


Registrado: 31 May 2005Mensajes: 94Ubicación: Argentina
|
Publicado: Mie 06 Jul, 2005 6:25 pm Asunto: |
|
|
Nunca lo hice, pero aca te tiro una ayuda para que lo investigues. Despues nos cuentas la solución.
En el registro hay una clave llamanda ShellNew
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew
También fijate introduciendo un acceso en la carpeta:
Windows\ShellNew
Espero que te de una pista para empesar
Suerte _________________ Crandel
"hay 10 tipos de personas, las que ven en binario y las que no"
Angel Zeitoune - Artículo: Generación de eventos en C++Builder |
|
| Volver arriba |
|
 |
vrodriguez Lt

Registrado: 01 Abr 2005Mensajes: 77
|
Publicado: Mie 06 Jul, 2005 6:27 pm Asunto: |
|
|
Hola Cuato,
Ya que lograstes algo, podrias publicarlo primero...
COMPARTIR ES BUENO...
att
vrodriguez |
|
| Volver arriba |
|
 |
Cuato Cdt


Registrado: 31 Ene 2004Mensajes: 17Ubicación: Buenos Aires
|
Publicado: Mie 06 Jul, 2005 8:36 pm Asunto: |
|
|
Crandel: esa clave en mi registro no está. Hasta
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ está, pero ShellNew no.
Tampoco me funcionó agregando un acceso directo en Windows\ShellNew.
Voy a seguir investigando...
Vrodriguez: simplemente hice lo que está explicado en este foro:
__fastcall TFormPRI::TFormPRI(TComponent* Owner) : TForm(Owner)
{
//Registrar una extensión.
TRegistry* ThisReg = new TRegistry();
ThisReg->RootKey = HKEY_CLASSES_ROOT;
ThisReg->OpenKey(".tex",true);
ThisReg->WriteString("","Mi programa");
ThisReg->CloseKey();
ThisReg->OpenKey("Mi programa",true);
ThisReg->WriteString("","Mi tipo de archivo");
ThisReg->CloseKey();
//Comando de menú Abrir.
ThisReg->OpenKey("Mi programa",true);
ThisReg->OpenKey("shell", true);
ThisReg->WriteString("","open");
ThisReg->OpenKey("open",true);
ThisReg->WriteString("","&Abrir");
ThisReg->OpenKey("command",true);
ThisReg->WriteString("",ParamStr(0)+" \"\%1\"");
ThisReg->CloseKey();
//Ícono para los ficheros.
ThisReg->OpenKey("Mi programa",true);
ThisReg->OpenKey("DefaultIcon",true);
ThisReg->WriteString("",ParamStr(0)+",1");
delete ThisReg;
//Cargar el fichero abierto con doble clic.
if(ParamCount()>=1)
{
Memo1->Lines->LoadFromFile(ParamStr(1));
//...
}
}
Muchas gracias a los dos. Espero más respuestas. Saludos. |
|
| Volver arriba |
|
 |
vrodriguez Lt

Registrado: 01 Abr 2005Mensajes: 77
|
Publicado: Mie 06 Jul, 2005 9:28 pm Asunto: |
|
|
| Gracias Cuato.... |
|
| Volver arriba |
|
 |
moniquita Invitado
|
Publicado: Vie 08 Jul, 2005 4:37 am Asunto: |
|
|
| yo tengo la mimsa duda. lo sacaste cuato? alguien sabe como es??? |
|
| Volver arriba |
|
 |
-Spencer- Capt

Registrado: 03 Mar 2003Mensajes: 160Ubicación: Armenia - Colombia
|
Publicado: Vie 08 Jul, 2005 6:15 am Asunto: |
|
|
Hola...
No se, buscando acerca de este tema, encontre algo de teoria que tal vez les pueda servir...
| Cita: |
When you right-click on your desktop or other selected applications there is a New sub-menu which contains a list a default templates. This list can be modified to include only the templates you want.
Each template exists in the [HKEY_CLASSES_ROOT] hive associated with a file extension. Whether it is visible or not in the New menu is controlled by whether the related entry has a sub-key called 'ShellNew'.
For example on the New menu there is usually an entry for "Text Document". This is visible because of the key: [HKEY_CLASSES_ROOT\.txt\ShellNew] If you were to rename the key so it no longer had a sub-key called 'ShellNew' by changing it to [HKEY_CLASSES_ROOT\.txt\ShellNewOld] it would disappear from the New menu.
Open Regedit, and using the Find function (Ctrl+F) search for any values of 'ShellNew'.
Several should be found under the [HKEY_CLASSES_ROOT] hive, if you do not want them to be displayed rename 'ShellNew' to 'ShellNewOld'.
Changes should take effect immediately.
|
Si algo, lo compartes...
Espero que le sea de ayuda... _________________ "Cállate, o di algo mejor que el silencio" |
|
| Volver arriba |
|
 |
moniquita Invitado
|
Publicado: Vie 08 Jul, 2005 9:20 pm Asunto: |
|
|
gracias spencer! fucniona perfecto!
solo puse
| Código: |
HKEY_CLASSES_ROOT\.mld\ShellNew
|
y dentro de esa clave una cadena
|
|
| Volver arriba |
|
 |
-Spencer- Capt

Registrado: 03 Mar 2003Mensajes: 160Ubicación: Armenia - Colombia
|
Publicado: Sab 09 Jul, 2005 3:22 am Asunto: |
|
|
oye, como hago para que en el menu nuevo... aparezca el texto que yo quiera.
Por ejemplo hay una opcion que dice "documento de texto" en el menu nuevo. Como hago para hacer esto.
Gracias
Espero que me haya entender... _________________ "Cállate, o di algo mejor que el silencio" |
|
| Volver arriba |
|
 |
Cuato Cdt


Registrado: 31 Ene 2004Mensajes: 17Ubicación: Buenos Aires
|
Publicado: Sab 09 Jul, 2005 1:04 pm Asunto: |
|
|
Lo que explicaron funciona bien. ¡Gracias a todos nuevamente!. De verdad me ayudaron mucho.
Lo que te aparece en el menú es lo que elegís como descripción del tipo de archivo al momento de registrar la extensión.
Por ejemplo con esto muestra: Nuevo -> "Mi tipo de archivo".
__fastcall TFormPRI::TFormPRI(TComponent* Owner) : TForm(Owner)
{
//Registrar una extensión.
TRegistry* ThisReg = new TRegistry();
ThisReg->RootKey = HKEY_CLASSES_ROOT;
ThisReg->OpenKey(".tex",true);
ThisReg->WriteString("","Mi programa");
ThisReg->CloseKey();
ThisReg->OpenKey("Mi programa",true);
ThisReg->WriteString("","Mi tipo de archivo");
ThisReg->CloseKey();
//...
¿Era eso?.
Si además querés que el nuevo archivo creado de esta manera contenga un texto o un tipo de datos predeterminado, colocas el archivo genérico en C:\Windows\Shellnew como por ejemplo "Plantilla.tex"
Y en el registro: HKEY_CLASSES_ROOT\.tex\ShellNew, la cadena: FileName "Plantilla.tex".
¡Saludos!. |
|
| Volver arriba |
|
 |
-Spencer- Capt

Registrado: 03 Mar 2003Mensajes: 160Ubicación: Armenia - Colombia
|
Publicado: Dom 10 Jul, 2005 2:19 am Asunto: |
|
|
Hola
Gracias por la ayuda, me ha servido de mucho.
Ahora, quisiera saber algo. si en vez de asociar un archivo en el menu nuevo, lo que quisiera colocar fuese un nombre para que cada vez que se elija este me llame un archivo especifico y pueda pasarle un parametro, como lo haria?
Gracias _________________ "Cállate, o di algo mejor que el silencio" |
|
| Volver arriba |
|
 |
Cuato Cdt


Registrado: 31 Ene 2004Mensajes: 17Ubicación: Buenos Aires
|
Publicado: Lun 11 Jul, 2005 4:03 pm Asunto: |
|
|
La verdad es que no sé si se puede.
Requerirás de la ayuda de alguno de los expertos que hay en el foro...
¡Salute!. |
|
| Volver arriba |
|
 |
|