дима заречный
Мудрец
(13026)
2 месяца назад
#include <iostream>
#include <conio.h> // Для _getch() - функция для захвата нажатия клавиш
#include <cstdlib> // Для system() - функция для выполнения команд системы
int main() {
std::cout << "Нажмите клавишу 'J', чтобы открыть командную строку." << std::endl;
while (true) {
char ch = _getch(); // Получаем нажатую клавишу
if (ch == 'j' || ch == 'J') { // Проверяем, нажата ли клавиша 'J' (в любом регистре)
std::cout << "Открытие командной строки..." << std::endl;
system("cmd.exe"); // Открываем командную строку
break; // Выходим из цикла после открытия командной строки
}
}
return 0
Ярослав Майоров
Мастер
(1325)
2 месяца назад
C++#include <iostream>
#include <windows.h>
int main() {
// Бесконечный цикл для ожидания нажатия клавиши
while (true) {
// Проверяем, была ли нажата клавиша J
if (GetAsyncKeyState('J') & 1) {
// Открываем командную строку
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
if (!CreateProcess(nullptr, "cmd.exe", nullptr, nullptr, false, 0, nullptr, nullptr, &si, &pi)) {
std::cerr << "Ошибка при открытии командной строки" << std::endl;
}
else {
// Ждем завершения командной строки
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
}
}
return 0;
}
Комментарии:
* GetAsyncKeyState используется для проверки состояния клавиши.
* CreateProcess используется для открытия командной строки.
* WaitForSingleObject и CloseHandle используются для ожидания завершения командной строки и закрытия ее дескрипторов.
Pythonimport msvcrt
while True:
# Проверяем, была ли нажата клавиша J
if msvcrt.kbhit() and msvcrt.getch() == b'j':
# Открываем командную строку
import subprocess
subprocess.call(["cmd.exe"])
Комментарии:
* msvcrt.kbhit() используется для проверки, была ли нажата клавиша.
* msvcrt.getch() используется для получения нажатой клавиши.
* subprocess.call используется для открытия командной строки.