[R] Appel d'une fonction à partir d'un script externe

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
ferrierd
Niveau 2
Niveau 2
Messages : 27
Enregistré le : mer. 20 avr. 2011 10:27
Status : Hors ligne

[R] Appel d'une fonction à partir d'un script externe

#1

Message par ferrierd »

Bonsoir,

Une petite question après plusieurs recherche...
Je souhaite savoir s'il est possible d'exécuter une fonction locale décrite dans mon script principal à partir d'un autre script externe.

Je m'explique: J'ai vu que l'on pouvait acceder au handle de Controles, Form, etc... mais je ne sais comment déclencher l'exécution d'une fonction à partir d'un script externe.

Je pourrais contourner mon souci en effectuant un test sur, par exemple, la présence d'un fichier témoin qui du coup déclenche la fonction. Mais cela oblige mon premier script à scruter à intervalle régulier, d'où consommation de ressources.

J'aurais aimé que mon premier script, déjà lancé je précise, n'execute une partie de son fonctionnement (une fonction) qu'à l'appel d'un autre script...

Question Subsidiare: un "WinWaitActive" consomme-t-il bcp de ressources?

En esperant ma demande clair... (moi-même j'ai du mal :-)) )
Modifié en dernier par ferrierd le lun. 25 avr. 2011 07:30, modifié 1 fois.
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] Appel d'une fonction à partir d'un script externe

#2

Message par SagePourpre »

Code : Tout sélectionner

#include<Nom_Du_Script_externe.au3>
Par défaut, le script qui appelle un include cherchera
dans son propre dossier et dans le dossier "includes" de ton installation Autoit
(Tu peux aussi spécifier le chemin complet.)


Pour ce qui a trait à WinWaitActive... Non, ce n'est pas intensif sur les ressources...
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
ferrierd
Niveau 2
Niveau 2
Messages : 27
Enregistré le : mer. 20 avr. 2011 10:27
Status : Hors ligne

Re: [..] Appel d'une fonction à partir d'un script externe

#3

Message par ferrierd »

Merci de ta réponse SagePourpre, je n'avais pas envisagé cette option.

J'ai regardé aussi du côté de GuiSetOnevent qui me semble intéressant: le script attend sans scruter régulièrement l'apparitino d'un fenêtre, présence d'un fichier ou autre...
En effet dans mon script principal je dispose d'une Gui cachée sans aucun bouton

Mais apparement GuiSetOnevent ne gére pas l'évènement @GUI_SHOW...

Je continue mes recherches
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] Appel d'une fonction à partir d'un script externe

#4

Message par SagePourpre »

ferrierd a écrit :Merci de ta réponse SagePourpre, je n'avais pas envisagé cette option.

J'ai regardé aussi du côté de GuiSetOnevent qui me semble intéressant: le script attend sans scruter régulièrement l'apparitino d'un fenêtre, présence d'un fichier ou autre...
En effet dans mon script principal je dispose d'une Gui cachée sans aucun bouton

Mais apparement GuiSetOnevent ne gére pas l'évènement @GUI_SHOW...

Je continue mes recherches
1. @GUI_SHOW n'existe pas ...

2. GuiSetOnEvent gère les événements de la GUI uniquement, non pas de

Code : Tout sélectionner

 l'apparition d'un fenêtre, présence d'un fichier ou autre...
Pour ça, il faut utiliser d'autre méthodes.

3. WinWaitActive pause carrément le script jusqu'à ce que la fenêtre citée soit active ou que le délai limite soit atteind (3e paramètre si défini).
Je n'ai pas le code source d'autoit mais cette fonction utilise probablement un événement plutôt qu'une boucle...
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
overflow
Niveau 5
Niveau 5
Messages : 138
Enregistré le : sam. 05 déc. 2009 23:49
Status : Hors ligne

Re: [..] Appel d'une fonction à partir d'un script externe

#5

Message par overflow »

tu peut précise quel événement tu attend pour que ton script réagis ?
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] Appel d'une fonction à partir d'un script externe

#6

Message par SagePourpre »

Je ne suis pas certain de ce que tu veux faire exactement.

Il faut tout d'abord que je sache ceci :
Ton script est supposé réagir quand quoi ?

Quand la fenêtre de ta GUI est active ?

Code : Tout sélectionner

Opt('GuiOnEventMode',1)
Opt('TrayIconDebug',1)
$gui = GUICreate('')
GUISetOnEvent(-3,'Quitter')
GUISetState()


While 1
    Sleep(1000)
    If not winactive($gui) Then
        ToolTip('Gui Not Active',0,0)
    WinWaitActive($gui)
    ToolTip('')
    EndIf
WEnd

Func quitter()
    Exit
EndFunc
 

Tu peux voir en survolant l'icone de ton script dans
la barre des tâches que lorsque la fenêtre est inactive,
ton script est bloqué sur la ligne du WinWaitActive, sinon
il fait sa boucle normalement...


Ceci dit, puisque la question du sujet a été résolue...
Merci de changer la balise de titre du premier sujet
[..] pour [R] et de créer un autre sujet pour cette
autre question le cas échéant.

( Sinon ça devient difficile d'aider pour les autres membres
du forum )
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
ferrierd
Niveau 2
Niveau 2
Messages : 27
Enregistré le : mer. 20 avr. 2011 10:27
Status : Hors ligne

Re: [..] Appel d'une fonction à partir d'un script externe

#7

Message par ferrierd »

Merci beaucoup c'est parfait

J'avais envisagé aussi (mais pas encore codé) de creer un bouton caché sur mon script principal et de gerer l'evenement "Click" (à partir du script externe) pour déclencher l'execution de la fonction de mon script principal.
(Cette fonction était le déclenchement d'un compte à rebours)

Mais si le Process "WinWaitActive" est peu consommateur de ressource, je vais utilisé ta méthode SagePourpre.
Répondre