Edit : Vous pouvez lire ma demande si vous voulez mais j'ai trouvé le moyen de la réaliser... je pense que le fait de tout écrire dans ce post m'a éclairci les idées... je vous reviens avec ce que je vous décrit plus bas dans mon prochain post
Code : Tout sélectionner
Func _WinActivate($snd = "")
$snd = StringSplit($snd, "|")
$t = $snd[1]
$tt = $snd[2]
$sleep = $snd[3]
if $snd[3] = "" Then
$sleep = 300
EndIf
WinWait($t,$tt)
IF Not WinActive($t, $tt) Then WinActivate($t, $tt)
WinWaitActive($t, $tt)
For $i = 4 To $snd[0]
If $snd[$i] <> "" Then
Sleep($sleep)
Send($snd[$i])
EndIf
Next
EndFunc
Ce qui donne, en pratique
Code : Tout sélectionner
_WinActivate("Titre|Texte|Délai|Send 1| Send 2... sans limites )
Merci Thierry ... Je l'aime beaucoup mieux comme ça...
L'infini à un côté séduisant ...
J'ai choisi d'utiliser ta deuxième suggestion en intégrant tous mes
paramètres dans le "stringsplit()"
Mais voilà... ça m'a ouvert l'appétit.
Je m'explique.
Est-il possible de différencier les string split ?
Ex:
Je veux que mon "|" renvoie à la commande "send"
mais j'aimerais que si le délimiteur "#" est trouvé, qu'au lieu
de mon "send" habituel j'aille un "controlsend" ...
Un exemple de ce que je veux dire
Ma fonction actuelle :
Code : Tout sélectionner
_WinActivate("Titre|Texte|Délai|Send 1| Send 2... sans limites )
Ce que je voudrais faire
Code : Tout sélectionner
_WinActivate("Titre|Texte|Délai|Send 1| Send 2|Send 3#"controlid"# Send 4 ( associé à mon controlID)
Il faudrait donc que mon stringsplit soit divisé en deux Le premier s'occupe de réagir à "|" et dans le cas ou un "#" est aperçu,
non seulement le code associé à "|" ne réagit pas, c'est le code associé au séparateur "#" qui réagit... Mais quand un # est rencontré, il doit prendre en compte les deux variables inscrites, soit le "controlid" et le "send"
Code : Tout sélectionner
_WinActivate("Titre|Texte|Délai|Send 1| Send 2|Send 3#Param 4 | Param 5|Send normal jusqu'à ce que "#" soit rencontré à nouveau
Ma question est .... comment faire lol (je bosse là-dessus depuis les suggestions de Thierry.
Sinon ... j'ai une option 2 beaucoup plus simple je crois même si je ne me la figure pas encore.
Ça serait de tout simplement avoir un deuxième argument dans ma fonction.
Code : Tout sélectionner
_WinActivate($snd,$csend)
;mon $snd =stringsplit($snd,"|") continuerait à gérer
; titre, texte, sleep et Send normaux, et mon deuxième argument
;gérerait les "control send" après avoir fait tous les send normaux.
Mon problème reste toujours l'intégration de deux paramètres
"controlid" et "send" prix en compte dans le même laps de temps.
Néanmoins, la deuxième proposition reste moins intéressante de par
le fait que les control send se déroule nécessairement après les send.
Je ne sais pas si quelqu'un m'a compris
mais dans ma tête c'est clair comme tout... sauf si vous me demandez de remplacer tout ce que j'ai dit par du code.
Bon... Je retourne bosser là-dessus et si je trouve quelque chose de concluant, je revient en trombe.
Sinon, en attendant, vos lumières sont les bienvenue.