Вставка кода из любого файла в аврору

Avrora.cpp (2.1 КБ)

В общем просто программа для эмуляции набора текста считанного из файла. Изменяйте только путь к нужному файлу и, если хотите, поэксперементируйте со скоростью( строка Sleep(50 + rand() % 150)), но если скорость набора будет слишком большая, аврора закроется автоматически.

То есть вы спокойно отлаживаете код, где удобно, а потом экспортируете его в аврору с помощью этой программки.

Для этого:

  1. Открываете этот срр и редактор кода в Авроре
  2. Запускаете срр и клацаете мышью в поле редактора в течение 5 секунд
  3. Ждем пару секунд и видим, как появляются заветные буковы
4 лайка

Progger, приветствую в сообществе. Отличная работа!

1 лайк

Мне довольно понравилась твоя идея и я решил немного доработать. Данная версия печатает текст из буфера обмена при нажатии кнопки 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 лайк
  1. запускаем скрипт
  2. копируем что нужно
  3. нажимаем End
  4. ???
  5. 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 лайк

Ну скомпилируй сам тогда, я ж исходник приложил. Это ложноположительные срабатывания. Any.run в помощь

Боюсь представить твою реакцию, когда ты сунешь в вирустотал активатор твоей винды или любой репак любой игры и увидишь там десятки срабатываний :smiley:

8 лайков

Очень удобно! Только один нюанс - перенос строки печатается дважды. Это обязательно? или можно где-то в коде дополнительный перенос выключить?

1 лайк

Советую использовать этот способ вставки: Реверс-инжиниринг программы ACO Avrora: исходники, как вставлять текст в аврору