gpt4 book ai didi

c# - 不在焦点时将键盘输入发送到 Spotify

转载 作者:行者123 更新时间:2023-12-03 14:53:00 34 4
gpt4 key购买 nike

我有一个 AHK 脚本(如下),它在后台向全局 Spotify 桌面应用程序发送各种命令以执行各种操作,但是我玩一个 MMO,它有一个始终运行的反作弊程序,当它检测到 AHK 时会关闭游戏,因为人们可以将它用于宏等。

; "CTRL + Alt + UP"  Increase the volume.
^!Up::
DetectHiddenWindows, On
WinGet, winInfo, List, ahk_exe Spotify.exe
Loop, %winInfo%
{
thisID := winInfo%A_Index%
ControlFocus , , ahk_id %thisID%
ControlSend, , ^{up}, ahk_id %thisID%
}
return
反作弊不会检测/关心 C# 程序/应用程序,因此我将代码移植到 C# 并找到了一种向 Spotify 应用程序发送命令以通过 SendMessage 执行我想要的大部分内容的方法:
private const int WM_KEYDOWN = 0x0100;
private const int WM_KEYUP = 0x0101; //Tried using these to no avail
private const int WM_KEYSYS = 0x0104;
private const int WM_ACTIVATEAPP = 0x001C;

var proc = Process.GetProcessesByName("Spotify").FirstOrDefault(p => !string.IsNullOrWhiteSpace(p.MainWindowTitle));
IntPtr hwnd = proc.MainWindowHandle;
SendMessage(hwnd, 0x0319, (IntPtr)0, (IntPtr)917504);
此命令将播放/暂停当前歌曲,因为这是最终数字 (917504) 对应的内容。 Spotify 还提供音量增大/减小的命令代码,但是它们会影响我 PC 的整个音量,而不仅仅是 Spotify,这显然不是我想要的。
我已经尝试了数百种 PostMessage 和 SendMessage 的组合,但我根本无法弄清楚如何发送“Ctrl”+“Up”键来增加音量(反之亦然)。 在后台 .我不希望窗口被带到前台等。
任何帮助是极大的赞赏。
我还提到了 AHK 脚本,因为根据我的挖掘,我认为 ControlSend 函数是从源代码中的这一点开始运行的 https://github.com/Lexikos/AutoHotkey_L/blob/90b5c2ac3208c38b9488a72fc3e6e4f9cf20b276/source/keyboard_mouse.cpp#L135 ,但是我对 C/C++ 的了解不够,无法弄清楚如何覆盖需要窗口焦点等的函数。

最佳答案

也许考虑将您的 AHK 脚本编译为 exe:它可能不会以这种方式被阻止。而且您无需转移您的 AHK 解决方案。

关于c# - 不在焦点时将键盘输入发送到 Spotify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62894577/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com