• 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

Capturar las teclas que se pulsan desde PowerShell y calcular el tiempo total en segundos que transcurre desde el inicio hasta que se empezó a pulsar la primera letra y se siguen pulsando hasta finalizar

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
#Declarar funciones
$signatures = @'
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
public static extern short GetAsyncKeyState(int virtualKeyCode);
'@
 
#Cargar las funciones declaradas
$API = Add-Type -MemberDefinition $signatures -Name 'Win32' -Namespace API -PassThru
 
$Comienzo = Get-Date
 
try
{
    $Total = 0
    #Bucle infinito para capturar pulsación de teclas
    while(1)
    {
        #Para cada uno de los caracteres ASCII
        for ($ascii = 9; $ascii -le 254; $ascii++)
        {
            #Capturar key state
            $state = $API::GetAsyncKeyState($ascii)
            #Si se ha pulsado una tecla
            if ($state -eq -32767)
            {
                [char]$ascii[0]
                $Tiempo = ((Get-Date) - $Comienzo).TotalMilliseconds
                $Total +=$Tiempo
                $Comienzo = Get-Date
                #Tiempo total desde que se empezó a pulsar letras y se siguen pulsando (resultado en segundos)
                "Tiempo en segundos desde que empezó: " + ([timespan]::FromMilliseconds($Total)).seconds
            }
        }
    }
}
finally
{
}

 

Publicado el día 22 de enero de 2021

CATEGORÍAS

PowerShell

ETIQUETAS

Add-Type, Caracteres, Date, Get-Date, Jesús Niño, Jesús Niño Camazón, user32.dll, Win32

MÁS

  • Obtener el nombre de todas clases de todas las ventanas de los procesos que se están ejecutado mediante PowerShell (utilizando la función GetClassName)
  • Capturar las teclas que se pulsan y mostrarlas en PowerShell
  • Obtener el nombre de una clase de una ventana de un proceso pasando el identificador de ventana en hexadecimal desde 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
  • Explicación sobre el uso de funciones que están en DLL del sistema operativo (en PowerShell)
  • Buscar el nombre de una clase de una ventana de un proceso que se está ejecutando mediante PowerShell (utilizando la función GetClassName)