我想从C#自动化一个名为Spotify的程序,最好的办法(我认为)是通过触发假按键。 我想编程暂停播放,我不知道这个东西足以find另一种方式比按键。 所以我使用Visual Studio的Spy ++来查看当按键盘上的播放button时Spotify得到了什么消息,我将该消息中的数据复制到我的控制台应用程序中并运行它,当我运行时,我可以在Spy ++的消息logging中看到PostMessage,这是工作,但它不会暂停/播放我的音乐。 我想这是因为我还必须发送另一个PostMessage与另一个目的地,但我怎么知道还有什么发送?
发布信息电话:
MessageHelper.PostMessage((int)hwndSpotify,0x100,0x000000B3,0x01000001);
我希望有人熟悉这一点,可以帮助我。
如何检测Windows关机/注销并取消该操作(询问用户后)
在选项卡中打开.NET插件
我如何杀死我的移动应用程序?
InvisibleOperationException隐藏窗口时
定制的用户界面 – Windows还是Linux?
WindowsIdentity缺less组 – 尤其是pipe理员组
如何检查给定PID的进程是否正在运行?
使用Linux和.NET
有没有编译符号来检测紧凑的框架?
要自动化Spotify,首先必须使用以下类名获取窗口的句柄:SpotifyMainWindow(使用FindWindow())。
然后,您可以使用SendMessage()方法将一个WM_APPCOMMAND消息发送到Spotify窗口。
internal class Win32 { [DllImport("user32.dll",CharSet = CharSet.Auto,SetLastError = false)] internal static extern IntPtr SendMessage(IntPtr hWnd,uint Msg,IntPtr wParam,IntPtr lParam); internal class Constants { internal const uint WM_APPCOMMAND = 0x0319; } } public enum SpotifyAction : long { PlayPause = 917504,Mute = 524288,VolumeDown = 589824,VolumeUp = 655360,Stop = 851968,PrevIoUsTrack = 786432,NextTrack = 720896 }
例如,播放或暂停当前曲目:
Win32.SendMessage(hwndSpotify,Win32.Constants.WM_APPCOMMAND,IntPtr.Zero,new IntPtr((long)SpotifyAction.PlayPause));
按“播放buttion”结果在虚拟键码 – 正式列表请参阅http://msdn.microsoft.com/en-us/library/dd375731%28v=VS.85%29.aspx 。
在那里你可以找到例如VK_VOLUME_UP VK_MEDIA_PLAY_PAUSE VK_ZOOM 。
甚至一些遥控翻译成这些代码是尽可能与现有的软件兼容。
这些是在Windows ME(!)出来并且仍在使用的当天重新引入的,至少当我查看了Windows 2008 R2的注册表时!
基本上,Windows将特定的VK *转换为WM_APPCOMMAND消息,并使用应用程序监听的某些代码。
如果密钥与启动一个应用程序(即邮件,浏览器等)有关,那么魔法通过Windows资源管理器发生,该资源管理器从Software Microsoft Windows CurrentVersion Explorer AppKey Registry注册表中读取映射(通过关联或直接执行) Software Microsoft Windows CurrentVersion Explorer AppKey – HKLM或HKCU。
一些旧的,但似乎仍然有效的信息链接:
http://msdn.microsoft.com/en-us/windows/hardware/gg463446.aspx
http://msdn.microsoft.com/en-us/windows/hardware/gg462991
http://msdn.microsoft.com/en-us/windows/hardware/gg463372
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。