Question Simuler un ctrl+c et un clic droit de la souris
- Samy Girard
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 4
- Remerciements reçus 0
Pour répondre aux questions :
Qu'est-ce que tu entends par COM ?
En passant par le port COM1 (c'est-à-dire en utilisant un câble série). La connexion ne pose,à priori, pas de problèmes car j'ai sauvegardé un profil dans Putty (que j'ai appelé Cisco).
-m est l'argument de quelle commande ?
-m est l'argument de la commande : cmd.exe /c putty.exe -load Cisco
Il ne peut le mettre qu'en mémoire au travers d'une variable, tu veux dire dans le presse-papier (clipboard) ?
Oui dans le presse-papier. Peut-être y'a t'il moyen d'accéder au presse-papier et de lui ajouter du texte ? (sous Windows 7)
Ce serait le programme Powershell qui émet et Putty.exe qui recevrait le clic droit. Si ce n'est pas facile à faire en PS, a quel(s) langage(s) pense-tu ?A priori mal aisé à faire en PS, dans un autre langage c'est fort probable, mais qui émet et qui reçoit ?
Idéalement un mp3, si ce n'est pas possible un beep systèmeUn beep (fréquence sur le mini hp du pc) ou un mp3 ?
Merci pour votre retour.
Connexion ou Créer un compte pour participer à la conversation.
- Samy Girard
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 4
- Remerciements reçus 0
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6300
- Remerciements reçus 68
bon je répond ici ce sera plus facile pour fusionner les 2 threads.
myssa écrit:
Ce que dit la doc de Putty concernant la commande -m :-m est l'argument de la commande : cmd.exe /c putty.exe -load Cisco
myssa écrit:With some servers (particularly Unix systems), you can even put multiple lines in this file and execute more than one command in sequence, or a whole shell script; but this is arguably an abuse, and cannot be expected to work on all servers. In particular, it is known not to work with certain ‘embedded’ servers, such as Cisco routers.
Voir les cmdlets dédiés de PSCX (Get-Clipboard/Set-ClipBoard). Je posterai prochaienement un exemple dans le forum contribution.Oui dans le presse-papier.
myssa écrit:
J'ai d'abord essayé avec les librairies de Add-lib , mais le pb est qu'une application posséde plusieurs handles de fenêtres. On doit connaître le bon destinataire pour un effectuer un SendMessage :Ce serait le programme Powershell qui émet et Putty.exe qui recevrait le clic droit. Si ce n'est pas facile à faire en PS, a quel(s) langage(s) pense-tu ?
[code:1]
$Process=Microsoft.PowerShell.Management\start-process Notepad.exe –pass
$Handle=$Process.MainWindowHandle
$WM_PASTE = [int32]0x302
#Ne fonctionne pas, car le Handle de fenêtre
#n'est pas le bon, cf. Spy++
Write-Clipboard \"ceci est un exemple`r`n de texte\";[void](SendMessage $Handle $WM_PASTE 0 0x0L )
[/code:1]
Comme je n'ai pas trop le temps de porter les API win32 manquantes sous PS (EnumWindows,...), je me suis donc tourné vers WASP .
C'est à peu près la même approche, mais codé en C#, c'est préférable pour ce type de traitement.
Une solution :
[code:1]
#Connexion sur une livebox,
#compte et pwd par défaut
C:\Tools\Putty\Putty.Exe telnet:192.168.1.1:23
#L'affichage de Putty n'est pas 'instantané'
sleep 1
#Sélectionne la fenêtre
$Window=Select-Window Putty
#Envoi une chaîne et un retour chariot pour valider
Send-Keys -win $Window.handle \"root`r`n\"
#On s'assure de ne pas 'stresser' Putty
sleep -m 250
Send-Keys -win $Window.handle \"1234`r`n\"
sleep -m 250
Send-Keys -win $Window.handle \"ls`r`n\"
sleep -m 250
Sleep 7
Send-Keys -win $Window.handle \"exit`r`n\"
[/code:1]
L'interface de Putty, en telnet, ne supporte pas le Control-V, on reçoit data_error :
[code:1]
C:\Tools\Putty\Putty.Exe telnet:192.168.1.1:23
sleep 1
$Window=Select-Window Putty
Send-Keys -win $Window.handle \"root`r`n\"
sleep -m 250
Send-Keys -win $Window.handle \"1234`r`n\"
sleep -m 250
#écriture dans le presse-papier,
# puis Ctrl-V dans la fenêtre cible activée
Write-Clipboard \"ceci est un exemple.\";Send-Keys -win $Window.handle \"^v\"
[/code:1]
myssa écrit:
Putty permet d'exécuter un son ou un mp3 selon une action, consulte sa doc.Idéalement un mp3, si ce n'est pas possible un beep système
Sinon si c'est en dehors de Putty, tu peux trouver des solutions sur le net.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Samy Girard
- Auteur du sujet
- Hors Ligne
- Nouveau membre
- Messages : 4
- Remerciements reçus 0
Grâce à l'aide d'un collègue,j'ai finalement pu faire ce que je souhaitais.
Pour le copier-coller, j'ai trouvé une commande vraiment simple qui fonctionne :
[code:1]Get-Content \".\essai.txt\" | clip[/code:1]
Pour simuler le clic droit, je suis passé par une bibliothèque VB. En effet le \"ctrl+v\" ne fonctionne pas sur Putty, il faut obligatoirement faire un clic droit pour que \"coller\" fonctionne :
[code:1]function wait {
param([int]$stop = 2)
Start-Sleep -seconds $stop
}
###chargement de la bibliothèque###
[void][System.Reflection.Assembly]::LoadWithPartialName(\"'Microsoft.VisualBasic\"«»)
& \".\Putty.exe\"
###Selection du process ####
$a = Get-Process | Where-Object {$_.Name -eq \"Putty\"}
wait
#[Microsoft.VisualBasic.Interaction]::AppActivate($a.ID)
## envoi de la send key###
[System.Windows.Forms.SendKeys]::«»SendWait(\"+{F10}\"«»)[/code:1]
Pour finir, pour le son j'ai du télécharger le magnétophone de Windows XP, et j'ai pu le lancer en lui passant des paramètres :
[code:1]$son=\"cmd /c sndrec32.exe /embedding /play /close son.wav\"
invoke-expression $son[/code:1]
Merci Laurent pour ton aide
Message édité par: myssa, à: 20/04/10 12:11<br><br>Message édité par: myssa, à: 20/04/10 15:21
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6300
- Remerciements reçus 68
myssa écrit:
C'est la même API Win32 , l'avantage est de ne pas nécessiter l'installation d'un snapin (cf. Add-PsSnapin).Pour le copier-coller, j'ai trouvé une commande vraiment simple qui fonctionne
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les initiés
- Simuler un ctrl+c et un clic droit de la souris