Question Tableau de bord VMware
- daniel soares
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 133
- Remerciements reçus 0
il y a 14 ans 5 mois #4440
par daniel soares
Réponse de daniel soares sur le sujet Re:Tableau de bord VMware
Genial! je travail sur le sujet au plus tot
je ferai un mise a jour du script
merci Laurent
toujours aussi efficace !!
je ferai un mise a jour du script
merci Laurent
toujours aussi efficace !!
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6290
- Remerciements reçus 67
il y a 14 ans 5 mois #4443
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Tableau de bord VMware
Pour la gestion de la fenêtre, le pb était du à un flag manquant
[code:1]
function StayOnTop([IntPtr] $hWnd, [switch] $OFF)
{ #La fenêtre cible reste toujours au premier Plan (Always on top)
$FlagTop=$ApiWindows.HWND_TOPMOST
if ($Off)
{$FlagTop=$cApiWindows.HWND_NOTOPMOST}
#Pas de modification de la taille de la fenêtre ni de la position
[void](SetWindowPos $hWnd $FlagTop 0 0 0 0 ($cApiWindows.SWP_NOSIZE + $cApiWindows.SWP_NOMOVE + $cApiWindows.SWP_NOZORDER + $cApiWindows.SWP_NOACTIVATE + $SWP_SHOWWINDOW) )
}
[/code:1]
Et pour le menu, il faut utiliser L'API InsertMenu:
[code:1]
function InsertMenu([IntPtr] $hMenu,[UInt32] $Position, [UInt32] $Flags, [UInt32] $NewId,[String] $Item )
{ #Ajoute une entrée de menu.
$parameterTypes = [IntPtr], [UInt32], [UInt32], [UInt32], [String]
$parameters = $hMenu, $Position, $Flags, $NewId,$Item
Invoke-Win32 \"user32.dll\" ([Int32]) \"InsertMenu\" $parameterTypes $parameters
}
#insertion par position
InsertMenu $SystemMenu 3 ($cApiWindows.MF_BYPOSITION+$cApiWindows.MF_STRING) $cApiWindows.SC_MINIMIZE \"Réduire\"
[/code:1]
Si tu veux supprimer tout les menus :
[code:1]
$SystemMenu= GetSystemMenu $PSWindowHandle $true
DestroyMenu $SystemMenu
$SystemMenu= GetSystemMenu $PSWindowHandle $false
RemoveMenu $SystemMenu $cApiWindows.SC_MINIMIZE $cApiWindows.MF_BYCOMMAND
RemoveMenu $SystemMenu $cApiWindows.SC_SIZE $cApiWindows.MF_BYCOMMAND
RemoveMenu $SystemMenu $cApiWindows.SC_Move $cApiWindows.MF_BYCOMMAND
RemoveMenu $SystemMenu $cApiWindows.SC_MINIMIZE $cApiWindows.MF_BYCOMMAND
RemoveMenu $SystemMenu $cApiWindows.SC_MAXIMIZE $cApiWindows.MF_BYCOMMAND
RemoveMenu $SystemMenu $cApiWindows.SC_CLOSE $cApiWindows.MF_BYCOMMAND
RemoveMenu $SystemMenu $cApiWindows.SC_RESTORE $cApiWindows.MF_BYCOMMAND
RemoveMenu $SystemMenu 0 $cApiWindows.MF_SEPARATOR $cApiWindows.MF_BYCOMMAND
DrawMenuBar $PSWindowHandle[/code:1]
Plus de copier-coller, ni fermeture,ni de réduction, ni de sélection, bref plus grand chose
Le control-C et Control-break reste actif.
J'ai essayé de supprimer la barre de titre mais sans succcès.
Je devrais mettre à jour le package des API Windows ces prochains jours.<br><br>Message édité par: Laurent Dardenne, à: 24/03/09 11:13
[code:1]
function StayOnTop([IntPtr] $hWnd, [switch] $OFF)
{ #La fenêtre cible reste toujours au premier Plan (Always on top)
$FlagTop=$ApiWindows.HWND_TOPMOST
if ($Off)
{$FlagTop=$cApiWindows.HWND_NOTOPMOST}
#Pas de modification de la taille de la fenêtre ni de la position
[void](SetWindowPos $hWnd $FlagTop 0 0 0 0 ($cApiWindows.SWP_NOSIZE + $cApiWindows.SWP_NOMOVE + $cApiWindows.SWP_NOZORDER + $cApiWindows.SWP_NOACTIVATE + $SWP_SHOWWINDOW) )
}
[/code:1]
Et pour le menu, il faut utiliser L'API InsertMenu:
[code:1]
function InsertMenu([IntPtr] $hMenu,[UInt32] $Position, [UInt32] $Flags, [UInt32] $NewId,[String] $Item )
{ #Ajoute une entrée de menu.
$parameterTypes = [IntPtr], [UInt32], [UInt32], [UInt32], [String]
$parameters = $hMenu, $Position, $Flags, $NewId,$Item
Invoke-Win32 \"user32.dll\" ([Int32]) \"InsertMenu\" $parameterTypes $parameters
}
#insertion par position
InsertMenu $SystemMenu 3 ($cApiWindows.MF_BYPOSITION+$cApiWindows.MF_STRING) $cApiWindows.SC_MINIMIZE \"Réduire\"
[/code:1]
Si tu veux supprimer tout les menus :
[code:1]
$SystemMenu= GetSystemMenu $PSWindowHandle $true
DestroyMenu $SystemMenu
$SystemMenu= GetSystemMenu $PSWindowHandle $false
RemoveMenu $SystemMenu $cApiWindows.SC_MINIMIZE $cApiWindows.MF_BYCOMMAND
RemoveMenu $SystemMenu $cApiWindows.SC_SIZE $cApiWindows.MF_BYCOMMAND
RemoveMenu $SystemMenu $cApiWindows.SC_Move $cApiWindows.MF_BYCOMMAND
RemoveMenu $SystemMenu $cApiWindows.SC_MINIMIZE $cApiWindows.MF_BYCOMMAND
RemoveMenu $SystemMenu $cApiWindows.SC_MAXIMIZE $cApiWindows.MF_BYCOMMAND
RemoveMenu $SystemMenu $cApiWindows.SC_CLOSE $cApiWindows.MF_BYCOMMAND
RemoveMenu $SystemMenu $cApiWindows.SC_RESTORE $cApiWindows.MF_BYCOMMAND
RemoveMenu $SystemMenu 0 $cApiWindows.MF_SEPARATOR $cApiWindows.MF_BYCOMMAND
DrawMenuBar $PSWindowHandle[/code:1]
Plus de copier-coller, ni fermeture,ni de réduction, ni de sélection, bref plus grand chose
Le control-C et Control-break reste actif.
J'ai essayé de supprimer la barre de titre mais sans succcès.
Je devrais mettre à jour le package des API Windows ces prochains jours.<br><br>Message édité par: Laurent Dardenne, à: 24/03/09 11:13
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- daniel soares
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 133
- Remerciements reçus 0
il y a 14 ans 5 mois #4447
par daniel soares
Réponse de daniel soares sur le sujet Re:Tableau de bord VMware
hello
j'ai mis a jour le script avec la gestion du clavier
donc arret de la boucle par esc ou Q
pour la gestion de la fenetre je bloque au debut
il me manque de la connaissance pour adapter le premier code avec new-struct
je ne sais meme pas par ou commencer ca me depasse totalement
j'ai mis a jour le script avec la gestion du clavier
donc arret de la boucle par esc ou Q
pour la gestion de la fenetre je bloque au debut

