Есть ли способ выполнять команды в консольном приложении visual studio без его выбора? - PullRequest
0 голосов
/ 07 июня 2019

Я создал программу, которая использует функцию GetKeyState(), но я бы хотел, чтобы программа работала без необходимости ее выбора (например, выберите окно этого приложения, надеюсь, это выглядит ясным и понятным), что означает, даже если у меня открыто другое окно, и у меня выбрано это окно, я хочу, чтобы моя консоль работала, когда я нажимаю указанную клавишу.

Я не знаю, ясно ли то, что я сказал, скажем такУ меня открыт Chrome, и я бродю по интернет-страницам, и у меня консоль, идущая вдоль стороны (но ее окно не выбрано, потому что у меня выбран процесс Chrome, так как я работаю с ним), я хочу консольПрограмма выполняет свою работу, когда я нажимаю клавишу, которую я указала, пока я все еще в Chrome (или даже когда она свернута).

Например: наложение Discord и «Push to talk», вы можете включить /отключите оверлей, или нажмите, чтобы говорить, когда вы находитесь в другой программе, или даже свернули.

Примечание: мне это не нужно для кейлоггер.

Есть ли вау тебя это сделать?

1 Ответ

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

Ну, это прямо, пробовал с VS2017 на Win10:

#include <stdio.h>
#include <Windows.h>

int main(void)
{
    puts("Quit by pressing Ctrl-C");
    for (;;) {
        Sleep(100);
        printf("a=%X R-Ctrl=%X CapsLock=%X\n", GetKeyState('A'), GetKeyState(VK_RCONTROL), GetKeyState(VK_CAPITAL));
    }
    return 0;
}

Он производит этот вывод (сокращенный, чтобы сделать его читаемым), когда клавиши A , вправо Ctrl и CapsLock соотв. нажаты и отпущены:

Quit by pressing Ctrl-C
a=0 R-Ctrl=0 CapsLock=0
a=0 R-Ctrl=0 CapsLock=0
a=FFFFFF80 R-Ctrl=0 CapsLock=0
a=FFFFFF80 R-Ctrl=0 CapsLock=0
a=0 R-Ctrl=0 CapsLock=0
a=0 R-Ctrl=0 CapsLock=0
a=0 R-Ctrl=FFFFFF81 CapsLock=0
a=0 R-Ctrl=FFFFFF81 CapsLock=0
a=0 R-Ctrl=1 CapsLock=0
a=0 R-Ctrl=1 CapsLock=0
a=0 R-Ctrl=1 CapsLock=FFFFFF81
a=0 R-Ctrl=1 CapsLock=FFFFFF81
a=0 R-Ctrl=1 CapsLock=1
a=0 R-Ctrl=1 CapsLock=1

Изменить:

Это работает даже в том случае, если поверх другого приложения (впереди) или когда консольное приложение свернуто.

То, что вы хотели бы выполнить, зависит от вас. Тест просто печатает возвращенное значение GetKeyState (). Кстати, если вы опрашиваете состояние слишком медленно, вы можете пропустить нажатие клавиши.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...