Verbs get multi-level context menu content

Welcome Forums General PowerShell Q&A Verbs get multi-level context menu content

Viewing 10 reply threads
  • Author
    Posts
    • #240566
      Participant
      Topics: 1
      Replies: 6
      Points: 32
      Rank: Member

      Hello all, I have searched the docus/web/forum on answers to this, but to no avail. Maybe one of you can help me out here

      Is there a way to list multi-level entries on context menus, like “Send to>****” in my example? Verbs() simply returns an empty entry and DoIt() fails

      $o = new-object -com Shell.Application
      $folder = $o.NameSpace("C:\Windows\System32")
      $file = $folder.ParseName("notepad.exe")
      foreach ($item in $file.Verbs())
      {
        $item.Name()   #this results in an empty entry for Send to> :/
        If ($item.Name -eq 'Send to>')
        {
          #find the correct entry
          $item.DoIt()
        }
      }

      Background info: I want to achieve to click the Network>”Connect to adhoc Network” menu item for a bluetooth device

    • #240647
      Participant
      Topics: 4
      Replies: 481
      Points: 1,760
      Helping Hand
      Rank: Community Hero

      Not sure why yours is empty, this is what mine returns.

      foreach($verb in $file.verbs()){$verb.name}
      &Open
      Run as &administrator
      &Open with Sublime Text 2
      Open w&ith Code
      &Pin to Start
      
      
      Scan for Viruses...
      Share
      Restore previous &versions
      
      Cu&t
      &Copy
      Create &shortcut
      &Delete
      Rena&me
      P&roperties
      
    • #240716
      Participant
      Topics: 1
      Replies: 6
      Points: 32
      Rank: Member

      Hello, I see 3 empty entries in your reply aswell, I think you have not understood the question properly (between Pin to start<>Scan for Viruses and Restore ..<>Cut). Also, no Send to> entry on your output.

      Here is a screenshot of the context menu, and what I am missing (Notice the empty space between Restore previous entry and Cut) https://ibb.co/N3QW8sQ

      context menu example

      &Open
      Run as &administrator
      &Pin to Start
      Edit with &Notepad++
      Share
      Scan with Sophos Anti-&Virus
      &Add to archive...
      Add &to "notepad.rar"
      Compress and email...
      Compress to "notepad.rar" and email
      Restore previous &versions
      
      Cu&t
      &Copy
      Create &shortcut
      &Delete
      Rena&me
      P&roperties

      But actually even this is just an example, I want to click in the context menu of a Bluetooth PAN device, which hast one single entry: Connect to Network>Connect to Adhoc Network

      • This reply was modified 1 month ago by Gabbo68.
      • This reply was modified 1 month ago by Gabbo68. Reason: clarified task
    • #241316
      Participant
      Topics: 1
      Replies: 6
      Points: 32
      Rank: Member

      Bump, anyone?

    • #241355
      Participant
      Topics: 13
      Replies: 1690
      Points: 2,876
      Helping Hand
      Rank: Community Hero

      Right-Click context menus are just running commands in the background. Look at HKEY_CLASSES_ROOT\*\shell and Computer\HKEY_CLASSES_ROOT\*\shellex and find the command that is executed and then write code to execute that versus parsing the actual menu.

      #Open with VSCode command
      PS C:\Users\rs> Get-ItemProperty -LiteralPath "Registry::HKEY_CLASSES_ROOT\*\shell\VSCode\Command" | Select -ExpandProperty '(default)'
      
      "C:\Users\rs\AppData\Local\Programs\Microsoft VS Code\Code.exe" "%1"
      
    • #241484
      Participant
      Topics: 1
      Replies: 6
      Points: 32
      Rank: Member

      Thanks, the entries to some of the missing items seem to be there, but not for the area I am looking for. Searching through the registry I havent found any entries leading to the network connection menu item.

      For clarity, this is the action I want to trigger in the end:

      pan connection

    • #242225
      Participant
      Topics: 1
      Replies: 6
      Points: 32
      Rank: Member

      Hmm, so i guess this problem topic is too elaborate, noone knows a solution?

    • #242258
      Participant
      Topics: 5
      Replies: 2422
      Points: 6,253
      Helping Hand
      Rank: Community MVP

      Hmm, so i guess this problem topic is too elaborate, noone knows a solution?

      Maybe you asked the wrong question. 😉 What is it actually what you want to achieve? I assume you want to connect to a perticular network. You might search for this. 😉

    • #242264
      Participant
      Topics: 1
      Replies: 6
      Points: 32
      Rank: Member

      Yes, I want to connect to a network.

      We did search/pair/set up Bluetooth PAN network service using the bluetooth API in windows. But neither the Windows Bluetoot or Socket API, netsh, COM objects nor any 3rdparty tools give you possibility to actually “trigger” the connection (can be done by right click->connect using->adhoc network, see picture above). Without pressing this button the connection is down.

      So our idea was to trigger that particular context menu entry using powershell, but it did not work out. The only thing thats worked is opening the window and emulating keypresses with powershell, which is obviously not that nice. Triggering with Verb.DoIt() is not possible, nor have we found any other way.

      Any idea would be welcome.

       

    • #242267
      Participant
      Topics: 5
      Replies: 2422
      Points: 6,253
      Helping Hand
      Rank: Community MVP

      Any idea would be welcome.

      For me this looks more like a task for a software developer than for a Powershell scripter. You may ask in a little more crouded place for developers like StackOverflow.

    • #242522
      Participant
      Topics: 1
      Replies: 6
      Points: 32
      Rank: Member

      Well, we already tried on stackoverflow. There is no programmatic way to trigger this event, Microsoft does not offer a public API.

      So this is why we thought of a script solution, just simulating that click on the context menu or on the window tab, or triggering the event behind. That should very well be a script job.

      pan connection

Viewing 10 reply threads
  • You must be logged in to reply to this topic.