Легальный ахк скрипт для отправки сообщений в чат. Можно биндить любую консольную команду, не пользуясь интернал читами. Запускать, как ansi 32-bit. Клавиши биндов, естественно, можно менять. F1 по-умолчанию:
DetectHiddenWindows, On
Setbatchlines -1
ConsoleCommand := "say привет" ; отправить консольную команду
F1::
WinGet, hWnd, ID, ahk_class Valve001
VarSetCapacity(message, SizeInBytes := StrPut(ConsoleCommand, "UTF-8") * (A_IsUnicode ? 2 : 1), 0)
StrPut(ConsoleCommand, &message, "UTF-8")
VarSetCapacity(COPYDATASTRUCT, A_PtrSize*3, 0)
;NumPut(0, COPYDATASTRUCT, 0, "Uint")
NumPut(SizeInBytes, COPYDATASTRUCT, A_PtrSize, "UInt")
NumPut(&message, COPYDATASTRUCT, A_PtrSize*2, "Ptr")
DllCall("SendMessage", "Ptr", hWnd, UInt, WM_COPYDATA := 0x4A, "Ptr", 0, "Ptr", ©DATASTRUCT)
return
C++ source:
#include <iostream>
#include <windows.h>
int main()
{
const char* m_pTestCommand = "say \"SendMessageA Test\"";
const HWND m_hEngine = FindWindowA("Valve001", 0);
COPYDATASTRUCT m_cData;
m_cData.cbData = strlen(m_pTestCommand) + 1;
m_cData.dwData = 0;
m_cData.lpData = (void*)m_pTestCommand;
SendMessageA(m_hEngine, WM_COPYDATA, 0, (LPARAM)&m_cData);
}