Page 2 of 2

Re: Windows context menu

Posted: Mon Feb 01, 2016 11:26 am
by Piotr D
Roger,
your concept is good, but my problem is, that I don't know, how can I invoke these programs with option automatically adding a file for signing.
Jimmy,
I tried your suggestion, but efect was the same as with XbpFileDialog. Context menu for file don't have two option, which was under Windows explorer. These are added in registry as DLL:
https://onedrive.live.com/redir?resid=D ... hoto%2cpng
https://onedrive.live.com/redir?resid=D ... hoto%2cpng

Regards
Piotr

Re: Windows context menu

Posted: Mon Feb 01, 2016 12:09 pm
by Auge_Ohr
Piotr D wrote: Context menu for file don't have two option, which was under Windows explorer. These are added in registry as DLL:
https://onedrive.live.com/redir?resid=D ... hoto%2cpng
your 2nd Photo show other Registry Key !
i talk about HKEY_CLASSES_ROOT\DesktopBackground which is the free Desktop.

if your Context-Menu is attach to a Explorer Folder you can use "Shell.Application", Namespace(CLSID), FolderItem -> Verbs to activate ( oVerb:Doit() ) a Menu Item

Re: Windows context menu

Posted: Mon Feb 01, 2016 1:32 pm
by Piotr D
Jimmy,
these context menu option don't exists under HKEY_CLASSES_ROOT\DesktopBackground:

https://onedrive.live.com/redir?resid=D ... hoto%2cpng

Piotr

Re: Windows context menu

Posted: Mon Feb 01, 2016 4:35 pm
by Auge_Ohr
hi,

now i see where you are in Registry ...
"OpenWithList" on Right-Menu only appear when i open a Folder an give Item Focus.

Code: Select all

   oShell    := CreateObject("Shell.Application")
   oFolder   := oShell:NameSpace(CSIDL_DESKTOP)
her i open Folder DeskTop (#include "Shfolder.CH" )
Shfolder.zip
Shfolder.CH
(1.24 KiB) Downloaded 774 times
now find all Items (Icons) on Desktop

Code: Select all

   IF NIL <> oFolder
      oItems := oFolder:Items()
      iMax   := oItems:Count

      FOR i := 1 TO iMax
         oItem  := oItems:Item(i-1) // Zero-based 
         IF !EMPTY(oItem)
            AADD(aItems,oItem)
         ENDIF
      NEXT
next look at any Items ( Icon ) which have your Context-Menu Entry -> cSeek

when got Position of cSeek -> add all Verbs ( Menu-Item ) to Array

Code: Select all

      nPosi := ASCAN(aItems,{|x| x:name = cSeek  })
      IF nPosi > 0
         oIcon  := aItems[nPosi]

         oVerbs := oIcon:Verbs()
         jMax   := oVerbs:Count
         FOR j := 1 TO jMax
            oVerb := oVerbs:Item(j-1) // Zero-based 
            ? oVerb:Name
            AADD(aVerbs,oVerb)
         NEXT

         nPosi := ASCAN(aVerbs,{|x| cDoit $ STRTRAN(x:Name,"&","")  })
         IF nPosi > 0
            aVerbs[nPosi]:DoIt()
         ENDIF
      ENDIF
   ENDIF
last Step is to find your Menu-Item -> cDoit.
Windows use "&" (ampersand) as underscore so you have to use STRTRAN()

Re: Windows context menu

Posted: Tue Feb 02, 2016 8:52 am
by Piotr D
Thanks, Jimmy
I tried with your suggestion, but without succes. I becam all shortcuts from desktop, find these programs, but hi don't
have own menu. These context menu items are available only for files (or folders). Context menu for desktop shortcuts
don't have these option.

Piotr