• EnglishSpanishGermanFrenchPolishChinese (Traditional)


EnglishSpanishGermanFrenchPolishChinese (Traditional)

Operating systems, scripting, PowerShell and security

Operating systems, software development, scripting, PowerShell tips, network and security

Menú principal
  • Categorías
  • Cursos
  • Libro de PowerShell
  • Lo mejor
  • Lo último
  • Proyectos
  • Contactar
Ir al contenido

Ejercicios de PowerShell: hacer clic en varias posiciones de la pantalla con PowerShell

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#Ver las coordenadas del ratón en la pantalla
[System.Windows.Forms.Cursor]::Position
 
#Mover la posición del ratón a las coordenadas 100,100
[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(100,100)
 
#Mover la posición del ratón a las coordenadas 100,100 y hacer clic
#Primero mover el ratón a la coordenada 100,100
[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(100,100)
#Hacer clic con las siguientes funciones
$MouseEventSig=@'
[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);
'@
$MouseEvent = Add-Type -memberDefinition $MouseEventSig -name "MouseEventWinApi" -passThru
$MouseEvent::mouse_event(0x00000002, 0, 0, 0, 0)
$MouseEvent::mouse_event(0x00000004, 0, 0, 0, 0)
 
#Almacenar en un fichero coordenadas
"100,100" | Out-File posiciones
"200,100" | Out-File posiciones -Append
 
#Leer de un fichero coordenadas
Get-Content posiciones
 
#Leer varias coordenadas de un fichero separando la coordenada X y la coordenada Y
Get-Content posiciones | % {
    "X:"+$_.split(",")[0]
    "Y:"+$_.split(",")[1]
}
 
#Leer coordenadas de un fichero y hacer clic
#Hacer clic con las siguientes funciones
$MouseEventSig=@'
[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);
'@
$MouseEvent = Add-Type -memberDefinition $MouseEventSig -name "MouseEventWinApi" -passThru
#Leer varias coordenadas de un fichero
Get-Content posiciones | % {
    [System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point($_.split(",")[0],$_.split(",")[1])
    $MouseEvent::mouse_event(0x00000002, 0, 0, 0, 0)
    $MouseEvent::mouse_event(0x00000004, 0, 0, 0, 0)
    #Esperar 5 segundos entre clic y clic
    Start-Sleep -Seconds 5
}

Publicado el día 8 de febrero de 2021

CATEGORÍAS

Automatización, PowerShell

ETIQUETAS

Add-Type, Append, Drawing, Ejercicios de PowerShell, Get-Content, Jesús Niño, Jesús Niño Camazón, mouse_event, MouseEventWinApi, New-Object, Out-File, Split, Start-Sleep, System.Drawing, System.Drawing.Point, System.Windows.Forms.Cursor, user32.dll, Windows

MÁS

  • Automatizar desde Python
  • Hacer click de forma automática y repetitiva en dos posiciones distintas de la pantalla con PowerShell
  • Obtener el nombre de las clases de las ventanas de los procesos que se están ejecutando de una ventana de un proceso pasando un rango de identificadores de ventana
  • 11. Gestión del Directorio Activo (nivel intermedio)
  • Obtener el nombre de todas clases que pertenecen a cada una de las ventanas de los procesos que se están ejecutado mediante PowerShell (utilizando la función GetClassName)
  • Buscar el nombre de una clase de una ventana de un proceso que se está ejecutando y hacer click en todos los botones mediante PowerShell (utilizando la función GetClassName)