Jump to content

Extra functionaliteit voor FMP met AutoIt (Win only)


Recommended Posts

In een post van Mike Swetsloot stond dat hij een script had geschreven in AutoIt (Thx Mike!). :D

Aangezien ik FMP ook batch files laat aanroepen, indien er meerdere send events achter elkaar nodig zijn, heb ik het freeware programma gedownload.

En ik moet zeggen ik ben zeer aangenaam verrast!

AutoIt is een krachtige basic like scripttaal waarmee je alles kunt doen waarvoor je anders een batch file of vb scipt schreef en meer...je kunt er ook heel eenvoudig een GUI mee maken en toetsaanslagen automatiseren.

Ik werk nog maar heel kort met AutoIt maar heb al een splash screen, een progressbar en een tree view draaien, mijn dvd lade gaat automatisch open (als ik dat wil), ik kan een kiosk scherm minimaliseren en uiteraard backupjes laten uitvoeren en mijn apps laten installeren (de codes staan o.a. in de help file!).

De mogelijkheden zijn echt ongekend.

De gecompileerde exe files sla je op in een container die je kan exporteren en oproepen via een send event OF je kiest er voor de broncode op te slaan in een veld (superhandig editen), Joris Aarts heeft een voorbeeldje ge-upload op het forum. http://www.clarify.net/viewtopic.php?t=2528&start=0&postdays=0&postorder=asc&highlight=

Ik hoop dat jullie interesse is gewekt.

 

 

http://www.autoitscript.com/

http://www.shrum.net/files/ (grafische builder)

Link to comment
  • Replies 50
  • Created
  • Last Reply

Top Posters In This Topic

  • 1 month later...

Ik wou alvast voor 't eerst mijn "Get(currentURL)"-probleem eens oplossen met dit tooltje, maar ik krijg er niks uit... :cry:

 

Ik wil op een knop drukken die uit Firefox (& IE) de URL gaat copiëren en in het actieve veld plakt.

 

In FM:

Goto field

AutoIt.exe compilatie aanroepen

 

Hier staat dan in:

 

WinActivate("FIREFOX.exe", "") ; doet al niks...:?:

WinWaitActive("Mozilla Firefox")

Send ("^l")

Send ("^c")

WinActivate("FileMaker.exe", "")

WinWaitActive("FileMaker")

Send ("^v")

 

Nu kom ik 3 verschillende wijzen tegen om een virtuele toets door te zenden. Ik zie bv ook nog de stijl:

 

Send ("{^c}")

Send ("FIREFOX.exe{^c}")

Send("{CTRLDOWN}") ipv het ^-tekentje

 

1) "Wie van de 4?" :lol:

 

2) Hoe zit dat verder met de window benamingen? Is het voldoende dat in WinWaitActive("Mozilla Firefox") zit wat hier tussen haakje staat, of moet het de volledige windowtitel zijn? Of al zeker het eerste deel ipv het laatste?

Link to comment
Nu kom ik 3 verschillende wijzen tegen om een virtuele toets door te zenden. Ik zie bv ook nog de stijl:

 

Send ("{^c}")

Send ("FIREFOX.exe{^c}")

Send("{CTRLDOWN}") ipv het ^-tekentje

 

1) "Wie van de 4?" :lol:

 

2) Hoe zit dat verder met de window benamingen? Is het voldoende dat in WinWaitActive("Mozilla Firefox") zit wat hier tussen haakje staat, of moet het de volledige windowtitel zijn? Of al zeker het eerste deel ipv het laatste?

ad.1) GEEN :lol: > Send ("^c")

ad.2) The title of the window to activate, volledig zoals deze bovenaan

je venster staat, daar zitten jouw problemen.

 

Gido, nog even dit:

 

1. Als je serieus met AI aan de slag gaat, installeer dan SCiT editor.

Mooie editor met toegang tot uitstekende AutoIt HelpFile.

2. Er staat een tooltje bij de AI files die de spec's van de open window

geeft (AutoIt Window Info) waaronder de title.

