Bonjour,
Après maintes recherche, je n'ai pas trouvé mon bonheur.
Je voudrais savoir s'il est possible en autoit de :
1 - Faire une popup de chargement complètement modale pour Windows, c'est à dire qui s'affiche et bloque complètement toute intéraction avec le système d'exploitation.
2 - Faire derrière la popup une fenetre qui prends l'écran complet , sans bordures.
3 - Executer une commande en arrière plan dans un processus fils pendant l'affichage de la popup
4 - Faire un "timer" qui fermera tout quelque soit le résultat de la commande fils (qu'il réussisse, échoue ou même plante) au bout de XX minutes
Tant de questions, mais je n'ai pas trouvé de réponses et ce n'est peut etre pas le plu courant !!!
Merci d'avance.
[..] Script autoit modal avec timer
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
- Niveau 3
- Messages : 36
- Enregistré le : mar. 21 avr. 2009 11:47
- Status : Hors ligne
[..] Script autoit modal avec timer
Modifié en dernier par ani le mar. 21 avr. 2009 12:30, modifié 1 fois.
Raison : Ajout de la balise [..] dans le titre
Raison : Ajout de la balise [..] dans le titre
-
- Niveau 3
- Messages : 38
- Enregistré le : lun. 23 mars 2009 09:40
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Script autoit modal avec timer
Salut!
Pour la fenetre qui prend tout l'écran sans bordure, je sais pas s'il existe une commande ou un paramètre, en tout cas moi ca ne me dit rien mais tu peux toujours créer une autre fenêtre Popup qui prend la résolution de ton écran, comme ci-dessous:
Je ne sais pas si ça correspondrait à ce que tu cherches. Si oui tant mieux!
Dans ce cas là pour ta première question, si j'ai bien compris, avec l'exemple que je t'ai donné ci-dessus et qui serait derrière ta popup, tu ne pourra pas faire autre chose que ce qu'il y aura sur la fenêtre, donc pas d'interraction avec le reste.
Pour l'exécution d'un processus en arrière plan, rien ne t'empêche de lancer un autre script AutoIt, ou un batch... Si tu pouvais donner plus d'informations sur ce que tu voudrais faire on pourrait peut-être plus t'aider!
Pour le timer il existe deux commande: TimerInit et TimerDiff, je te laisse chercher comment s'en servir!
Si tu regardes l'exemple donné dans la doc normalement tu comprends le fonctionnement.
Ensuite tu mets ces deux commandes dans une boucle et une condition pour vérifier si le temps est écoulé ou non.
Voilà j'espère t'avoir avancé un petit peu!
N'hésite pas a redemander de l'aide!
Pour la fenetre qui prend tout l'écran sans bordure, je sais pas s'il existe une commande ou un paramètre, en tout cas moi ca ne me dit rien mais tu peux toujours créer une autre fenêtre Popup qui prend la résolution de ton écran, comme ci-dessous:
Code : Tout sélectionner
#include <WindowsConstants.au3>
GUICreate("test", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUPWINDOW)
$button = GUICtrlCreateButton("x", 20, 20, 30, 30)
GUISetState()
while 1
If GUIGetMsg() = $button Then
ExitLoop
EndIf
WEnd
GuiDelete()


Dans ce cas là pour ta première question, si j'ai bien compris, avec l'exemple que je t'ai donné ci-dessus et qui serait derrière ta popup, tu ne pourra pas faire autre chose que ce qu'il y aura sur la fenêtre, donc pas d'interraction avec le reste.
Pour l'exécution d'un processus en arrière plan, rien ne t'empêche de lancer un autre script AutoIt, ou un batch... Si tu pouvais donner plus d'informations sur ce que tu voudrais faire on pourrait peut-être plus t'aider!

Pour le timer il existe deux commande: TimerInit et TimerDiff, je te laisse chercher comment s'en servir!

Ensuite tu mets ces deux commandes dans une boucle et une condition pour vérifier si le temps est écoulé ou non.
Voilà j'espère t'avoir avancé un petit peu!
N'hésite pas a redemander de l'aide!

-
- Niveau 3
- Messages : 36
- Enregistré le : mar. 21 avr. 2009 11:47
- Status : Hors ligne
Re: [..] Script autoit modal avec timer
Merci pour la réponse ... Je vais creuser ...
Mais je peux aussi vous expliquer ce que je cherche à faire ...
C'est parti.
Je souhaite dériver une solution de déploiement automatique de logiciels.
Problématique :
- La solution utilisée s'exécute en tant que service et AVANT l'initialisation de l'environnement utilisateur et c'est problématique pour l'auto paramétrage des logiciels.
Solution possible :
- Il faut que j'exécute certaines actions dans la session utilisateur, donc au minima au netlogon (pas de GPO car samba).
- J'envisage donc plusieurs étapes pour arriver à mes fins ! Et ce avec autoit (selon vos réponses)
Etape 1 - Avoir une fenêtre de loading infini (impossible à fermer) qui demandera de patienter, et en arrière plan va auto paramétrer mes logiciels.
Etape 2 - Avoir la même fenêtre , mais autoit ne devrait que lancer mon système d'auto installation et soit attendre un code de retour (ok ou erreur) soit patienter XX minutes MAXI avant de s'auto terminer (cas ou mon système se plante ou boucle). Il faut pouvoir accèder à un partage de façon authentifiée (login+pass)
Etape 3 (Bonus) - Faire que ce système avec autoit empêche toute interaction utilisateur avec le système (y compris clics et actions clavier comme ALT-F4, CTRL-ALT-SUPPR, ALT-TAB, ...), cela revient à ce que ce système soit MODAL pour le système
Etape 4 (Bonus) - Faire exécuter ce système juste avant la fermeture de session au lieu de juste après l'ouverture de session
Voila mes grands projets !
Ce système ne sera pas sur la machine, mais sur un serveur sur un partage public.
Ca serait vraiment sympa à vous de me dire la faisabilité avec AutoIT. Je pense que c'est OK, mais pas sûr.
Merci d'avance. Je regarde déjà de mon côté en attendant votre avis.
Mais je peux aussi vous expliquer ce que je cherche à faire ...
C'est parti.
Je souhaite dériver une solution de déploiement automatique de logiciels.
Problématique :
- La solution utilisée s'exécute en tant que service et AVANT l'initialisation de l'environnement utilisateur et c'est problématique pour l'auto paramétrage des logiciels.
Solution possible :
- Il faut que j'exécute certaines actions dans la session utilisateur, donc au minima au netlogon (pas de GPO car samba).
- J'envisage donc plusieurs étapes pour arriver à mes fins ! Et ce avec autoit (selon vos réponses)
Etape 1 - Avoir une fenêtre de loading infini (impossible à fermer) qui demandera de patienter, et en arrière plan va auto paramétrer mes logiciels.
Etape 2 - Avoir la même fenêtre , mais autoit ne devrait que lancer mon système d'auto installation et soit attendre un code de retour (ok ou erreur) soit patienter XX minutes MAXI avant de s'auto terminer (cas ou mon système se plante ou boucle). Il faut pouvoir accèder à un partage de façon authentifiée (login+pass)
Etape 3 (Bonus) - Faire que ce système avec autoit empêche toute interaction utilisateur avec le système (y compris clics et actions clavier comme ALT-F4, CTRL-ALT-SUPPR, ALT-TAB, ...), cela revient à ce que ce système soit MODAL pour le système
Etape 4 (Bonus) - Faire exécuter ce système juste avant la fermeture de session au lieu de juste après l'ouverture de session
Voila mes grands projets !
Ce système ne sera pas sur la machine, mais sur un serveur sur un partage public.
Ca serait vraiment sympa à vous de me dire la faisabilité avec AutoIT. Je pense que c'est OK, mais pas sûr.
Merci d'avance. Je regarde déjà de mon côté en attendant votre avis.
-
- Niveau 3
- Messages : 38
- Enregistré le : lun. 23 mars 2009 09:40
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Script autoit modal avec timer
pour la fenêtre de loading infini je pense que ce sujet te satisfera!
Une archive posté par Tlem regroupant quelques exemples de fenêtres d'attentes.
http://www.autoitscript.fr/forum/viewto ... ?f=6&t=910
j'ai moi-même récupéré cette archive il y a pas si longtemps de ça pour m'en servir, il faut tout de même apporter des petites modifications.
Pour l'auto-paramétrage dont tu parles, je pense que tu peux en faire un processus à part.
Comme ça à froid, et si je comprend bien ton problème, je ferai un script avec le timer, (donc avec les commandes TimerInit et TimerDiff), qui au lancement de celui-ci lancerait ton processus d'autoparamétrage, et au lancement de ton autoparamétrage tu lances un script avec la progressbar infini.
si dans le script avec le timer le temps est supérieur au temps XX que tu choisi alors tu kill les deux autres scripts. Je sais pas si tu vois !
Pour l'accès à un partage, je pense que ça a déjà été traité dans le forum, essai une petite recherche.
Si tu veux carément que l'utiliateur ne puisse pas se servir du clavier ni de la souris il existe la commande BlockInput http://www.autoitscript.fr/autoit3/docs ... kInput.htm (par contre à la fin du script ne pas oublier de débloquer les entrées!
) Si cette commande te va je te conseille tout de même de ne l'intégrer à tes scripts qu'une fois que tout fonctionne! Sinon tu risques d'avoir un plantage et de ne plus pouvoir récupérer la main! Attention tout de même, il me semble qu'avec cette fonction il est impossible d'utiliser d'autres commandes telles que send, à vérifier dans la doc.
Pour l'exécution juste avant la fermeture de la session, je ne sais pas trop!
Il faudrait faire le tours du forum, voir si quelqu'un a déjà posté le problème et si oui qu'en est-t-il des solutions?

Une archive posté par Tlem regroupant quelques exemples de fenêtres d'attentes.
http://www.autoitscript.fr/forum/viewto ... ?f=6&t=910
j'ai moi-même récupéré cette archive il y a pas si longtemps de ça pour m'en servir, il faut tout de même apporter des petites modifications.
Pour l'auto-paramétrage dont tu parles, je pense que tu peux en faire un processus à part.
Comme ça à froid, et si je comprend bien ton problème, je ferai un script avec le timer, (donc avec les commandes TimerInit et TimerDiff), qui au lancement de celui-ci lancerait ton processus d'autoparamétrage, et au lancement de ton autoparamétrage tu lances un script avec la progressbar infini.
si dans le script avec le timer le temps est supérieur au temps XX que tu choisi alors tu kill les deux autres scripts. Je sais pas si tu vois !

Pour l'accès à un partage, je pense que ça a déjà été traité dans le forum, essai une petite recherche.
Si tu veux carément que l'utiliateur ne puisse pas se servir du clavier ni de la souris il existe la commande BlockInput http://www.autoitscript.fr/autoit3/docs ... kInput.htm (par contre à la fin du script ne pas oublier de débloquer les entrées!

Pour l'exécution juste avant la fermeture de la session, je ne sais pas trop!
