Функция автоматической смены клавиш не является глобальной - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь создать функцию, которая принимает координаты, копирует это поле и называет переменную, но переменная кажется локальной и не переносится из функции.Кажется, что координаты (x, y) и delay работают нормально, но переменная desc всегда выходит пустой.Пожалуйста, помогите!

newest(x, y, delay, variable)

   {


 sleep, %delay%



    click, %x%,%y%  ;desc machine field
    clipboard =           ; empty the clipboard 
    Loop
    {
        If GetKeyState("F2","P")  ; terminate the loop whenever you want by pressing F2
        break
        Send {Ctrl Down}c{Ctrl Up}
            if  clipboard is not space   
                break  ; Terminate the loop

        }
    variable := clipboard ;
    msgbox %variable%
    return 

   }

^k::

newest(654, 199, 200, desc)

msgbox %desc%

return

1 Ответ

0 голосов
/ 12 декабря 2018

С точки зрения функции, параметры, по сути, такие же, как локальные переменные, если только они не определены как ByRef .

ByRefделает один параметр функции псевдонимом для переменной, что позволяет функции назначать новое значение этой переменной.

newest(x, y, delay, ByRef variable){
    sleep, %delay%
    click, %x%,%y%   ; desc machine field
    clipboard =           ; empty the clipboard 
    Loop
    {
        If GetKeyState("F2","P")  ; terminate the loop whenever you want by pressing F2
            break
        Send {Ctrl Down}c{Ctrl Up}
        If  clipboard is not space   
            break  ; Terminate the loop
    }
    variable := clipboard
    msgbox %variable%
    return 
}

^k::
    newest(54, 199, 200, desc)
    msgbox %desc%
return
...