Ajuda para chamar uma função

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Ajuda para chamar uma função

Re: Ajuda para chamar uma função

Post by tcanoas » 22 Oct 2019, 14:50

Para ler arquivo ini, você pode aproveitar, e usar o que já existe aqui no próprio fórum.

Segue abaixo o link, de uma biblioteca para poder ler e gravar em arquivo ini:

https://autohotkey.com/board/topic/62917-ini-library-fast-in-memory-functions-no-regex/

Atenciosamente,
Tiago Canoas

Re: Ajuda para chamar uma função

Post by Gio » 21 Oct 2019, 09:25

Bom dia fstninja.

Seja bem-vindo ao fórum da comunidade do AutoHotkey.

A função que quero fazer é para eu escolher a tecla desejada para suspender o script sem precisar compilar o script novamente!
Existem várias formas de fazer isso, mas antes de falarmos dela, é importante saber que o interpretador do AutoHotkey por padrão NÃO executa código dinâmico (ou seja, código escrito dentro de variáveis). Agora tendo dito isto, existem várias formas de fazer isso.

1. Usando #Include

:arrow: O #include te permite designar um arquivo cujo conteúdo será inserido na exata posição do comando. Como é uma diretiva pré-interpretação, este conteúdo pode conter códigos sem problema. Acredito que esta será a forma mais fácil de implementar o que você deseja. O único cuidado que você deve ter é que a diretiva só roda no início do script (ou seja, não servirá se você quiser alterar o arquivo da hotkey durante a execução do script principal).

2. Hotkeys dinâmicas usando o comando Hotkey

:arrow: Com o comando Hotkey é possível criar hotkeys dinâmicas. Vi que o código que você postou implementa exatamente isso, então veja que você poderia por exemplo escrever somente o nome da letra em um arquivo e depois fazer o script implementar a hotkey que estiver escrita no arquivo usando o comando Hotkey.

3. AutoHotkey_H

:arrow: A versão _H do autohotkey contém uma DLL que permite executar quantas chamadas com código AutoHotkey você precisar (embora elas não vão ser como um script só, mas o código pode ser executado sequencialmente).

4. Usando o comando Run

:arrow: Usando o comando Run você pode executar um script do AutoHotkey de dentro de outro script. Sendo assim, é possível executar um script diferente (dentre vários pré-escritos ou pós-escritos) conforme a letra escrita no arquivo. É possível também escrever o arquivo de dentro do script (usando FileAppend) e depois executá-lo em seguida usando o comando Run.



Acredito que com uma dessas opções você vai conseguir implementar o que deseja sem problemas. Se tiver alguma dificuldade, pode postar abaixo :thumbup:

Ajuda para chamar uma função

Post by fstninja » 20 Oct 2019, 13:45

to tentando fazer meu script ler o arquivo que criei em .ini , e eu so consegui fazer ele ler com a função msgbox.
meu arquivo .ini esta assim

Code: Select all

q::Suspend
só que não estou conseguindo fazer ele ler esse code sem ser pelo msgbox
ta ai meu código
A função que quero fazer é para eu escolher a tecla desejada para suspender o script sem precisar compilar o script novamente!
oque eu queria alterar esta na linha 6 e 7 espero que me ajudem!

Code: Select all

#NoEnv
SendMode Input
_auto := true

~LButton::autofire()
+LButton::_auto := ! _auto
Fileread, test, seting.ini
msgbox, %test%
autofire()
{
global _auto
if _auto
{
Loop
{
if GetKeyState("LButton", "P")
{
Sleep 1
mouseXY(0, -2)
Fileread, test, seting.ini
Sleep 1
}
else
break
} ;; loop
} ;; if
} ;; autofire()

mouseXY(x,y)
{
DllCall("mouse_event",uint,1,int,x,int,y,uint,0,int,0)
}

Top