# Ejecuta un click del mouse function MouseClick ($Button = "left", $x, $y, $cant = 1){ $signature = @' [DllImport("user32.dll",CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)] public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo); '@ [Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point($x, $y); $SendMouseClick = Add-Type -memberDefinition $signature -name "Win32MouseEventNew" -namespace Win32Functions -passThru for ($i = 1; $i -le $cant; $i++){ if($Button -eq "left"){ $SendMouseClick::mouse_event(0x00000002, 0, 0, 0, 0); $SendMouseClick::mouse_event(0x00000004, 0, 0, 0, 0); } if($Button -eq "right"){ $SendMouseClick::mouse_event(0x00000008, 0, 0, 0, 0); $SendMouseClick::mouse_event(0x00000010, 0, 0, 0, 0); } if($Button -eq "middle"){ $SendMouseClick::mouse_event(0x00000020, 0, 0, 0, 0); $SendMouseClick::mouse_event(0x00000040, 0, 0, 0, 0); } } }
jueves, 10 de enero de 2013
Mouse click en PowerShell
Tuve que recorrer media internet para encontrar finalmente como hacer un click del mouse con Power Shell sin tener que usar otros programas externos. Así que acá finalmente pude armar una función que hace clicks del mouse en la posición indicada de la pantalla...
Etiquetas:
Power Shell,
PowerShell,
programación,
script,
software
lunes, 7 de enero de 2013
Tips PowerShell
- Para ejecutar desde la consola DOS usar: powershell <path del script> o bien powershell .\nombre_del_script.ps1 en caso que esté en el mismo directorio.
- Los comentarios dentro de los script se inician con numeral (#)
- Algunas funciones útiles
- Escribir texto en colores por la consola DOS:
- Escribir una línea en color: Write-Host "Texto rojo en fondo verde" -foregroundcolor red -backgroundcolor green
- Cambiar los colores de la consola: $HOST.UI.RawUI.BackgroundColor = "Black"
$HOST.UI.RawUI.ForegroundColor = "Red" - Para detener la ejecución del programa: Start-Sleep -m 10000 si se usa -m se refiere a milisegundos, si se quieren usar segundos se usa -s (ej Start-Sleep -1 10 es equivalente al ejemplo anterior)
- Para concatenar strings se usa el signo
+ Para invocar programas se usa &, por ejemplo & "C:\Program Files\Winamp\winamp.exe" abrirá el winamp. o bien $winamp = "C:\Program Files\Winamp\winamp.exe"
& $winampPara escribir comandos multilínea se usa el acento invertido `, ejemplo
$msg = "mi mensaje empieza en esta línea " + [Environment]::NewLine `
+ "... y sigue en esta segunda línea"[Environment]::NewLine es el caracter de nueva línea Apagar y reiniciar Stop-Computer para apagar la computadora Restart-Compute para reiniciar Ambos se pueden usar con la opción -computer "nombrepc1, nombrepc2, nombreotrapc, etc " -force para apagar o reiniciar computadoras que se encuentren en la red. Operaciones con archivos Borrar: Remove-Item c:\borrame.txt Copiar: Copy-Item Origen Destino Escribir en archivo: "escribime en archivo" > c:\archivo.txt Operadores de comparaci ón -eq: igual -ne: distinto -gt: mayor -ge: mayor o igua -lt: menor -le: menor o igual -like: comparacion entre caracteres -notlike: -like negado -match: Que machee el segundo operando -notmatch: -match negado Operadore lógicos -and: and lógico -or: or lógico -not: not lógico Finalizar la ejecución del programa: exit Variables de error (PowerShell utiliza varias variables globales para guardar estados de error y otras informaciones importantes) aquí algunas: $? contiene el estado de ejecución de la última operación. True indica que todo salio Ok, false indica que hubo error o ejecución parcial (se basa en el exit code de los programas windows, un exit code 0 debería indicar que todo termino ok, cualquier valor distinto de 0 indicaría error, pero no todos los programas respetan esta convención, ver $LASTEXITCODE). $LASTEXITCODE guarda el código de salida de la ejecución de la última operación, sirve para interpretar la salida de programas que no respeten la convención de exit code diferente de 0 para ejecuciones con errores o no completas (ver el punto anterior). $Error ArrayList de los errores ocurridos en la sesion, los nuevos errores se agregan al principio del arraylist, dejando el último error en posición 0. Otras $true es true $false es false $null es un objeto null $_ el objeto actual (por ejemplo en un foreach-object o en un where-object, etc) Para obtener la fecha y hora: get-date -format u
Try, catch, finally en PowerShell
Acá les dejo un ejemplo de try - catch - finally en powerwhell que me fue de utilidad
:-)
try { $ErrorActionPreference = "Stop"; #esto se hace para que stopee en los errores Copy-Item file_origin file_dest #copio un archivo }catch{ Write-Host $Error[0].exception # muestro el mensaje de error $ErrorActionPreference = "Continue"; #vuelvo a setear la acción por defecto en los errores Exit # Termino la ejecución si hubo error }finally{ $ErrorActionPreference = "Continue"; #vuelvo a setear la acción por defecto en los errores }
:-)
Etiquetas:
Power Shell,
PowerShell,
programación,
software
Power Shell - ¿Cómo llamar a una función que está en otro script?
Bueno, acá explico como llamar desde un script PowerShell (ps1) a una función que se encuentra en otro script...
Supongamos que tenemos los script funciones.ps1 y principal.ps1, siendo:
funciones.ps1:
Para llamar a la funcion test desde principal.ps1 se hace
En el ejemplo estoy llamando al script de forma relativa, suponiendo que están en el mismo directorio, si no fuera así habría que hacer algo tipo ". C:\<path del script funciones.ps1>\funciones.ps1...
Espero que les sea de utilidad....
Supongamos que tenemos los script funciones.ps1 y principal.ps1, siendo:
funciones.ps1:
Function test(){ Write-Host "Dentro de la funcion" }
Para llamar a la funcion test desde principal.ps1 se hace
. .\funciones.ps1 # acá incluyo al script funciones.ps1 # notar que hay un espacio entre . y .\funciones.ps1 #luego llamo a la función test
En el ejemplo estoy llamando al script de forma relativa, suponiendo que están en el mismo directorio, si no fuera así habría que hacer algo tipo ". C:\<path del script funciones.ps1>\funciones.ps1...
Espero que les sea de utilidad....
Etiquetas:
Power Shell,
PowerShell,
programación,
script,
software
Suscribirse a:
Entradas (Atom)