Question l'enfer de la documentation !

Plus d'informations
il y a 17 ans 5 mois #2950 par blanc
Bonjour,
Il y a des \"objects\" partout. J'ai du mal à m'y retrouver et encore plus, lorsque j'en tiens un, à trouver sa documentation.
Par exemple, \"l'object\" suivant de type classe statique permet de lancer la commande :
[system.console]::beep(440,50) # \"system\" est employé par défaut.
J'obtiens une description de cet \"object\" avec :
[console] | gm # gm pour get-member
TypeName: System.RuntimeType
...
Pas de beep !
[console] | gm -static
TypeName: System.Console
...
La méthode \"beep\" y figure bien. Avec des paramètres...
Déjà pas facile de comprendre toutes ces subtilités !

Supposons que j'ai compris pourquoi il faut prendre system.console. Alors, pour trouver la documentation dans msdn, c'est presque facile ....framework sdk 2.0/classsLibraryReference/system/console/methodes console/beep, ce qui donne :
msdn.microsoft.com/fr-fr/library/4fe3hdb1(VS.80).aspx
Quelques lignes plus loin, je trouve ReadKey.
En supposant que je comprenne qu'il existe un $Host.UI.RawUI.ReadKey, oh surprise, les 2 readkey sont différents :
$Host.UI.RawUI.ReadKey(”NoEcho,IncludeKeyDown”)

Les paramètres ne sont pas les mêmes.
$Host.ui.rawui | gm
ne me renseigne pas beaucoup.
2 heure plus loin, un simple :
$Host.ui.rawui | gm | where {($_.name).split() -ilike \"ReadKey\"}
ne m'apprend pas plus. Mais j'ai appris un peu plus sur les manipulations d'affichage.
Bref, je n'arrive pas à trouver la documentation dans msdn de cet obscur \"object\" $Host.UI.RawUI.ReadKey(”NoEcho,IncludeKeyDown”).
Encore 2 heures plus loin....et en résumant...
En gros, il y a les objets du framework et ceux de powershell. Et l'aide se trouve donc à 2 endroits :
- aide de framework : dans msdn/msdn Library/.net development/.Net Framework 3.5/.Net Framework Class Library/System Manespace/Console Class/Console Methods...
msdn.microsoft.com/en-us/library/471w8d85.aspx
et utilisation : [system.console]::readkey()
- aide de Powershell : Msdn/Msdn Library/Qin32 and Com Develpment/Administration and Management/Windows powershell/Powwershell Managed Reference/System.Management.Automation.host
msdn.microsoft.com/en-us/library/system....yoptions(VS.85).aspx
et utilisation : $Host.UI.RawUI.ReadKey(”NoEcho,IncludeKeyDown”)

Ma question : comment identifer s'il faut chercher l'aide dans \".net\" ou dans \"powershell\", voire ailleurs? (Aurais je pu aussi dire: comment identifier le \"fournisseur\" de l'objet?).
Je n'ai pas encore lu votre livre mais ce n'est qu'une affaire de temps.
Merci.

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

Plus d'informations
il y a 17 ans 5 mois #2952 par Laurent Dardenne
Salut,
noel écrit:

Il y a des \"objects\" partout.

Et oui sous .NET tout est objet.
noel écrit:

Déjà pas facile de comprendre toutes ces subtilités !

C'est vrai et ce n'est pas la seule malheureusement. Il y 2 choses la syntaxe et l'usage de cmdlet de Powershell ET le framework dotNET.
noel écrit:

les 2 readkey sont différents :

Oui car il s'agit d'encapsulation d'API win32.
Dans un cas on travail sur la console directement, dans l'autre sur le Host de Powershell qui est aussi une console...
Mais celle de PS ( PowerShell) offre d'autres services.
Effectivement pas facile de s'y retrouver :/
noel écrit:

$Host.ui.rawui | gm
ne me renseigne pas beaucoup.

Si, il te donne déjà le nom de la classe à rechercher dans MSDN, c'est peu mais c'est le minimum.
noel écrit:

Et l'aide se trouve donc à 2 endroits :

Oui mais il faut prendre celui du framework 2.0. Si tu te bases sur la doc du 3.5 tu risques d'appeler des méthodes qui n'existent pas.
Quant au fait de retrouver la doc de PS dans un autre endroit c'est normal c'est en quelque sorte un sous ensemble d'API.
Tout comme SQl Server,Biztalk,VS 2005...
noel écrit:

Aurais je pu aussi dire: comment identifier le \"fournisseur\" de l'objet?).

Oui mais l'espace de nom est plus adapté dans ce contexte. C'est une notion statique.
noel écrit:

comment identifer s'il faut chercher l'aide dans \".net\" ou dans \"powershell\", voire ailleurs?

C'est le nom du type de l'objet, son genre, qui le détermine : Nom de l'espace de nom+Nom de classe
Le \"ailleurs\" étant Win32/COM/ADSI. Mais arrivé là tu as déjà un niveau plus avancé. Mais cela peut arriver car .NET n'encapsule pas toutes les API Win32.
[code:1]
#interroge le type d'un objet
# BaseType renvoi le type de la classe ancêtre
$Host.ui.rawui.GetType()
#
# IsPublic IsSerial Name BaseType
#

----
# False False InternalHostRawUserInterface System.Management.Automation.Host.PSHostRawUserInterface

#interroge le type d'une classe
[system.Console].GetType()
#
# IsPublic IsSerial Name BaseType
#

----
# False True RuntimeType System.Type
[/code:1]
Est-ce suffisament clair ?

Tutoriels PowerShell

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

Plus d'informations
il y a 17 ans 5 mois #2955 par blanc
Réponse de blanc sur le sujet Re:l'enfer de la documentation !
Ma crise de nerf est passée. Il me faut encore \"maniper pour rendre à César ses objects\". Je savais pourtant que Powershell est un langage \"ouvert\" s'appuyant sur .net framework. Mais je m'étais bloqué stupidement sur cette notion de console bicéphale. Avec votre explication \"calme\" et claire, ca va mieux.
Comme \"exercice\" de prise en main, je me suis mis comme objectif de \"refaire\" un ipconfig. Ca sert à rien, je sais, mais il me faut bien un but réaliste pour jouer \"dans le pipeline\".
Ca ira mieux une fois votre livre lu mais le temps de l'investissement est toujours compté.
Encore merci.

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

Plus d'informations
il y a 17 ans 5 mois #2956 par Laurent Dardenne
noel écrit:

Ca sert à rien, je sais, mais il me faut bien un but réaliste pour jouer \"dans le pipeline\".

Pour aborder le sujet :
laurent-dardenne.developpez.com/articles...werShell/Pipelining/
Pour cet exercice je pense que cela se passera + du coté de chez WMI, qui nécessite lui aussi une autre doc :P, car pour manipuler le hardware .NET ne me semble pas être la panacée.

Une autre approche serai d'étudier des scripts existant sur le sujet.
noel écrit:

Ca ira mieux une fois votre livre lu mais le temps de l'investissement est toujours compté.

Les auteurs de l'ouvrage sont Arnaud et Robin.
noel écrit:

Encore merci.

De rien.

Tutoriels PowerShell

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

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