3. Kijk op het forum AI forum ik had al een vraag gepost (van Arnie).

Daar komen zeker (snel) suggesties op.

4. Neem de voorbeeldfiles eens rustig door, daar kan je veel van leren.

5. Ook zo'n ongeduldig type - like me - neem ik aan?

6. Huh, dit was toch een FileMaker forum? :lol:

 

Enjoy!,

 

Arnoud

 

PS

 

- Bij mijn IE wjzigt de titel al naar gelang de URL, dus dan heb je

een probleem met die scriptcommando's.

- Er moet toch een temp.url of zo, zijn die je kan uitlezen?

- Gewoon naar de AI guru's op het AI forum en post je probleem.

http://www.hiddensoft.com/forum/

Link to comment
ad.2) The title of the window to activate, volledig zoals deze bovenaan je venster staat, daar zitten jouw problemen.

Inderdaad, ik dacht m.i. logischerwijze dat dit de naam uit de lopende processen in Windows moest zijn, maar dit moet helaas ook al de windowtitelnaam zijn...

 

2. Er staat een tooltje bij de AI files die de spec's van de open window geeft (AutoIt Window Info) waaronder de title.

Ondanks/dankzij mijn ongeduld had ik dat al gebruikt, maar niet voor WinActivate...:lol:

 

5. Ook zo'n ongeduldig type - like me - neem ik aan?

Alleen als iets niet logisch lijkt te werken...:wink:

 

- Er moet toch een temp.url of zo, zijn die je kan uitlezen?

Ik hoop idd dat ook de laatste URL reeds in een "url history" file zit ergens...

 

En bedankt voor de toelichting 8)

Link to comment

"Tjonge, tjonge", dat werkt dus waanzinnig goed, hé! 8):o

Blijkbaar veel sneller dan wanneer je zelf een window activeert ook.

 

Get(CurrentURL).exe scriptjes:

 

Voor Firefox

 

Opt("WinTitleMatchMode", 2) ; deze mode staat toe dat je slechts 'n deel v/d titel moet definiëren

WinActivate("Firefox")

WinWaitActive("Firefox")

Send("^l") ; selecteert address bar

Send("^c")

WinActivate("FileMaker")

WinWaitActive("FileMaker")

Send("^v")

Send("{NUMPADENTER}")

 

Voor IE

 

Opt("WinTitleMatchMode", 2)

WinActivate("Internet Explorer")

WinWaitActive("Internet Explorer")

Send("{ALTDOWN}" & "d" & "{ALTUP}")

Send("^c")

WinActivate("FileMaker")

WinWaitActive("FileMaker")

Send("^v")

Send("{NUMPADENTER}")

 

Ik heb ter beëindiging dus voor een Enter gekozen ipv een TAB hier. IE-gebruikers er ook op letten of Internet Explorer nog wel in hun window voorkomt, want met al die customising tooltjes tegenwoordig :lol:

Link to comment

Leuk gedaan Gido en ik zie dat ook jij aangestoken bent door AI.

Valt me trouwens mee dat er geen problemen ontstaan met die IE titel.

Soms moet je op de experimentele toer met AI.

Gisteren toevallig nog AI gebruikt voor mijn FMP mediabase.

Als ik een MP3 opstart wordt de MP geactiveerd en verschijnt pontificaal voor mijn mooie applicatie. Nu dus niet meer :lol:

 

Je kunt de door AI opgeviste gegevens ook retour geven aan FileMaker middels het aanroepen van een scipt.

 

Vier manieren:

 

1. via Ctrl+# in je AI script (roept FM script aan)

2. via Zippscript plugin (gratis): je laat AI een veld in FMP wijzigen en

zodoende het FMP script triggeren.

3. via AI zelf, je kunt geconverteerde VB code in AI opnemen.

Ik heb een VB scriptje die dat kan maar tot op heden is het mij niet

gelukt om AI dit te laten afhandelen.

4. via SHELL plugin wellicht.

 

Hiermee kan je dus ook terugkoppelen naar Filemaker.

Bijvoorbeeld als jouw (omvangrijke) FMP script informatie nodig heeft van AI.