il me manque de la connaissance pour adapter le premier code avec new-struct
je ne sais meme pas par ou commencer ca me depasse totalement

La pièce jointe tableau_bord_a_publier.ps1 est absente ou indisponible
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6290
- Remerciements reçus 67
il y a 14 ans 5 mois #4449
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Tableau de bord VMware
Dan écrit:
Mais comme tu le vois dans le dernier exemple, les flags indiquent (NOSIZE) qu'on ne gére pas la taille de la fenêtre, seulement un \"état\" (Windows style), dans ce cas pas besoin d'appel préalable, on lui passe simplement 0,0,0,0 en coordonnées écran.
Pour le code suivant corrigé :
[code:1]function StayOnTop([IntPtr] $hWnd, [switch] $OFF)
{ #La fenêtre cible reste toujours au premier Plan (Always on top)
$FlagTop=$cApiWindows.HWND_TOPMOST
if ($Off)
{$FlagTop=$cApiWindows.HWND_NOTOPMOST}
#Pas de modification de la taille de la fenêtre ni de la position
[void](SetWindowPos $hWnd $FlagTop 0 0 0 0 ($cApiWindows.SWP_NOSIZE + $cApiWindows.SWP_NOMOVE + $cApiWindows.SWP_NOZORDER + $cApiWindows.SWP_NOACTIVATE + $cApiWindows.SWP_SHOWWINDOW) )
} [/code:1]
Il faut juste appeller la function Set-cstApiWindows avant d'utiliser la function. Cette fonction se trouve dans le fichier PackageWindowsFunction.ps1
Ce qui évite de nombreuses variables globales.<br><br>Message édité par: Laurent Dardenne, à: 24/03/09 16:40
L'usage de la function New-Struct n'est plus nécessaire, à l'origine je pensais récupérer la taille de l'écran pour renseigner l'appel à SetWindowPos.pour la gestion de la fenetre je bloque au debut
il me manque de la connaissance pour adapter le premier code avec new-struct
Mais comme tu le vois dans le dernier exemple, les flags indiquent (NOSIZE) qu'on ne gére pas la taille de la fenêtre, seulement un \"état\" (Windows style), dans ce cas pas besoin d'appel préalable, on lui passe simplement 0,0,0,0 en coordonnées écran.
Pour le code suivant corrigé :
[code:1]function StayOnTop([IntPtr] $hWnd, [switch] $OFF)
{ #La fenêtre cible reste toujours au premier Plan (Always on top)
$FlagTop=$cApiWindows.HWND_TOPMOST
if ($Off)
{$FlagTop=$cApiWindows.HWND_NOTOPMOST}
#Pas de modification de la taille de la fenêtre ni de la position
[void](SetWindowPos $hWnd $FlagTop 0 0 0 0 ($cApiWindows.SWP_NOSIZE + $cApiWindows.SWP_NOMOVE + $cApiWindows.SWP_NOZORDER + $cApiWindows.SWP_NOACTIVATE + $cApiWindows.SWP_SHOWWINDOW) )
} [/code:1]
Il faut juste appeller la function Set-cstApiWindows avant d'utiliser la function. Cette fonction se trouve dans le fichier PackageWindowsFunction.ps1
Ce qui évite de nombreuses variables globales.<br><br>Message édité par: Laurent Dardenne, à: 24/03/09 16:40
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6290
- Remerciements reçus 67
il y a 14 ans 5 mois #4451
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Tableau de bord VMware
La dernière version du package des API Windows, ce trouve
ici
.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- daniel soares
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 133
- Remerciements reçus 0
il y a 14 ans 5 mois #4495
par daniel soares
voici une version du script permettant de monitorer
- la memoire utilisée pour tous les esx
- le range d'utilisation de chaque cpu (basé sur des esx 8 cpu)
- le ballooning utilisé pour chaque ESX (0 ou 100%) l'idée etant que si le ballooning se met en marche quelle que soit la quantité de memoire utilisée c'est que la mémoire physique de l'ESX ne suffit plus donc generation d'une alarme.
une alarme parlée chaque fois qu'une valeur ateint le range (90-100%) avec out-voice trouvé ici (pour le fun)
la possibilité de controler le monitoring par touches clavier (mute et arret du pg)
et je vais travailler dés que possible pour integrer la possibilité de garder la fenetre toujours active avec ton package pour API windows
Réponse de daniel soares sur le sujet Re:Tableau de bord VMware
La pièce jointe monitoring_publication.ps1 est absente ou indisponible
- la memoire utilisée pour tous les esx
- le range d'utilisation de chaque cpu (basé sur des esx 8 cpu)
- le ballooning utilisé pour chaque ESX (0 ou 100%) l'idée etant que si le ballooning se met en marche quelle que soit la quantité de memoire utilisée c'est que la mémoire physique de l'ESX ne suffit plus donc generation d'une alarme.
une alarme parlée chaque fois qu'une valeur ateint le range (90-100%) avec out-voice trouvé ici (pour le fun)
la possibilité de controler le monitoring par touches clavier (mute et arret du pg)
et je vais travailler dés que possible pour integrer la possibilité de garder la fenetre toujours active avec ton package pour API windows
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.056 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Contributions à la communauté
- Tableau de bord VMware