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()- 
				Le Soldat Inconnu
 - 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)
EndIfJe 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ètreEt 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 
- 
				Le Soldat Inconnu
 - 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)]