AutoHotKey probleem met meerdere functies in één script

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • JeroenH
  • Registratie: Januari 2003
  • Laatst online: 18:35
Ik heb een AutoHotKey probleem waar ik met all handleidingen en tutorials niet uitkom, hopelijk heeft iemand hier enig idee wat ik verkeerd doe. Om te beginnen, dit is het script tot nu toe:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
^+c::
test3:=GetPersNrAanvrager()
MsgBox %test3%
return

/* Haal het personeelsnummer van de aanvrager op */
GetPersNrAanvrager()
{
  click 540,648
  send ^a
  send ^c
  TicketInhoud=%clipboard%
  stringGetPos,PosAanv,TicketInhoud,Aanvrager
  stringGetPos,PosOnt,TicketInhoud,Ontvanger
  PosAanv+=11
  LenAanv:=(PosOnt-PosAanv)-11
  PosPerNrAanv:=PosAanv+LenAanv+2
  StringMid,PerNrAanv,teststring,%PosPerNrAanv%,6
  return PerNrAanv
}


Het probleem is dat als ik dit script run, ik deze foutmelding krijg:

Afbeeldingslocatie: http://dl.dropbox.com/u/50384722/Autohotkeyprobleem.png

Ik snap er helemaal niets van. Ik roep de functie toch echt aan met de juiste naam... Ik heb al alle documentatie van AHK doorgespit, het internet afgestruind op zoek naar forums en andere documentatie/tutorials en uiteraard ook hier op tweakers de search flink aan het werk gezet.

Kan iemand me vertellen welk (ongetwijfeld klein en dom) foutje ik aan het maken ben :)

Xtool D1 10w laser cutter - IoT moet nooit op internet


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Wat nu als je de functie-declaratie boven de eerste vier regels zet?

https://oneerlijkewoz.nl
Het ergste moet nog komen / Het leven is een straf / Een uitgestrekte kwelling van de wieg tot aan het graf


Acties:
  • 0 Henk 'm!

  • JeroenH
  • Registratie: Januari 2003
  • Laatst online: 18:35
Dan werkt het ook niet, maar op een andere manier. Het script 'compileert' dan wel goed, maar als ik op CTRL C druk (de gedefinieerde hotkey) dan wordt de function niet uitgevoerd. De code wordt dan zo:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* Haal het personeelsnummer van de aanvrager op */
GetPersNrAanvrager()
{
  MsgBox test
  click 540,648
  send ^a
  send ^c
  TicketInhoud=%clipboard%
  stringGetPos,PosAanv,TicketInhoud,Aanvrager
  stringGetPos,PosOnt,TicketInhoud,Ontvanger
  PosAanv+=11
  LenAanv:=(PosOnt-PosAanv)-11
  PosPerNrAanv:=PosAanv+LenAanv+2
  StringMid,PerNrAanv,teststring,%PosPerNrAanv%,6
  return PerNrAanv
}

^+c::
test3:=GetPersNrAanvrager()
MsgBox %test3%
return


Ik heb er als test even een MsgBox test ingezet (regel 4), maar die wordt niet uitgevoerd.

Ik snap er werkelijk geen biet van, ik weet bijna zeker dat het een heel klein dingetje is wat ik nog niet snap :'(

-edit-

Dit werkt wel gewoon goed:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
test1:=functie1()
test2:=functie2()
MsgBox %test1%

functie1()
{
  MsgBox functie1
  return 2
}

functie2()
{
  MsgBox functie2
  return
}


Da's toch niet anders? Of kijk ik toch niet goed?

[ Voor 12% gewijzigd door JeroenH op 11-12-2012 12:56 ]

Xtool D1 10w laser cutter - IoT moet nooit op internet


Acties:
  • 0 Henk 'm!

  • HelloJed
  • Registratie: December 2012
  • Laatst online: 19-09-2024
Ik heb het als volgt aan de praat gekregen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
; Haal het personeelsnummer van de aanvrager op 
GetPersNrAanvrager()
{
  MsgBox test
  click 540,648
  send ^a
  send ^c
  TicketInhoud=%clipboard%
  stringGetPos,PosAanv,TicketInhoud,Aanvrager
  stringGetPos,PosOnt,TicketInhoud,Ontvanger
  PosAanv+=11
  LenAanv:=(PosOnt-PosAanv)-11
  PosPerNrAanv:=PosAanv+LenAanv+2
  StringMid,PerNrAanv,teststring,%PosPerNrAanv%,6
  return PerNrAanv
}

^c::
test3:=GetPersNrAanvrager()
MsgBox %test3%
return


Dus in conclusie:
- commentaar moet voorafgegaan worden door ";" en niet "/* */"
- keys worden niet gescheiden door "+" maar moeten naast elkaar geschreven worden, dus "^+c::" wordt "^c::"

Have fun! :)

Edit: ik heb wel de inhoud van de GetPersNrAanvrager functie niet getest, alleen de algemene structuur, dus als er daar nog problemen mee zijn, laat maar iets weten.

[ Voor 10% gewijzigd door HelloJed op 11-12-2012 14:06 ]


Acties:
  • 0 Henk 'm!

  • JeroenH
  • Registratie: Januari 2003
  • Laatst online: 18:35
*pets* Slaat zichzelf voor zijn voorhoofd. Ik wist dat het iets kleins moest zijn... Ik dacht dat ik die comments goed had gedaan, as per instructions: http://www.autohotkey.com/docs/Scripts.htm#Comments

Hoe dan ook ontzettend bedankt voor de hulp! Nu werkt alles zoals ik verwacht.

Xtool D1 10w laser cutter - IoT moet nooit op internet


Acties:
  • 0 Henk 'm!

  • HelloJed
  • Registratie: December 2012
  • Laatst online: 19-09-2024
JeroenH schreef op dinsdag 11 december 2012 @ 14:37:
*pets* Slaat zichzelf voor zijn voorhoofd. Ik wist dat het iets kleins moest zijn... Ik dacht dat ik die comments goed had gedaan, as per instructions: http://www.autohotkey.com/docs/Scripts.htm#Comments

Hoe dan ook ontzettend bedankt voor de hulp! Nu werkt alles zoals ik verwacht.
Geen probleem 8)

Ik heb de documentatie er eens op nagelezen en inderdaad, comments met "/* */" zijn toegelaten.
Maar er schuilt wel een addertje onder het gras: de begin- en eind tag moet zich altijd op de eerste positie van een lijn bevinden. 8)7
Dus in uw geval zou het volgende ook correct geweest zijn:
code:
1
2
/* Haal het personeelsnummer van de aanvrager op  
*/
Pagina: 1