Question
Réduire dans la zone de notification
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
Pas avec PS, nuance qui à son importance.Et moi qui pensait que ça devait être simple, apparemment pas
Neandril écrit:
ça j'ai compris :je souhaiterai que lorsqu'on clique sur la croix qui ferme un une fenêtre en temps normal,
Le pb est que si le gui est en PS, elle a besoin d'une console, c'est elle qui doit être masquée en premier et celle-ci ne dispose pas d'une pompe de message.
Ensuite, je n'ai jamais fait non plus, dans l'exemple cité le tray icon utilise un exe(une Winform), la mécanique est prévue pour. Avec PS c'est elle qui possède la pompe de message, bref un petit sac de noeuds.
En revanche l'inverse me semble plus approprié, une winform C# qui embarque un script PS. Ainsi tu disposes de la mécanique en 'natif' et le traitement en Powershell.
Si j'ai le temps je regarderai si c'est possible d'implémenter l'exemple cité.
Il reste possible de masquer la console :
[code:1]
function Add-Win32FunctionsType {
@\"
# Possible value for the nCmdShow parameter
# SW_HIDE = 0;
# SW_SHOWNORMAL = 1;
# SW_NORMAL = 1;
# SW_SHOWMINIMIZED = 2;
# SW_SHOWMAXIMIZED = 3;
# SW_MAXIMIZE = 3;
# SW_SHOWNOACTIVATE = 4;
# SW_SHOW = 5;
# SW_MINIMIZE = 6;
# SW_SHOWMINNOACTIVE = 7;
# SW_SHOWNA = 8;
# SW_RESTORE = 9;
# SW_SHOWDEFAULT = 10;
# SW_MAX = 10
`$signature = @'
[DllImport(\"user32.dll\"«»)]
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
'@
Add-Type -MemberDefinition `$signature -Name 'Win32ShowWindowAsync' -Namespace Win32Functions
\"@
} #Add-Win32FunctionsType
function Show-Window([IntPtr] $WindowHandle){
#Displays in the foreground, the window with the handle $WindowHandle
$SW_SHOW = 5
$null=[Win32Functions.Win32ShowWindowAsync]::«»ShowWindowAsync($WindowHandle,$SW_SHOW)
}
function Hide-Window([IntPtr] $WindowHandle) {
#Hide the window with the handle WindowHandle
#The application is no longer available in the taskbar and in the task manager.
$SW_HIDE = 0
$null=[Win32Functions.Win32ShowWindowAsync]::«»ShowWindowAsync($WindowHandle,$SW_HIDE)
}
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- DALLAVALLE Rémy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 16
- Remerciements reçus 0
Ceci dit, merci pour ton code.
C'est exactement ce que décrit la vidéo que tu m'a linké Mais je m'y connais pas bcp en C# malheureusement.
Si tu as le temps, ce serai avec plaisir oui, et je pense que je ne doit pas être le seul à déjà m'être posé la question. Je pense que ça pourra être utile.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
Tout à fait, mais on peut vouloir mixer un traitement ligne de commande et GUI. Ce n'est certes pas courant, mais possible.Généralement, la console je la cache via -WindowState Hidden directement dans le raccourci de lancement.
Neandril écrit:
Je pense que ça pourra être utile.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
La classe System.Windows.Forms.NotifyIcon fait que la fenêtre est masquée ( via Hide()), mais la fenêtre quitte le mode modal et la console reprend la main enfin le notifieur est inopérant.
Ceci dit la fenêtre est tjr active ( ShowDialog()).
Une piste à creuser ou a abandonner
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- DALLAVALLE Rémy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 16
- Remerciements reçus 0
La première étant que je fini ma mission dans un mois, et il faudrai que je me fasse installer Visual Studio... seulement dans ma société, c'est tout un truc pour avoir un nouveau logiciel.
Ensuite, j'suis pas très calé en C#... ça m'aurai permis d'apprendre en même temps aussi... mais on rejoins le premier point, manque de temps.
Mon script doit être fini avant que je parte dans la mesure du possible
Merci pour vos réponses en tout cas.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
Il existe des versions gratuites qui suffisent pour ce besoin.Hmm ok. Je vais m'en passer je pense pour le moment, et ce pour 2 principales raisons :
seulement dans ma société, c'est tout un truc pour avoir un nouveau logiciel.
Neandril écrit:
A priori pas besoin d'être un expert, il faut juste comprendre/connaitre la mécanique système en jeux ici.Ensuite, j'suis pas très calé en C#...
Neandril écrit:
Pas de solution ici.manque de temps.
Ensuite une telle appli C# sera liée aux assemblies de PS, ce qui demandera sa MAJ (recompilation) en cas d'upgrade de version de PS.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Réduire dans la zone de notification