PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → Off-topic → Associassion d'un fichier et d'un programme
Associassion d'un fichier et d'un programme
Iniciado por Philippe Pasquali, nov., 17 2006 7:33 AM - 4 respostas
Publicado em novembro, 17 2006 - 7:33 AM
bonjour
LanceAppliAssocie comme son nom l'indique lance l'application associé a
l'extension du fichier que l'on donne en paramétre
mais comment de façon "automatique~programmation" peut t on dire à windows
que l'extension ".titi" doit utiliser le programme
toto.exe
Merci d'avance pour toute idée même farfelue
Publicado em novembro, 17 2006 - 10:47 AM
Bonjour,

il suffit d'aller dans l'explorateur Windows, sélectionner le fichier que vous désirez ouvrir, double cliquez dessus, ou sélectionner l'option "selectionner le programme dans une liste", cliquez sur "toujours utiliser ce programme pour ouvrir ce type de fichier" et sur parcourir pour sélectionner le programme que vous désirez
Publicado em novembro, 17 2006 - 11:22 AM
Philippe Pasquali avait soumis l'idée :
bonjour
LanceAppliAssocie comme son nom l'indique lance l'application associé a
l'extension du fichier que l'on donne en paramétre
mais comment de façon "automatique~programmation" peut t on dire à windows
que l'extension ".titi" doit utiliser le programme
toto.exe
Merci d'avance pour toute idée même farfelue


salut,
il suffit de creer la clé comme cela:

HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\.titi\Shell\Open\command

dans command creer une vlauer chaine contenant "toto.exe"

normalement, cela marche !
@+++

--
[Bernard Vessiot]
34980 Saint Gély du Fesc
jci-53el@iximail.com
Publicado em novembro, 20 2006 - 9:51 AM
Bonjour
merci de ta réponse mais elle ne répond pas du tout à la question
j'ai bien précisé : ...de façon "automatique~programmation"....
car cette méthode je la connaît depuis fort longtemps

"Stefan Bouillennec" <stefan.bouillennec@logiwin.fr> a écrit dans le message
de news: 455d7621$1@news.pcsoft.fr...

Bonjour,

il suffit d'aller dans l'explorateur Windows, sélectionner le fichier que
vous désirez ouvrir, double cliquez dessus, ou sélectionner l'option
"selectionner le programme dans une liste", cliquez sur "toujours utiliser
ce programme pour ouvrir ce type de fichier" et sur parcourir pour
sélectionner le programme que vous désirez
Publicado em novembro, 20 2006 - 10:37 AM
Bonjour
c'était effectivement de ce coté qu'il fallait chercher Voici donc le
résultat
La seule chose que je n'ai pas testé c'est le cas d'un user non
administrateur....


FUNCTION AssocieExtProg( pExtension, pProgramme)

NewExtension est une chaîne = SansEspace(pExtension)
NewProgram est une chaîne = SansEspace(pProgramme)
ValeurClef est une chaîne

// Pour qu'une extension soit automatiquement associé à un programme il faut
avoir dans la base de registre
// 1° HKEY_CLASSES_ROOT\<extension> avec par défaut : Key name
// Exemple :
// HKEY_CLASSES_ROOT\.toto : toto_auto_file
//
// 2° HKEY_CLASSES_ROOT\<Key name>
// \shell
// \edit
// \commande : ligne de commande
// \open
// \commande : ligne de commande
//
// Exemple :
// HKEY_CLASSES_ROOT\toto_auto_file\shell\edit\command :
%SystemRoot%\system32\NOTEPAD.EXE %1
// HKEY_CLASSES_ROOT\toto_auto_file\shell\open\command :
%SystemRoot%\system32\NOTEPAD.EXE %1

// on regarde si l'extension commence bien par un "."
IF NewExtension[[1]] <> "." THEN RENVOYER False

// on regarde si le programme existe car il faut le chemin complet
IF fRep(NewProgram,frFichier)="" THEN RENVOYER False

// Positionnne la valeur ".toto" devient "toto_auto_file"
ValeurClef = NewExtension[[2 A]] + "_auto_file"

// On regarde si HKEY_CLASSES_ROOT\<extension> existe
IF NOT RegistreExiste("HKEY_CLASSES_ROOT\"+NewExtension,0) THEN
// AJout
IF NOT RegistreCréeClé("HKEY_CLASSES_ROOT\"+NewExtension) THEN RENVOYER
False
// puis on l'enregistre
IF NOT RegistreEcrit("HKEY_CLASSES_ROOT\"+NewExtension, "", ValeurClef)
THEN RENVOYER False
END

// On regarde si HKEY_CLASSES_ROOT\toto_auto_file existe
IF NOT RegistreExiste("HKEY_CLASSES_ROOT\"+ValeurClef) THEN
// Rien n'existe il faut tout réer
IF NOT
RegistreCréeClé("HKEY_CLASSES_ROOT\"+ValeurClef+"\shell\edit\command") THEN
RENVOYER False
IF NOT RegistreEcrit("HKEY_CLASSES_ROOT\"+ValeurClef+"\shell\edit\command",
"", NewProgram+" %1") THEN RENVOYER False
//.....
IF NOT
RegistreCréeClé("HKEY_CLASSES_ROOT\"+ValeurClef+"\shell\open\command") THEN
RENVOYER False
IF NOT RegistreEcrit("HKEY_CLASSES_ROOT\"+ValeurClef+"\shell\open\command",
"", NewProgram+" %1") THEN RENVOYER False

ELSE
// on regarde si les sous clefs existes
IF RegistreExiste("HKEY_CLASSES_ROOT\"+ValeurClef+"\shell\edit\command")
THEN
IF NOT
RegistreEcrit("HKEY_CLASSES_ROOT\"+ValeurClef+"\shell\edit\command", "",
NewProgram+" %1") THEN RENVOYER False
ELSE
IF NOT
RegistreCréeClé("HKEY_CLASSES_ROOT\"+ValeurClef+"\shell\edit\command") THEN
RENVOYER False
IF NOT
RegistreEcrit("HKEY_CLASSES_ROOT\"+ValeurClef+"\shell\edit\command", "",
NewProgram+" %1") THEN RENVOYER False
END
//.....
IF RegistreExiste("HKEY_CLASSES_ROOT\"+ValeurClef+"\shell\open\command")
THEN
IF NOT
RegistreEcrit("HKEY_CLASSES_ROOT\"+ValeurClef+"\shell\open\command", "",
NewProgram+" %1") THEN RENVOYER False
ELSE
IF NOT
RegistreCréeClé("HKEY_CLASSES_ROOT\"+ValeurClef+"\shell\open\command") THEN
RENVOYER False
IF NOT
RegistreEcrit("HKEY_CLASSES_ROOT\"+ValeurClef+"\shell\open\command", "",
NewProgram+" %1") THEN RENVOYER False
END
END

"[Bernard Vessiot]" <jci-53el@iximail.com> a écrit dans le message de news:
mn.8a7f7d6be0c03190.25446@iximail.com...

Philippe Pasquali avait soumis l'idée :
bonjour
LanceAppliAssocie comme son nom l'indique lance l'application associé a
l'extension du fichier que l'on donne en paramétre
mais comment de façon "automatique~programmation" peut t on dire à
windows
que l'extension ".titi" doit utiliser le programme
toto.exe
Merci d'avance pour toute idée même farfelue

salut,
il suffit de creer la clé comme cela:

HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\.titi\Shell\Open\command

dans command creer une vlauer chaine contenant "toto.exe"

normalement, cela marche !
@+++

--
[Bernard Vessiot]
34980 Saint Gély du Fesc
jci-53el@iximail.com