Question
Imprimer une fenetre (Résolu)
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 15 ans 9 mois #880
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ou d'un conseil ?
Réponse de Arnaud Petitjean sur le sujet Re:Imprimer une fenetre
Bonjour Stéphanel,
Il faut maintenant récupérer le contenu du presse papier et le passer via le pipe à la cmdlet Out-Printer.
Malheureusement PowerShell n'intègre pas de commande native pour récupérer le contenu du presse papier. Ceci étant, il existe un jeu de cmdlets très riche (et libre) développé par la communauté Codeplex. Parmi ce jeu d'instructions il y a la cmdlet Get-Clipboard. Et c'est celle qu'il te faut.
Donc, rendez-vous chez Powershell Community Extensions .
Tiens nous au courant,
@++
Arnaud
Il faut maintenant récupérer le contenu du presse papier et le passer via le pipe à la cmdlet Out-Printer.
Malheureusement PowerShell n'intègre pas de commande native pour récupérer le contenu du presse papier. Ceci étant, il existe un jeu de cmdlets très riche (et libre) développé par la communauté Codeplex. Parmi ce jeu d'instructions il y a la cmdlet Get-Clipboard. Et c'est celle qu'il te faut.
Donc, rendez-vous chez Powershell Community Extensions .
Tiens nous au courant,
@++
Arnaud
MVP PowerShell et créateur de ce magnifique forum

Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ou d'un conseil ?
Connexion ou Créer un compte pour participer à la conversation.
- Lepertel
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 15
- Remerciements reçus 0
il y a 15 ans 9 mois #882
par Lepertel
Réponse de Lepertel sur le sujet Re:Imprimer une fenetre
MErci pour cette info, je vais jeter un oeil de suite.
Merci
Stephane
Merci
Stephane
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 15 ans 8 mois #926
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ou d'un conseil ?
Réponse de Arnaud Petitjean sur le sujet Re:Imprimer une fenetre
Hello,
Après quelques tests, il s'avère que la méthode précédente ne fonctionne pas.
Le mieux est d'utiliser la méthode SendWait du framework .Net 2.0.
[code:1]
[void][System.Reflection.Assembly]::LoadWithPartialName(\"System.windows.forms\"«»)
[system.windows.forms.sendkeys]::«»sendwait(\"%{PRTSC}\"«»)
[/code:1]
Avant de l'utiliser il ne faut pas oublier de charger l'assembly Windows.forms.
Maintenant reste plus qu'à envoyer le contenu du presse papier à une imprimante. Une technique pourrait consister à lancer une application, et à lui envoyer des séquences de touches pour coller le contenu du presse papier, puis à lancer l'impression.
A bientôt,
Arnaud<br><br>Message édité par: Arnaud, à: 13/09/07 09:41
Après quelques tests, il s'avère que la méthode précédente ne fonctionne pas.
Le mieux est d'utiliser la méthode SendWait du framework .Net 2.0.
[code:1]
[void][System.Reflection.Assembly]::LoadWithPartialName(\"System.windows.forms\"«»)
[system.windows.forms.sendkeys]::«»sendwait(\"%{PRTSC}\"«»)
[/code:1]
Avant de l'utiliser il ne faut pas oublier de charger l'assembly Windows.forms.
Maintenant reste plus qu'à envoyer le contenu du presse papier à une imprimante. Une technique pourrait consister à lancer une application, et à lui envoyer des séquences de touches pour coller le contenu du presse papier, puis à lancer l'impression.
A bientôt,
Arnaud<br><br>Message édité par: Arnaud, à: 13/09/07 09:41
MVP PowerShell et créateur de ce magnifique forum

Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ou d'un conseil ?
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
Réduire
Plus d'informations
- Messages : 576
- Remerciements reçus 0
il y a 15 ans 8 mois #940
par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Imprimer une fenetre
Hello,
On peut aussi ajouter un bouton \"Imprimer\" qui appellera les méthodes du Framework qui vont bien. Il existe un exemple sur MSDN pour imprimer un Windows Form, évidemment pas en PowerShell mais en VB.Net et en C#:
msdn2.microsoft.com/fr-fr/library/6he9hz8c(vs.80).aspx
J'ai dû un peu gratter pour pouvoir le traduire en PowerShell. Voilà ce que ça donne - le code qui suit suppose que le Windows Form s'appelle $form :
[code:1]
# [void] [Reflection.Assembly]::LoadWithPartialName(\"System.Windows.Forms\"«»)
[void] [Reflection.Assembly]::LoadWithPartialName(\"System.Drawing\"«»)
$printClick = {
$myGraphics = $form.CreateGraphics()
$size = $form.Size
$script:memimage = new-object System.Drawing.Bitmap $form.Width, $form.Height, $myGraphics
$memgraphics = [System.Drawing.Graphics]::FromImage($script:memimage)
$memgraphics.CopyFromScreen($form.Location.X, $form.Location.Y, 0, 0, $size)
$printdoc.Print()
}
$PrintPage = { $_.Graphics.DrawImage($script:memimage, 0, 0) }
$printDoc = New-Object System.Drawing.Printing.PrintDocument
$printDoc.Add_PrintPage($PrintPage)
$printButton = New-Object System.Windows.Forms.Button
$printButton.Text = \"Imprimer\"
$printButton.Add_Click($printClick)
# $form = New-Object System.Windows.Forms.Form
$form.Controls.Add($printButton)
# $form.ShowDialog()[/code:1]
Les lignes commentées sont simplement là pour rappeler ce qui doit être fait par ailleurs pour créer et afficher le Windows Form. Le script existant doit déjà contenir des lignes équivalentes.
Voilà, j'espère que ça te sera utile.
Janel
On peut aussi ajouter un bouton \"Imprimer\" qui appellera les méthodes du Framework qui vont bien. Il existe un exemple sur MSDN pour imprimer un Windows Form, évidemment pas en PowerShell mais en VB.Net et en C#:
msdn2.microsoft.com/fr-fr/library/6he9hz8c(vs.80).aspx
J'ai dû un peu gratter pour pouvoir le traduire en PowerShell. Voilà ce que ça donne - le code qui suit suppose que le Windows Form s'appelle $form :
[code:1]
# [void] [Reflection.Assembly]::LoadWithPartialName(\"System.Windows.Forms\"«»)
[void] [Reflection.Assembly]::LoadWithPartialName(\"System.Drawing\"«»)
$printClick = {
$myGraphics = $form.CreateGraphics()
$size = $form.Size
$script:memimage = new-object System.Drawing.Bitmap $form.Width, $form.Height, $myGraphics
$memgraphics = [System.Drawing.Graphics]::FromImage($script:memimage)
$memgraphics.CopyFromScreen($form.Location.X, $form.Location.Y, 0, 0, $size)
$printdoc.Print()
}
$PrintPage = { $_.Graphics.DrawImage($script:memimage, 0, 0) }
$printDoc = New-Object System.Drawing.Printing.PrintDocument
$printDoc.Add_PrintPage($PrintPage)
$printButton = New-Object System.Windows.Forms.Button
$printButton.Text = \"Imprimer\"
$printButton.Add_Click($printClick)
# $form = New-Object System.Windows.Forms.Form
$form.Controls.Add($printButton)
# $form.ShowDialog()[/code:1]
Les lignes commentées sont simplement là pour rappeler ce qui doit être fait par ailleurs pour créer et afficher le Windows Form. Le script existant doit déjà contenir des lignes équivalentes.
Voilà, j'espère que ça te sera utile.
Janel
Connexion ou Créer un compte pour participer à la conversation.
- Lepertel
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 15
- Remerciements reçus 0
il y a 15 ans 8 mois #944
par Lepertel
Réponse de Lepertel sur le sujet Re:Imprimer une fenetre
Super, merci Janel, je vais tester ca ASAP.
encoe merci
encoe merci

Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.051 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Imprimer une fenetre (Résolu)