Недавние сообщения

Страницы: 1 ... 8 9 [10]
91
Инструменты и справка по AutoIt / Re: Развитие русской справки
« Последний ответ от БлагоѨръ Отправлен Январь 14, 2018, 03:40:57 »
Как можно помочь в развитии справки до актуальной версии AutoIt?
92
Примеры и рабочие проекты / Re: [AutoShoot あ] Автоматическая стрельба
« Последний ответ от БлагоѨръ Отправлен Январь 14, 2018, 03:07:12 »
Где-то читал комментарий вроде-бы администратора
"AutoIt и так уже скомпроментирован"
А тут позволяют теме существовать ...
Странные люди ...
93
Да, действительно, в упрощённой теме рамка узкая :(
Ну, значит используем код Alofa :beer:
94
Цитировать
Так?
Нет, в Вашем примере рамка узкая.
95
ra4o  [?]
Цитировать
ему необходима такая рамка, но без возможности изменения раззмеров окна
Так?
Код: AutoIt [Выделить]
#include <windowsconstants.au3>
GUICreate("",Default,Default,Default,Default,BitXOR($WS_OVERLAPPEDWINDOW, $WS_THICKFRAME))
GUISetState()
Do
Until GUIGetMsg() = -3

96
OffTopic
... На Win10х64 работает!
На ней родимой и писал, только чтобы увидеть "широкую рамку" пришлось включать классическую тему оформления.
97
Цитировать
Этот костыль имеет смысл только на Win7 и ОС старее.
На Win10х64 работает !
98
Общие вопросы по AutoIt / Re: Проблема кодировки AutoIt3Wrapper Obfuscator
« Последний ответ от sngr Отправлен Январь 14, 2018, 01:40:59 »
99
Общие вопросы по AutoIt / Проблема кодировки AutoIt3Wrapper Obfuscator
« Последний ответ от winix Отправлен Январь 14, 2018, 01:12:56 »
Стояла старая версия и проблем не знал. Scite писал в ansi, единственное неудобство, на github при просмотре крюкозябры и n++ думал что это koi8 и менял заглавные буквы знаками, но я эти места просто не трогал.

Решил я прикрутить врапер, скачал портативную scite, в итоге всё накрылось. Снёс всё и поставил с инсталятора последний autoit и полный scite.
В итоге scite начал показывать крюкозябры, но обошлось конвертированием через n++ в utf8.

Вторая проблема которая так и не решилась, невозможно создать кирилический файл. Если создать файл пишет всегда вопросы, даже если туда вставлять текст.
(нажмите для показа/скрытия)

Но вот решил настроить обфускатор и всё упёрлось в то что он работает только с ansi, а scite его не понимает потомучто работает в utf8.

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

После запуска обфускатора он создаёт свой файл _stripped.au3 который в n++ открывается как ansi  и этиже крюкозябры я получаю в gui , но переключив в utf8 получаю нормальный текст, сохраняю уже как utf8. Перетаскиваю его в scite, получаю нормальный текст.
Собираю этот _stripped.au3 и получаю вроде как уже нормально почти всё, кроме вот этот строчки
было
 =(  °w° )=
стало
 =(  �w� )=
но этотже  опять стал почемуто ansi, так что второй раз это собрать я не могу.

В общем мы имеем исходники которые в utf8 понимаются scite и врапером. И врапер который из этих исходников делает ansi и не может их нормально собрать.

Есть какието простые решения ?
Переучить stite в ansi , вроде как не плохой вариант, да он и сам хочет, но не знаю как.
Найти тот кусок кода во врапере который делает этот промежуточный исходник и перекодировать его перед выводом.

Имел ктото ктото такие проблемы при сборке, ведь из коробки не работает?
Может есть патченый врапер?
Неужели никто автору ещё баг не описал или только мне не повезлор
100
Общие вопросы по AutoIt / [Мышь, клавиатура] Проблема с программным рисованием мышью
« Последний ответ от D1MA12 Отправлен Январь 14, 2018, 00:30:58 »
Недавно нашел довольно полезную приватную программу для работы с социальными сетями. У этой программы есть демо версия, которая включает в себя все функции полной, только с одним исключением: через некоторое количество времени после запуска выскакивает окошко, в котором необходимо пройти проверку. Суть проверки заключаться в соединении в поле для рисования некоторых точек.
Программа должна работать на протяжении длительного времени, соответственно таких проверок нужно проходить до 100 за день. Мне это надоело и я решил найти способ обойти эту защиту. Сначала были перепробованы популярные автокликеры такие, как AutoIt и Clickermann. Clickermann не смог даже активировать это окно и все клики и движения мыши, которые он создавал, вообще не действовали на это окно. AutoIt с помощью функции WinActivate смог активировать окно, но после этого ни одна функция, связанная с движением или кликами мыши не работала. Это выглядело как будто скрипт просто завис. Потом я прочитал про сообщения Windows и программную эмуляцию мыши и попытался создать свой собственный автокликер на C++. Способов было не много, всего 2: с помощью SendMessage или с помощью SendInput(слышал про mouse_event, но он уже устаревший).
Сначала использовав spy++ просмотрел список сообщений, которые принимает окно, там же и узнал, что заголовок окна рисования, это System.Drawing.Bitmap. Пытался отсылать такие же сообщения, но окно никак не реагировало:
SendMessage(mainWin, WM_NCHITTEST, NULL, (LPARAM)MAKELONG(642, 706));
SendMessage(mainWin, WM_NCHITTEST, NULL, (LPARAM)MAKELONG(642, 706));

SendMessage(mainWin, WM_LBUTTONDOWN, NULL, (LPARAM)MAKELONG(10, 10));
Sleep(100);
SendMessage(mainWin, WM_MOUSEMOVE, NULL, (LPARAM)MAKELONG(50, 50));
Sleep(100);
SendMessage(mainWin, WM_LBUTTONUP, NULL, (LPARAM)MAKELONG(50, 50));
Хотя если это отослать в тот же Paint, то линия рисуется.
Далее я захотел попробовать второй способ и написав такой код:
INPUT input;
input.type = INPUT_MOUSE;
input.mi.mouseData = 0;
input.mi.dx = 620 * (65536 / GetSystemMetrics(SM_CXSCREEN));
input.mi.dy = 95 * (65536 / GetSystemMetrics(SM_CYSCREEN));
input.mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN;
SendInput(1, &input, sizeof(input));
Sleep(50);

for (int i = 0; i < 120; i++)
{
input.type = INPUT_MOUSE;
input.mi.mouseData = 0;
input.mi.dx = (500+i) * (65536 / GetSystemMetrics(SM_CXSCREEN));
input.mi.dy = 95* (65536 / GetSystemMetrics(SM_CYSCREEN));
input.mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE;
SendInput(1, &input, sizeof(input));
Sleep(50);
}

input.type = INPUT_MOUSE;
input.mi.mouseData = 0;
input.mi.dx = 620 * (65536 / GetSystemMetrics(SM_CXSCREEN));
input.mi.dy = 95 * (65536 / GetSystemMetrics(SM_CYSCREEN));
input.mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTUP;
SendInput(1, &input, sizeof(input));
Sleep(50);
Если этот код выполнить при главном окне Paint, то линия рисоваться будет, а окошко искомой программы даже не активируется.
Немного погуглив, я нашел причину такого поведения:
1) Программа использует DirectInput, т.е берет все произошедшие действия прямо с драйвера устройства.
Либо
2) Все вышеуказанные эмулированные действия активируют флаги LLKHF_INJECTED и LLKHF_LOWER_IL_INJECTED, с помощью которых приложение очень легко может проверить эти действия на эмуляцию. Поиски решения зашли в тупик.