Je zou een pauze in kunnen lassen in het FMP script: maar hoe lang?

In zo'n geval hak je het FMP script in twee delen. Het tweede deel laat je triggeren door AI.

 

gr.

 

Arnoud

Link to comment

Bedankt voor al die tips! 8) Die ga ik alvast in mijn "constant achterhoofd" steken.

 

Wat ik me al wel afvroeg:

Kan je in één AI-script verschillende scripts zetten, die dan apart aangeroepen kunnen worden mbv een command line parameter?

Zo moet je dan niet voor elke kleine functie een 120KB exe maken.

 

Ik heb er nog nauwelijks ervaring mee, maar ik heb *nu al* het gevoel dat dit één van die uitzonderlijk waardevolle én stabiele gratis juweeltjes is, net als PowerPro voor macro's. Combineer ze samen en je hebt "da Bomb!!!" :lol::wink:

Link to comment
Wat ik me al wel afvroeg:

Kan je in één AI-script verschillende scripts zetten, die dan apart aangeroepen kunnen worden mbv een command line parameter?

Zo moet je dan niet voor elke kleine functie een 120KB exe maken.

Geen ID, of dit mogelijk is met AI.

Met een batch file kan dit wel, daar is een posting over van edc.

Maar hoe?

Als je er achter bent hoe het met AI kan hoor ik dat graag.

 

Ik heb er nog nauwelijks ervaring mee, maar ik heb *nu al* het gevoel dat dit één van die uitzonderlijk waardevolle én stabiele gratis juweeltjes is, net als PowerPro voor macro's. Combineer ze samen en je hebt "da Bomb!!!" :lol::wink:

PowerPro gedownload.

Zo op het eerste gezicht denk ik dat AI alles kan wat in PP mogelijk is.

Voordeel PP, simpele interface en niet alleen code.

Oh ja, volgens mij is HITMAN PRO ook gemaakt in AI.

 

En nog een keertje: ga naar het AI forum, dat zijn de echte specialisten!

 

vr.gr.

 

Arnoud

Link to comment
Wat ik me al wel afvroeg:

Kan je in één AI-script verschillende scripts zetten, die dan apart aangeroepen kunnen worden mbv een command line parameter?

Zo moet je dan niet voor elke kleine functie een 120KB exe maken.

Geen ID, of dit mogelijk is met AI.

 

:oops::idea:

;FILEMAKER SCRIPT:"Test_Parameters"

;  # start
; .  .............
;  # parameter setten
:  Set Field[AItabel::gAutoItParameters;"AISub2"]
;  Go to Layout["AutoItLayout_AItabel" (AITabel)]
;  # parameter in clipboard stoppen
;  Copy[select;AITabel::gAutoItParameters]
;  Go to Layout["WerkLayout_WerkTabel" (WerkTabel)]
;  ...............
;# einde

;AI SCRIPT: "Verzamelscript_FMP"

If( ClipGet()="AISub1") Then

    MsgBox(0, "Mededeling", "AIparameters = "& ClipGet() )

ElseIf( ClipGet()="AISub2")Then

    MsgBox(0, "Mededeling", "AIparameters = "& ClipGet() )

   ;deze MsgBox verschijnt als het goed is.

EndIf

 

:lol:

Link to comment
PowerPro gedownload.

Zo op het eerste gezicht denk ik dat AI alles kan wat in PP mogelijk is.

Ik ken AI te weinig om dat al te zeggen. Maar kan je een AI scriptje dan ook constant actief hebben in de achtergrond?

 

Ik bedoel dat een macro-programma constant oplet op de achtergrond en AI mij eerder iets tijdelijk lijkt uit te voeren?

 

Laat me een vb nemen dat me momenteel interesseert:

 

Stel, ik heb een aantal favoriete records in een layout of portaal dat ik zo "effortless" mogelijk wil kunnen bereiken. Ik denk dan idealiter aan een paneel dat openklapt wanneer je cursor een schermzijde raakt, maar ik wil gerust vrede nemen met een script naar een layout (of scroll window) dat dan uitgevoerd zou worden.

 

