Jump to content
u01jmg3

How to write a registry entry when Windows Media Player is not running?

Recommended Posts

u01jmg3
HotKeySet("^``", "toggle_media_controls") ; Ctrl + `

While 1
    Sleep(100)
WEnd

If Not ProcessExists("wmplayer.exe") And RegRead("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled") = 1 Then
    ; Disable autohide controls
    RegWrite("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled", "REG_DWORD", "0")
EndIf

Func toggle_media_controls()
    Local $sVar = RegRead("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled")

    If ProcessExists("wmplayer.exe") Then
        If $sVar = 0 Then
            ; Enable autohide controls
            RegWrite("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled", "REG_DWORD", "1")
        Else
            ; Disable autohide controls
            RegWrite("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled", "REG_DWORD", "0")
        EndIf
    EndIf
EndFunc

How do I amend this code so that without pressing a hotkey, after Windows Media Player is not running, the regkey above is set to 0?

My function and hotkey all work without issue

Share this post


Link to post
Share on other sites
u01jmg3

Use ProcessWaitClose

Thanks - how would I amend my code to use ProcessWaitClose? Do I need to create a new function? This is the section of code I've tried changing but when closing Windows Media Player, the registry key isn't being changed from 1 to 0.

If Not ProcessExists("wmplayer.exe") And RegRead("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled") = 1 Then
    ; Disable autohide controls
    RegWrite("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled", "REG_DWORD", "0")
EndIf

 

Share this post


Link to post
Share on other sites
Surya
HotKeySet("^``", "toggle_media_controls") ; Ctrl + `

While 1
    Sleep(100)
WEnd

If Not ProcessExists("wmplayer.exe") And RegRead("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled") = 1 Then
    ; Disable autohide controls
    RegWrite("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled", "REG_DWORD", "0")
EndIf

Func toggle_media_controls()
    Local $sVar = RegRead("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled")

    If ProcessExists("wmplayer.exe") Then
        If $sVar = 0 Then
            ; Enable autohide controls
            RegWrite("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled", "REG_DWORD", "1")
        Else
            ; Disable autohide controls
            RegWrite("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled", "REG_DWORD", "0")
        EndIf
    EndIf
EndFunc

i think that in that script even when you close  windows media player the commands below wend wouldnt be executed because of the loop

so change the loop like this:

HotKeySet("^``", "toggle_media_controls") ; Ctrl + `

While 1
 If not ProcessExists("wmplayer.exe") then exitloop ;this is required to jump out of the loop to execute the next commands
WEnd

If Not ProcessExists("wmplayer.exe") And RegRead("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled") = 1 Then
    ; Disable autohide controls
    RegWrite("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled", "REG_DWORD", "0")
EndIf

Func toggle_media_controls()
    Local $sVar = RegRead("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled")

    If ProcessExists("wmplayer.exe") Then
        If $sVar = 0 Then
            ; Enable autohide controls
            RegWrite("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled", "REG_DWORD", "1")
        Else
            ; Disable autohide controls
            RegWrite("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled", "REG_DWORD", "0")
        EndIf
    EndIf
EndFunc

 


No matter whatever the challenge maybe control on the outcome its on you its always have been.

MY UDF: Transpond UDF (Sent vriables to Programs) , Utter UDF (Speech Recognition)

Share this post


Link to post
Share on other sites
u01jmg3

@ Surya: thanks, this semi works.

The script doesn't run unless Windows Media Player is running. Once you get the script running, it closes when Windows Media Player is closed. Any way to fix these 2 things and have the script running/polling all the time so each time I open/close Windows Media Player, the script does its thing?

Share this post


Link to post
Share on other sites
Surya

here it is further modified:

While 1
If Not ProcessExists("wmplayer.exe") And RegRead("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled") = 1 Then
    ; Disable autohide controls
    RegWrite("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled", "REG_DWORD", "0")
Else
     RegWrite("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled", "REG_DWORD", "1")
EndIf
WEnd
Exit

If that doesnt suite your needs feel free to ask for another


No matter whatever the challenge maybe control on the outcome its on you its always have been.

MY UDF: Transpond UDF (Sent vriables to Programs) , Utter UDF (Speech Recognition)

Share this post


Link to post
Share on other sites
u01jmg3

Modified slightly so now works - thanks!

While 1
    If Not ProcessExists("wmplayer.exe") And RegRead("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled") = 1 Then
        ; Disable autohide controls
        RegWrite("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled", "REG_DWORD", "0")
    EndIf
    Sleep(100)
WEnd

 

Share this post


Link to post
Share on other sites
jguinch

I know it is solved, but like I said, you can also use ProcessWaitClose :

While 1
    ProcessWaitClose("wmplayer.exe")
    If RegRead("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled") = 1 Then RegWrite("HKCU\Software\Microsoft\MediaPlayer\Preferences", "HoverTransportsEnabled", "REG_DWORD", "0")
    Sleep(100)
WEnd

 

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • Daydreamer067
      By Daydreamer067
      Hi
      in windows 10 i create a new desktop.
      I want to run a script in this desktop, for exemple Mouseclick("left",x,y)
      I want the script to work in that desktop while i switch to the primary desktop.
      So far autoit clicks on the active desktop.
      Is there a way to make it run only on the other desktop ?
       
      Thank you for your response.
    • codingislife
      By codingislife
      Hi everyone, 
      I'm new to the autoit world and am trying to do something a little complicated and am having trouble developing a solution. My OS after reimaging comes up with two operating system choices during boot up, I'd like to delete the incorrect OS. I have noticed that the default OS is always the correct OS. My issue is I need a way to find the OS identifier before I can delete. I know that I  can use bcdedit to find this but it changes every time and it needs to be the correct identifier (i.e. not the Default or bootmgr). If someone knows of a way to parse through the output of bcdedit to find the identifier that would be greatly appreciated. Here is an example of what I am trying to do:
      https://scottiestech.info/2016/07/03/remove-the-choose-an-operating-system-message-when-starting-your-computer/
    • PramodR
      By PramodR
      Hello,
      i am new to AUTO IT development , I would like one help to read value from a POP up.
      i am able to read below values using inspect tool , information given below, I tried to create a script to read value but that does not help. any help is appreciated.
      Available Controls
      POPUP window Controls
      Auto Id = "UpdateNow_Btn"
      Name = Update Now
      Invoke - Button Control
      Below Controls i get when i move inspector tool to the text which i need to read. i need to read the text Name . Currently with my code i get only blank text 
      Auto Id = timeOutLb
      ClassName = TextBlock
      LegacyIAccess = GetName
      Name  = Read Value for Name
       
      My code.
       
    • Dreamfire
      By Dreamfire
      Hi,
      Since today, exe's are being flagged as having a trojan by Windows Defender (Fuery.B!cl)
      Version:  3.3.14.3 - SciTE Version 3.7.3



       

    • PramodR
      By PramodR
      Hello,
      I have to execute below block of code in elevated previllage, as that particular wmic class will work only with admin previlage.
      i am getting out put when i launch autoit as administrator,  but i will not be able to launch autoit as admin in this particular case but my user have admin rights.
      is there any better way i can run those command as administrator.?
      tried below steps:
      i have tried #RequireAdmin but that creates a user prompt  Tried using Runas command but gives error as wrong username or password , stuck with that step.  
       
×