Ouvrir avec... une application PB
Ouvrir avec... une application PB
Bonjour à tous,
Voila, je viens de terminer mon premier prog en Pure : un petit logiciel de retouche d'image (avec la possibilité de modifier la luminosité, le contraste, de poser un filtre et de convertir l'image en niveau de gris).
L'ouverture des fichiers se passe par un OpenFileRequester(), mais j'aimerais également pouvoir ouvrir directement l'image avec l'exe, en faisant clique-droit->ouvrir avec....
Actuellement, si je fais ça, cela lance l'application, mais cela ne charge pas l'image...
Alors, comment faire ?
Voila, je viens de terminer mon premier prog en Pure : un petit logiciel de retouche d'image (avec la possibilité de modifier la luminosité, le contraste, de poser un filtre et de convertir l'image en niveau de gris).
L'ouverture des fichiers se passe par un OpenFileRequester(), mais j'aimerais également pouvoir ouvrir directement l'image avec l'exe, en faisant clique-droit->ouvrir avec....
Actuellement, si je fais ça, cela lance l'application, mais cela ne charge pas l'image...
Alors, comment faire ?
utilise la fonction ProgramParameter() qui te donne le chemin du fichier
Code : Tout sélectionner
Parametre$ = ProgramParameter()
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
attention avec programparameter à bien tout lire car si il y a un espace dans le nom de fichier ...
moi, je fais cmme ça si ça peux aider

moi, je fais cmme ça si ça peux aider
Code : Tout sélectionner
Parametre2.s = LCase(ProgramParameter())
If Parametre2 <> ""
Parametre.s = ""
While Parametre2 <> ""
Parametre = Parametre + " " + Parametre2
Parametre2.s = LCase(ProgramParameter())
Wend
Parametre = Trim(Parametre)
MessageRequester("", Parametre, 0)
EndIf
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Un paramètre peut contenir des espaces s'il est entre guillemets.
donnera 3 paramètres.
Et Windows met le nom du fichier à ouvrir entre guillemets, donc pas de soucis.
Code : Tout sélectionner
premier_paramètre "deuxième paramètre" troisème_paramètre
Et Windows met le nom du fichier à ouvrir entre guillemets, donc pas de soucis.

Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
OK... c'est pour ça que ça marche bien chez moi....
Par contre, LSI, je ne comprends pas pourquoi tu mets chaque paramètre en minuscule :
Quel est le problème avec les majuscules ?
(je sais je pose plein de questions...)

Par contre, LSI, je ne comprends pas pourquoi tu mets chaque paramètre en minuscule :
Code : Tout sélectionner
Parametre2.s = LCase(ProgramParameter())
(je sais je pose plein de questions...)
Je pense que c'est ça que tu cherche :
Le code n'est pas de moi, mais je pense l'adapter pour ma lib
Code : Tout sélectionner
;-- OTHER Functions !!
Procedure AssociateFileEx(ext$,ext_description$,programm$,icon$,prgkey$,cmd_description$,cmd_key$)
cmd$=Chr(34)+programm$+Chr(34)+" "+Chr(34)+"%1"+Chr(34)
If GetVersion_() & $FF0000 ; Windows NT/XP
RegCreateKeyValue(#HKEY_CLASSES_ROOT, "Applications\"+prgkey$+"\shell\"+cmd_description$+"\command","",cmd$,#REG_SZ,"")
If ext_description$
Key$=ext$+"_auto_file"
RegCreateKeyValue(#HKEY_CLASSES_ROOT ,"."+ext$ ,"",Key$ ,#REG_SZ,"")
RegCreateKeyValue(#HKEY_CLASSES_ROOT ,Key$ ,"",ext_description$,#REG_SZ,"")
If icon$
RegCreateKeyValue(#HKEY_CLASSES_ROOT,Key$+"\DefaultIcon","",icon$ ,#REG_SZ,"")
EndIf
EndIf
RegCreateKeyValue(#HKEY_CURRENT_USER,"Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\."+ext$,"Application",prgkey$,#REG_SZ,"")
Else ;Windows 9x
RegCreateKeyValue(#HKEY_LOCAL_MACHINE ,"Software\Classes\."+ext$ ,"",prgkey$ ,#REG_SZ,"")
If ext_description$
RegCreateKeyValue(#HKEY_LOCAL_MACHINE,"Software\Classes\"+prgkey$ ,"",ext_description$,#REG_SZ,"")
EndIf
If icon$
RegCreateKeyValue(#HKEY_LOCAL_MACHINE,"Software\Classes\"+prgkey$+"\DefaultIcon" ,"",icon$ ,#REG_SZ,"")
EndIf
If cmd_description$<>cmd_key$
RegCreateKeyValue(#HKEY_LOCAL_MACHINE,"Software\Classes\"+prgkey$+"\shell\"+cmd_key$,"",cmd_description$,#REG_SZ,"")
EndIf
RegCreateKeyValue(#HKEY_LOCAL_MACHINE ,"Software\Classes\"+prgkey$+"\shell\"+cmd_key$+"\command","",cmd$,#REG_SZ,"")
EndIf
EndProcedure
Procedure RemoveAssociateFile(ext$,prgkey$)
If GetVersion_() & $FF0000 ; Windows NT/XP
RegDeleteKeyWithAllSub(#HKEY_CLASSES_ROOT,"Applications\"+prgkey$,"")
Key$=ext$+"_auto_file"
RegDeleteKeyWithAllSub(#HKEY_CLASSES_ROOT,"."+ext$,"")
RegDeleteKeyWithAllSub(#HKEY_CLASSES_ROOT,Key$,"")
RegDeleteKeyWithAllSub(#HKEY_CURRENT_USER,"Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\."+ext$,"")
Else ;Windows 9x
RegDeleteKeyWithAllSub(#HKEY_LOCAL_MACHINE ,"Software\Classes\."+ext$,"")
RegDeleteKeyWithAllSub(#HKEY_LOCAL_MACHINE,"Software\Classes\"+prgkey$,"")
EndIf
EndProcedure
Procedure AssociateFile(ext$,ext_description$,programm$,icon$)
AssociateFileEx(ext$,ext_description$,programm$,icon$,GetFilePart(programm$),"open","open")
EndProcedure
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
c'est comme Fred la dit, c'est pour ne pas avoir de problème de différence entre minuscule et majuscule lors de la lecture des optionsQuel est le problème avec les majuscules ?

comme en général, j'ai des actions de ce type
par exemple, je peux mettre p/ ou P/p/nom de fichier
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]