Здравствуйте, гость ( Вход | Регистрация )

3 страниц V < 1 2 3  
Ответить в эту темуОткрыть новую тему
> Последовательное выполнение скриптов
Sergei1234
сообщение 18.9.2021, 20:12
Сообщение #41


*

Registred
Сообщений: 8
Регистрация: 18.9.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.083



еще такой вопрос перекрытое окно скриншот можно в с++ сделать? как?
клик мышью вот так венрнее не знаю что у вас

SendMessage(wndHandle, WM_MOUSEMOVE, 0, coord);
SendMessage(wndHandle, WM_LBUTTONDOWN, 0, coord);
Thread.Sleep(100);
SendMessage(wndHandle, WM_LBUTTONUP, 0, coord);
далее принтскрин неактивного окна, вернее перекрытого, с# код, я думаю кому надо разберется полезно для бота, который работает по поиску в картинке, а не с памятью, что бы не забанили
это если есть манипуляции с масштабом

public class Scale
{

[DllImport("gdi32.dll")]
static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
public enum DeviceCap
{
VERTRES = 10,
DESKTOPVERTRES = 117,

// http://pinvoke.net/default.aspx/gdi32/GetDeviceCaps.html
}


public float getScalingFactor()
{
Graphics g = Graphics.FromHwnd(IntPtr.Zero);
IntPtr desktop = g.GetHdc();
int LogicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.VERTRES);
int PhysicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.DESKTOPVERTRES);

float ScreenScalingFactor = (float)PhysicalScreenHeight / (float)LogicalScreenHeight;

return ScreenScalingFactor; // 1.25 = 125%
}

}

[DllImport("User32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool PrintWindow(IntPtr hwnd, IntPtr hDC, uint nFlags);

[DllImport("user32.dll")]
static extern bool GetWindowRect(IntPtr handle, ref Rectangle rect);


private static double SCALEoFsCREEN = new Scale().getScalingFactor();
public void CaptureWindow(IntPtr handle)
{
// Get the size of the window to capture
Rectangle rect = new Rectangle();
GetWindowRect(handle, ref rect);

// GetWindowRect returns Top/Left and Bottom/Right, so fix it
rect.Width = rect.Width - rect.X;
rect.Height = rect.Height - rect.Y;

// Create a bitmap to draw the capture into
using (Bitmap bitmap = new Bitmap((int)(rect.Width * SCALEoFsCREEN), (int)(rect.Height* SCALEoFsCREEN)))
{
// Use PrintWindow to draw the window into our bitmap
using (Graphics g = Graphics.FromImage(bitmap))
{
IntPtr hdc = g.GetHdc();
if (!PrintWindow(handle, hdc, 0))
{
int error = Marshal.GetLastWin32Error();
var exception = new System.ComponentModel.Win32Exception(error);
Debug.WriteLine("ERROR: " + error + ": " + exception.Message);
// TODO: Throw the exception?
}
g.ReleaseHdc(hdc);
}

// Save it as a .png just to demo this
bitmap.Save("Example.png");
}
}
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sergei1234
сообщение 24.9.2021, 10:54
Сообщение #42


*

Registred
Сообщений: 8
Регистрация: 18.9.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.083



а вот еще вопрос про сендмесседж, у меня несколько мониторов и клик мышью происходит только в том случае, если курсор мыши находится в испольнительном мониторе, как с этим бороться?: переставлять каждый раз курсор? на это 100 мс требуется а как без них?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
BlackBot
сообщение 24.9.2021, 18:08
Сообщение #43


**

Neophyte
Сообщений: 33
Регистрация: 17.8.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.047



Убери внизу окна программы задержку. Вместо 100 - выставить 0
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 24.9.2021, 20:39
Сообщение #44


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Цитата
Убери внизу окна программы задержку. Вместо 100 - выставить 0

Для луа эта задержка игнорируется.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sergei1234
сообщение 25.9.2021, 10:28
Сообщение #45


*

Registred
Сообщений: 8
Регистрация: 18.9.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.083



нее проверено если мышь нахолддится в другом мониторе sendmessage не пашет, movecursor тоже. может что то еще есть?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
BlackBot
сообщение 25.9.2021, 12:57
Сообщение #46


**

Neophyte
Сообщений: 33
Регистрация: 17.8.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.047



Привязка окна и активация его при необходимости действий? Работа с координатами активного привязанного окна? Тогда вроде пофиг где мышь находится...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 25.9.2021, 13:41
Сообщение #47


****

Apprentice
Сообщений: 282
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8296
Пользователь №: 19.451
Возраст: 32



2 моника, проблем нет.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sergei1234
сообщение 12.2.2022, 18:49
Сообщение #48


*

Registred
Сообщений: 8
Регистрация: 18.9.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.083



народ а взгляните скрипт Ctrl+ space как катится в уо пилот*? заранее благодарен
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sergei1234
сообщение 14.2.2022, 12:01
Сообщение #49


*

Registred
Сообщений: 8
Регистрация: 18.9.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.083



Цитата(Sergei1234 @ 12.2.2022, 18:49) *

народ а взгляните скрипт Ctrl+ space как катится в уо пилот*? заранее благодарен
я имю ввиду как ьзаслать в перекрытое окно нажатие двух клавиш, через sendmessage or postmessage

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

3 страниц V < 1 2 3
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.3.2024, 12:09
Designed by Nickostyle