Page 1 sur 1

[R] Repasser une fenêtre au premier plan

Posté : jeu. 02 juil. 2020 15:36
par someonescripting
Bonjour, c'est encore et toujours moi =D

Dernier coup de patte avant la finalisation de mon script.

Plutôt que de faire une fonction de restauration dans mon script (qui vise à modifier des paramètres Windows), j'invite l'utilisateur a créer un point de restauration système en ajoutant un bouton qui appel une fonction ouvrant les paramètre système avancés à l'onglet "Protection du système".

Voila la fonction :

Code : Tout sélectionner

Func _RestoreSystem() ;Ouvre les paramètres système avancés à l'onglet "Protection du système" et désactive la GUI tant que les paramètres sytème avancés ne sont pas fermés.
	GUISetState (@SW_DISABLE)
	RunWait ("SystemPropertiesProtection.exe", @WindowsDir & "\System32")
	GUISetState (@SW_ENABLE)
EndFunc ;_RestoreSystem
Mon soucis est que dés que je ferme la fenêtre des paramètres système, la fenêtre de mon script passe au dernier plan.
Par exemple, si j'utilise F5 dans SciTE pour exécuter mon script et que j'appuie sur le bouton concerné, ma fenêtre ainsi que celle des paramètres système sont bien devant SciTE, mais dés lors que je ferme les paramètres système, la fenêtre de mon script passe derrière SciTE ...

Je précise que je souhaiterais que la fenêtre de mon script soit bloqué tant que les paramètre système sont ouvert ce pourquoi j'ai rajouter "GUISetState (@SW_DISABLE)" et "GUISetState (@SW_ENABLE)" (si je les commentes, pas de soucis, j'image que ça doit être eux qui sont la cause de mon problème).

En fouillant un peu j'ai trouvé des infos pour la gardé constamment au premier plan, mais cela n'est pas ce que je recherche, je voudrais juste qu'elle repasse au premier plan qu'une seule fois quand je ferme la fenêtre des paramètres système (J'imagine qu'il doit y avoir une erreur toute bête dans mon raisonnement)
J’espère avoir été assez clair dans mon explication.

Merci d'avance pour vos lumières.

Re: [..] Repasser une fenêtre au premier plan

Posté : jeu. 02 juil. 2020 16:16
par mikell
Un simple WinActivate($ma_gui) juste après le GUISetState (@SW_ENABLE) devrait le faire :wink:

Re: [..] Repasser une fenêtre au premier plan

Posté : jeu. 02 juil. 2020 16:29
par someonescripting
Bonjour @mikell,

Je viens de faire le test, et cela ne repasse pas ma fenêtre au premier plan, par contre elle a clignoté orange dans la barre des tâches au moment ou j'ai fermé la fenêtre des paramètres système.

(Je ne comprend d'ailleurs pas pourquoi les GUISetState (@SW_DISABLE) et GUISetState (@SW_DISABLE) provoque ce changement de plan)

Re: [..] Repasser une fenêtre au premier plan  

Posté : ven. 03 juil. 2020 13:16
par someonescripting
Re,

Le WinActivate() fonctionne, mais pas tout le temps, par moment ma fenêtre passe quand même au second plan, du coup changement de plan, j'ai enlever les GUISetState et remplacer le runwait par un simple run.
Il est vrai que je n'ai pas nécessairement besoin de bloquer la GUI quand les paramètres système sont ouvert.

Re: [R] Repasser une fenêtre au premier plan

Posté : ven. 03 juil. 2020 15:09
par TommyDDR
Je me souviens avoir eu ce problème aussi.
Je faisais un hide + show pour y palier (suivant les cas, ça peut être embêtant donc à voir si dans le votre c'est pratique ou pas)

Re: [R] Repasser une fenêtre au premier plan

Posté : ven. 03 juil. 2020 15:59
par someonescripting
Hi @TommyDDR,

Merci pour l'info, mais pense que je vais laisser tel quel.
Le fait que ma fenêtre soit active alors que les paramètres système sont ouvert ,n'est pas très gênant en soi, et ma fenêtre reste bien devant si je quitte les paramètres système.

Je garde quand même l'info dans un coin, merci !