Но через неделю, я решил переместить это приложение на сервер, чтобы проходить проверки с любого места. Приложение спокойно работало и я проходил его проверки со смартфона сидя на диване и смотря телевизор. И тут меня осенило - на серверных компьютерах ведь нет мыши и все действия и так эмулируются драйвером RDP!

У меня было два варианта - написать свой RDP или попробовать пройти круг заново, начиная с автокликкеров.
Я с них и начал, и самый первый меня не подвел: AutoIt перестал зависать и преспокойно эмулировал движения и клики мыши в этом злосчастном окошке. Создание программы, для соединения точек я описывать не буду, это не так важно. Также напишу, что я понимаю, что человек не может соединять точки мышью идеальными прямыми, поэтому моя программа это учитывает и делает помехи.

А теперь суть проблемы:
Когда я своей мышью рисую линию, то она получается где-то в 2 раза тоньше, чем та линия, которая рисуется с помощью AutoIt. Прямые линии идентичны, но если линия "косит", то программная делается в 2 раза больше.
Вот ниже примеры моего ввода мышкой и программного(если что, левое и правое изображение созданы при разном положении точек, что надо соединить):

Рисую я таким образом:
Код: AutoIt [Выделить]
;~ Тут код обнаружения окошка на котором рисуем

_FileReadToArray ( $sFilePath,$aArray) ;~ Координаты для отрисовки линии находяться в файле
$iUbound = UBound($aArray)

MouseMove($aArray[1],$aArray[2]);~ Перемещаем кусор на первую точку
Sleep(100)
MouseClick("left")
Sleep(100)
MouseDown("left")
 For $i = 1 To $iUbound-2 Step 2
    MouseMove($aArray[$i],$aArray[$i+1],20) ;~ Рисуем точку
 Next
Sleep(100)
MouseUp("left");
 


В итоге проверку программа пройти не может. Может кто-то стыкался с такой проблемой и подскажет решение.
Страницы: 1 ... 8 9 [10]