Met PowerPro zal dit wellicht geen probleem zijn, omdat die constant dingen kan detecteren, zoals in dit geval: het raken van een schermzijde.

Link to comment

Hoi Gido,

 

Ik denk dat je AutoIt ook op de achtergrond kan laten draaien, maar

dan alleen 1 script op zijn tijd (lijkt me).

Je moet maar eens een coordinaten voorbeeldje bekijken.

Daar zou je wat mee moeten kunnen.

Ik kan me redden met redelijk eenvoudige zaken in AutoIt (als ik meer nodig heb, duik ik er wel meer in) , maar als je op het forum kijkt wat men daar mee kan toveren, dan sta je echt versteld.

Als ik tijd heb zal ik op mijn beurt eens wat beter kijken naar PowerPro.

 

gr.

 

Arnoud

Link to comment

Zo simpel is het in PowerPro :wink: Nu jij met AI :P

 

D.i. nog een cap van versie 3.8 of zo; mss is het nu nog simpeler. Werkt weer zeer bevredigend (snel). Het werkt natuurlijk wel in elk scherm, ook waar het niet hoeft of kan...(maar reactie valt te filteren in FM-script). Je kan er in je FM script een toggle van maken 8)

Voor boven- en onderrand kan je kiezen tussen links of rechts als je wil (mss nog meer keuze in recentere versie).

 

Het script dat ik hier aanroep wanneer ik tegen de bovenrand v/h scherm kom is ctrl-4

 

powerpro3ue.gif

Link to comment

Nu begint dat spel hier weer opnieuw!! :twisted::evil::twisted::roll:

 

Ik heb nu een Send Event die zuiver naar een global refereert met daarin een pad naar een AutoIt-programma. Dat pad heeft echter spaties erin (pad zonder spaties erin werkt wel), waardoor het weer niet lukt. Ik heb alle FM6 tips al toegepast die ik vorige keer gekregen heb, maar ik vind nu geen werkende combinatie... :cry:

 

FM7: "no intuitivity, all workaround"

 

(Rony is toch op reis, dus ik kan me even laten gaan :P )

Edited by Guest
Link to comment

Zou je FM7 niet door OS vervangen?

rmw

Laat me daar niet over beginnen! Want ik heb de allerslechtste ervaringen met Mac.

Zo ben ik zowat een maand tijd en meer verloren door op iemands Mac (OS9) een kleinigheid te installeren, waarna het nooit meer goed is gekomen. Opeens onontsnapbare bommen bij het opstarten.

1000 keer ALLES geherinstalleerd in verschillende combinaties volgens verschillende raadgevingen (en op verschillende schijven), maar na een aantal programma's erbij crashte die steeds met meestal onontsnapbare bommen. Alle mogelijke tips en hardware switches binnenin gemanipuleerd/gereset etc., opnieuw en opnieuw en opnieuw. Hardware tests, OK. Allemaal geen verschil. Veruit de slechtste ervaring die ik met computers ooit heb gehad, en ik draag er nog steeds de gevolgen van.

 

Met OSX blijkt hij nu wel stabiel te werken, maar dat was niet het geprefereerde OS van die persoon.

 

Ik ben ooit begonnen als typische Mac-fan en heb er nog eentje dat ik gebruik om een machine aan te sturen, maar verder ben ik al vele jaren volledig en gelukkig omgedraaid (en heb recht van spreken, itt tot de meesten die eigenlijk maar één systeem echt goed kennen).

 

De pro-ontwikkelaars hier kennen meestal wel beide systemen, maar in het algemeen is het geroep van zij die maar één systeem kennen.

Dus wat mij betreft: mooi materiaal, maar "nee dank u, van mijn leven niet meer!" :lol: Ik zou veel teveel moeten missen, zoals de workaround-mogelijkheden die bij Mac zogezegd niet hoeven :wink:

 

Het enige voordeel dat ik nu nog zie bij Mac is dat je relatief snel kan herinstalleren (en het was nodig ook!!)

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...