Page 1 sur 1

popupmenu "Ouvrir avec"

Publié : lun. 17/févr./2014 12:40
par Marcel
Bonjour,

j'utilise des noms de fichier dans un ListIconGadget.
Je voudrai un menu "Ouvrir avec" dans un PopupMenu, de telle façon que les programmes présentés sont en fonction du type de fichier (comme avec Windows):

Code : Tout sélectionner

If CreatePopupMenu(#popupmenu)
  MenuItem(1, "Changer")
  MenuItem(2, "Effacer")
  MenuBar()
  OpenSubMenu("Ouvrir avec")
    ;MenuItem(3, "???")
    ;MenuItem(4, "???")
    ; ???
  CloseSubMenu()
EndIf
Merci,
Marcel

Re: popupmenu "Ouvrir avec"

Publié : lun. 17/févr./2014 14:12
par Ar-S
Bonjour Marcel, ce que tu cherches à faire est donc ce que propose windows par défaut en faisant un clic droit sur un fichier.
Il te faut donc, comme lui, modifier le registre à cette adresse :

Code : Tout sélectionner

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
Dans les sous dossiers présents, tu auras toutes les extensions de fichiers reconnues par ton OS, i l faut donc que ton programmes modifie la bonne sous clé et son contenue. Perso je ne suis pas sûr que windows n'entre pas d'autres infos ailleurs donc il serait plus judicieux que tu te cantonnes à utiliser l'option PROGRAMME PAR DEFAUT dans ton panneaux de config.

Re: popupmenu "Ouvrir avec"

Publié : lun. 17/févr./2014 18:39
par GallyHC
Bonjour,

Une autre solution est de laisser windows faire ce qu'il connait avec :

Code : Tout sélectionner

RunProgram("rundll32.exe", "shell32.dll,OpenAs_RunDLL " + sfilenames, #NULL$)
"sfilenames" étant la localisation du fichier.

Cordialement,
GallyHC

Re: popupmenu "Ouvrir avec"

Publié : mer. 19/févr./2014 17:59
par Marcel
Bonjour et merci pour ces deux solutions.
ce que tu cherches à faire est donc ce que propose windows par défaut en faisant un clic droit sur un fichier
en plus avec des menu - voir

Code : Tout sélectionner

  OpenSubMenu("Ouvrir avec")
    ;MenuItem(3, "???")
Avec rundll32.exe comment puis-je avoir le même effet?

Merci,
Marcel