为什么我对WinGetTitle的调用返回一个空字符串?

丰富

我正在构建一个脚本,如果锁定工作站时正在播放音乐,它将暂停我的音乐。我使用Spotify,通过查看窗口标题可以很容易地获得播放状态。当不播放任何内容时,其标题只是“ Spotify”,而在播放媒体时,窗口标题将更改为当前播放的曲目的标题。我可以使用Window Spy看到它。

我试图找到Spotify窗口并读取其标题,使用WinGetTitle, title, ahk_exe Spotify.exe它应该将标题写入var title这不起作用,title是一个空字符串。有趣的是,如果将Spotify窗口最小化,它将起作用。

#L::
{
   WinGetTitle, title, ahk_exe Spotify.exe
   if(title != "Spotify")
   {
      Send {Media_Play_Pause}
   }
   DllCall("LockWorkStation")
   return
}

这是在Windows 10上WinGetClass, c, ahk_exe Spotify.exe正确找到的窗口,但是类名是Chrome_WidgetWin0因为我猜该应用程序是用Electron编写的。其他电子应用似乎具有相同的类名,只是在末尾增加数字。

我最喜欢的是一种挂接到Windows Spotify用于报告其当前播放状态的Windows API上的方法,因为Windows 10将其识别为媒体应用程序,并在任务栏和Windows的选项卡中添加了播放/暂停按钮。音量控制叠加。

谢谢

用户名

属于进程“ Spotify.exe”的类“ Chrome_WidgetWin0”可能有多个窗口。

尝试这个:

#IfWinExist ahk_exe Spotify.exe

    #l::
        WinGet, id, list, ahk_exe  Spotify.exe
        Loop, %id%
        {
            this_ID := id%A_Index%
            WinGetTitle, title, ahk_id %this_ID%
            If (title = "")
                continue
            If (title != "Spotify")
            {
                Send {Media_Play_Pause}
                    break
            }   
        }
        DllCall("LockWorkStation")
    return

#IfWinExist

编辑:要找出它是否真的有效,请运行以下测试:

#IfWinExist ahk_exe Spotify.exe

    #q:: ; Win+Q
        WinGet, id, list, ahk_exe  Spotify.exe
        Loop, %id%
        {
            this_ID := id%A_Index%
            WinGetTitle, title, ahk_id %this_ID%
            ; MsgBox, "%title%"
            If (title = "")
                continue
            MsgBox, "%title%"
            If (title != "Spotify")
            {
                Send {Media_Play_Pause}
                    break
            }   
        }
    return

#IfWinExist

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的函数返回一个空字符串?

为什么我的所有EditText.getText()。toString()返回一个空字符串?

Groovy:为什么按空格split()对一个空字符串进行返回会返回一个空字符串的列表?

为什么 req.query.code 返回一个空字符串?

为什么此请求返回一个空字符串?

为什么nextLine()返回一个空字符串?

为什么 Promise 返回一个空字符串?

为什么json_encode返回一个空字符串

为什么我从 jquery find().text() 得到一个空字符串?

为什么我的密码字段的值总是一个空字符串?

为什么我的密码字段的值总是一个空字符串?

当我将一个char添加到空字符串(如“” + c)时,为什么返回一个未知值?

为什么`TRegEx.split` 返回一个空字符串作为第一个元素?

为什么当我输入一个空字符串('nothing here')时它会忽略我的while条件?

为什么0.ToString(“#。##”)返回一个空字符串而不是0.00或至少为0?

为什么这个(主要是)空的Perl子例程返回一个空字符串?

为什么在Django模型图像中,Media.url返回一个空字符串,而不是图像链接?

为什么在for循环中第二次运行函数会返回一个空字符串?

为什么连接两个空字符串会导致一个空字符串?

为什么我无法使用golang解码此JSON?它总是打印一个空字符串

为什么在 C++ 中将字符串和 char 连接起来会返回一个空字符串?

php realpath()返回一个空字符串

$(“#myTextArea”)。val()返回一个空字符串

getPropertyValue(“ backgroundColor”)返回一个空字符串

我的辅助函数返回一个空字符串

添加一个空字符串vs toString-为什么不好?

为什么PHP将“ \ r \ n”添加到一个空字符串?

为什么element.style.backgroundColor属性会给出一个空字符串?

除非我在其末尾附加一个空字符串,否则为什么我的动态src路径不起作用?