Avrora.cpp (2.1 КБ)
В общем просто программа для эмуляции набора текста считанного из файла. Изменяйте только путь к нужному файлу и, если хотите, поэксперементируйте со скоростью( строка Sleep(50 + rand() % 150)), но если скорость набора будет слишком большая, аврора закроется автоматически.
То есть вы спокойно отлаживаете код, где удобно, а потом экспортируете его в аврору с помощью этой программки.
Для этого:
Открываете этот срр и редактор кода в Авроре
Запускаете срр и клацаете мышью в поле редактора в течение 5 секунд
Ждем пару секунд и видим, как появляются заветные буковы
4 лайка
admin
12.Март.2021 06:01:23
2
Progger, приветствую в сообществе. Отличная работа!
1 лайк
admin
12.Март.2021 07:43:47
3
Мне довольно понравилась твоя идея и я решил немного доработать. Данная версия печатает текст из буфера обмена при нажатии кнопки F2.
Скомпилированная версия: ClipboardWriter.zip (7.8 КБ)
#include <iostream>
#include <fstream>
#include <Windows.h>
#include <locale>
#include <stdio.h>
#include <sstream>
#include <time.h>
using namespace std;
void pressKeyB(char mK)
{
HKL kbl = GetKeyboardLayout(0);
INPUT ip;
ip.type = INPUT_KEYBOARD;
ip.ki.time = 0;
ip.ki.dwFlags = KEYEVENTF_UNICODE;
if ((int)mK < 65 && (int)mK>90) //for lowercase
{
ip.ki.wScan = 0;
ip.ki.wVk = VkKeyScanEx(mK, kbl);
}
else //for uppercase
{
if ((int)mK > 0) {
ip.ki.wScan = mK;
ip.ki.wVk = 0;
}
}
ip.ki.dwExtraInfo = 0;
SendInput(1, &ip, sizeof(INPUT));
ip.ki.dwFlags = KEYEVENTF_UNICODE | KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));
}
void pressEnter()
{
INPUT ip;
ip.type = INPUT_KEYBOARD;
ip.ki.time = 0;
ip.ki.dwFlags = KEYEVENTF_UNICODE;
ip.ki.wScan = VK_RETURN; //VK_RETURN is the code of Return key
ip.ki.wVk = 0;
ip.ki.dwExtraInfo = 0;
SendInput(1, &ip, sizeof(INPUT));
ip.ki.dwFlags = KEYEVENTF_UNICODE | KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));
}
void pressTab()
{
INPUT ip;
ip.type = INPUT_KEYBOARD;
ip.ki.time = 0;
ip.ki.dwFlags = KEYEVENTF_UNICODE;
ip.ki.wScan = VK_TAB; //VK_RETURN is the code of Return key
ip.ki.wVk = 0;
ip.ki.dwExtraInfo = 0;
SendInput(1, &ip, sizeof(INPUT));
ip.ki.dwFlags = KEYEVENTF_UNICODE | KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));
}
wstring GetClipboardText()
{
if (!OpenClipboard(nullptr))
{
CloseClipboard();
return L"";
}
HANDLE hData = GetClipboardData(CF_UNICODETEXT);
if (hData == nullptr)
{
CloseClipboard();
return L"";
}
wchar_t* pszText = static_cast<wchar_t*>(GlobalLock(hData));
if (pszText == nullptr)
{
CloseClipboard();
return L"";
}
wstring text(pszText);
GlobalUnlock(hData);
CloseClipboard();
return text;
}
int main()
{
srand(time(0));
wstring clipboardText = GetClipboardText();
string s(clipboardText.begin(), clipboardText.end());
while (true) {
if ((GetAsyncKeyState(VK_F2) & 0x8000)) {
cout << "writing...\n";
for (int i = 0; i < s.length(); i++)
{
switch (s[i]) {
case '\n':
pressEnter();
case '\t':
break;
pressTab();
break;
default:
pressKeyB(s[i]);
break;
}
Sleep(150 + rand() % 200);
}
}
Sleep(1);
}
system("PAUSE");
return 0;
}
1 лайк
Спасибо! Тоже отличный вариант
Очень занимательно и круто! Надо подумать, может найду способ как улучшить алгоритм)
1 лайк
Rajey
12.Март.2021 22:51:19
6
запускаем скрипт
копируем что нужно
нажимаем End
???
PROFIT
import keyboard
import pyperclip
keyboard.add_hotkey('end', lambda:keyboard.write("".join(pyperclip.paste().split("\n")).replace('\t', ''), 0.15, 0))
keyboard.wait('esc')
1 лайк
Круто троянами доработал конечно))
Ну я скомпилированную версию закинул на вирус тотал и 15 антивирусов нашли там троян
1 лайк
admin
17.Март.2021 08:17:36
10
Ну скомпилируй сам тогда, я ж исходник приложил. Это ложноположительные срабатывания. Any.run в помощь
Боюсь представить твою реакцию, когда ты сунешь в вирустотал активатор твоей винды или любой репак любой игры и увидишь там десятки срабатываний
8 лайков
DanteF
19.Март.2022 12:13:25
12
Очень удобно! Только один нюанс - перенос строки печатается дважды. Это обязательно? или можно где-то в коде дополнительный перенос выключить?
1 лайк
admin
19.Март.2022 16:15:52
13