Как настроить макрос для отправки команды в канале разногласий в указанное время? - PullRequest
0 голосов
/ 02 июня 2019

Я пытаюсь настроить его так, чтобы я мог активировать скрипт на AutoHotKey, который будет использовать мое приложение разногласий в фоновом режиме и отправлять указанное сообщение каждые три часа. Было бы лучше, если бы три часа были установлены в указанное время, например 12, 3, 6, 9, 12 и т. Д.

Мне в основном трудно понять команду send, но я уверен, что мне нужна информация о том, как заставить ее правильно использовать api discord, так что чем больше вы дадите мне, тем лучше. Я собирался сделать это с помощью веб-браузера chrome и открыть вкладку с дисконтным веб-сайтом, чтобы это не мешало чему-либо, что я делаю, но теперь я думаю, что сделать это через приложение будет лучшим способом.

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
Send, #
Send, c
Send, h
Send, Enter

Все, что я получил, когда попробовал этот код, это звук Windows Ding. Я еще недостаточно изучил этот материал, поэтому, опять же, чем больше у меня указаний, тем лучше.

1 Ответ

0 голосов
/ 03 июня 2019

Я бы порекомендовал прочитать раздел «Начало работы» справочной документации, чтобы получить полное представление об основах.https://www.autohotkey.com/docs/AutoHotkey.htm

Глядя на то, что у вас есть, важно понимать, что вы отправляете.Каждый из них, !^+#, действует как одноразовые клавиши-модификаторы alt, ctrl, shift и windows-key.Если вы хотите отправить их как настоящие символы, вам нужно заключить их в фигурные скобки - например, Send , {#}.То же самое касается ключа ввода;без фигурных скобок он просто отправит буквы E, n, t, e и r.Кроме того, вы можете объединить все ваши посылки в один - например, Send , {#}ch{enter}.

Что касается настройки его запуска на каждый третий час, вы можете сделать это с помощью SetTimer.Я бы рекомендовал проверить это в справочной документации 1015 * для использования и примеров.Если вы хотите, чтобы он запускался раз в три часа, это достаточно просто;если вы хотите, чтобы часы работали на часы, кратные трем, вам также нужно будет проверить время.Вот пример, который проверяет каждый час, делятся ли часы текущего времени на три.

f1::
GoSub, l_Timer
SetTimer , l_Timer , 3600000 ; 60min/hour x 60sec/min x 1000ms/sec
Return

l_Timer:
If ( Mod( SubStr( A_Now , 9 , 2 ) , 3 ) = 0 )
MsgBox , The current hour is divisible by 3.
Return

Обратите внимание, что при первом запуске таймер должен закончиться перед активацией подпрограммы.Вы можете сразу запустить его, добавив строку GoSub , [label], как я сделал.

...