Что нового

поиск координат экрана

serYOga

Новичок
Сообщения
5
Репутация
0
Здравствуйте. Какой то командой можно узнать координаты экрана? типо кликера, только надо чтоб он координаты сохранял. Как ещё объяснить, к примеру есть 10 точек экрана и при нажатии куда то он координаты сохраняет в тхт файл.. Кнопку сделать назвать её скажем точка 1 и так до точка 10, нажимаешь кнопку и мышкой куда надо кликаешь и чтоб показал или сохранил координаты.
 

SealAlbinos

Продвинутый
Сообщения
154
Репутация
57
не совсем понял
но просто для теста
Наводите мышку куда нужно, нажимаете F1 и программа записывает координаты в edit. Чтоб очистить нажмите F3
а там уже доведете, то как вам будет удобней
P.s для примера можете после добавления координат нажать F2 и мышка наведется на эти координаты
Код:
#include <GuiEdit.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

HotKeySet("{F1}", "Save")
HotKeySet("{F2}", "start")
HotKeySet("{F3}", "clear")

$GUI = GUICreate("", 103, 183, 0, 0, $WS_POPUP, $WS_EX_TOPMOST)
$Edit1 = GUICtrlCreateEdit("", 0, 0, 129, 209)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd

Func Save()
    $apos = MouseGetPos()
    _guictrledit_inserttext($edit1, $apos[0] & "," & $apos[1] & @CRLF)
EndFunc

Func clear()
    GUICtrlSetData($edit1, "")
EndFunc

Func start()
    $line = _guictrledit_getlinecount($edit1)
    For $i = 0 To $line - 2
        $coord = _guictrledit_getline($edit1, $i)
        $coord = StringSplit($coord, ",", 2)
        If NOT @error Then
            MouseMove($coord[0], $coord[1],10)
        EndIf
    Next
EndFunc
 
Последнее редактирование:

All2khoff

Продвинутый
Сообщения
352
Репутация
65
Autoit v3 Window Info разве не дает нужный функционал? ставится в комплекте...
 
Автор
S

serYOga

Новичок
Сообщения
5
Репутация
0
Спасибо огромное ребята, я попытался найти литературу по Autoit на русском, чтоб разобраться но что то не получилось, в топике на ссылку нажал и там тоже не найдено табличка выскочила. почему он у меня координаты не принимает?
$a1 = FileReadLine("coords.txt",1)
MouseClick("left",$a1,1)
в тхт к примеру координаты 500,500 на первой строке, но он их не понимает, по длине видит по высоте нет, думаю тут StringSplit нужен, но я не понял совершенно как это сделать.
Сообщение автоматически объединено:

Постараюсь объяснить зачем это, координаты часто меняются и чтоб скрипт не переделывать хочу чтоб он брал координаты из текстового файла. В таком случае просто в текстовом внести изменения и всё..
 
Последнее редактирование:

SealAlbinos

Продвинутый
Сообщения
154
Репутация
57
F1 - Записать координаты
F2 - Пробный запуск (наведение мышки по записанным координатам)
F3 - Очистить список
F4 - Сохранить записанные координаты в файл
F5 - Загрузить координаты из файла

Код:
#include <GuiEdit.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

HotKeySet("{F1}", "Save")
HotKeySet("{F2}", "start")
HotKeySet("{F3}", "clear")
HotKeySet("{F4}", "save_file")
HotKeySet("{F5}", "load")

$GUI = GUICreate("", 103, 183, 0, 0, $WS_POPUP, $WS_EX_TOPMOST)
$Edit1 = GUICtrlCreateEdit("", 0, 0, 129, 209)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd

Func Save()
    $apos = MouseGetPos()
    _guictrledit_inserttext($edit1, $apos[0] & "," & $apos[1] & @CRLF)
EndFunc

Func save_file()
    $hFile = FileOpen("coords.txt", 2)
    FileWrite($hFile, GUICtrlRead($Edit1))
    FileClose($hFile)
EndFunc

Func load()
    $hFile = FileOpen("coords.txt", 0)
    $sChars = FileRead($hFile)
    GUICtrlSetData($edit1,$sChars)
    FileClose($hFile)
EndFunc

Func clear()
    GUICtrlSetData($edit1, "")
EndFunc

Func start()
    $line = _guictrledit_getlinecount($edit1)
    For $i = 0 To $line - 2
        $coord = _guictrledit_getline($edit1, $i)
        $coord = StringSplit($coord, ",", 2)
        If NOT @error Then
            MouseMove($coord[0], $coord[1],10)
        EndIf
    Next
EndFunc
 
Верх