Question Réduire dans la zone de notification

Plus d'informations
il y a 8 ans 5 mois #20807 par Laurent Dardenne
Neandril écrit:

Et moi qui pensait que ça devait être simple, apparemment pas :P

Pas avec PS, nuance qui à son importance.
Neandril écrit:

je souhaiterai que lorsqu'on clique sur la croix qui ferme un une fenêtre en temps normal,

ça j'ai compris :

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.

Plus d'informations
il y a 8 ans 5 mois #20808 par DALLAVALLE Rémy
Généralement, la console je la cache via -WindowState Hidden directement dans le raccourci de lancement.

Ceci dit, merci pour ton code.

C'est exactement ce que décrit la vidéo que tu m'a linké :D 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.

Plus d'informations
il y a 8 ans 5 mois #20809 par Laurent Dardenne
Neandril écrit:

Généralement, la console je la cache via -WindowState Hidden directement dans le raccourci de lancement.

Tout à fait, mais on peut vouloir mixer un traitement ligne de commande et GUI. Ce n'est certes pas courant, mais possible.
Neandril écrit:

Je pense que ça pourra être utile.

;)

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 5 mois #20811 par Laurent Dardenne
Résultat des courses : C# first !
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 :woohoo: enfin le notifieur est inopérant.

Ceci dit la fenêtre est tjr active ( ShowDialog()).
Une piste à creuser ou a abandonner :P

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 5 mois #20832 par DALLAVALLE Rémy
Hmm ok. Je vais m'en passer je pense pour le moment, et ce pour 2 principales raisons :
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.

Plus d'informations
il y a 8 ans 5 mois #20836 par Laurent Dardenne
Neandril écrit:

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.

Il existe des versions gratuites qui suffisent pour ce besoin.
Neandril écrit:

Ensuite, j'suis pas très calé en C#...

A priori pas besoin d'être un expert, il faut juste comprendre/connaitre la mécanique système en jeux ici.
Neandril écrit:

manque de temps.

Pas de solution ici.

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.

Temps de génération de la page : 0.088 secondes
Propulsé par Kunena