[ toxi_programer @ 09.08.2007. 11:29 ] @
Hi all, Potrebno mi je da iz koda uključim one lampice na tasturi, odnosno da uključim/isključim num lock, caps lock i scroll lock a ne znam kako to da uradim. Jel ima neko ideju? C++, C#, VB... |
[ toxi_programer @ 09.08.2007. 11:29 ] @
[ prog @ 09.08.2007. 12:27 ] @
[ BezPanike @ 09.08.2007. 17:07 ] @
Code: Imports System.Runtime.InteropServices Public Class Form1 Private WithEvents bNum, bCaps, bScroll As New Button Sub New() InitializeComponent() bNum = New Button bNum.Location = New Point(10, 40) bNum.Text = "NumLock" bCaps = New Button bCaps.Location = New Point(10, 65) bCaps.Text = "CapsLock" bScroll = New Button bScroll.Location = New Point(10, 90) bScroll.Text = "ScrollLock" Me.Controls.Add(bNum) Me.Controls.Add(bCaps) Me.Controls.Add(bScroll) End Sub Private Sub DoKeyBoard(ByVal flags As NativeMethods.KEYEVENTF, ByVal key As Keys) Dim input As New NativeMethods.INPUT input.dwType = NativeMethods.InputType.Keyboard input.wVk = Convert.ToInt16(key) input.wScan = 0 input.time = 0 input.dwFlags = flags input.dwExtraInfo = IntPtr.Zero Dim cbSize As Integer = Marshal.SizeOf(GetType(NativeMethods.INPUT)) Dim result As Integer = NativeMethods.SendInput(1, input, cbSize) If result = 0 Then Debug.WriteLine(Marshal.GetLastWin32Error) End Sub Private Sub bNum_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bNum.Click DoKeyBoard(0, Keys.NumLock) DoKeyBoard(NativeMethods.KEYEVENTF.KEYUP, Keys.NumLock) End Sub Private Sub bCaps_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bCaps.Click DoKeyBoard(0, Keys.CapsLock) DoKeyBoard(NativeMethods.KEYEVENTF.KEYUP, Keys.CapsLock) End Sub Private Sub bScroll_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bScroll.Click DoKeyBoard(0, Keys.Scroll) DoKeyBoard(NativeMethods.KEYEVENTF.KEYUP, Keys.Scroll) End Sub End Class Public Class NativeMethods <DllImport("user32.dll", SetLastError:=True)> Friend Shared Function SendInput(ByVal cInputs As Int32, ByRef pInputs As INPUT, ByVal cbSize As Int32) As Int32 End Function <StructLayout(LayoutKind.Sequential, pack:=1, Size:=28)> Friend Structure INPUT Public dwType As InputType Public wVk As Int16 Public wScan As Int16 Public dwFlags As KEYEVENTF Public time As Int32 Public dwExtraInfo As IntPtr End Structure Friend Enum InputType As Integer Mouse = 0 Keyboard = 1 Hardware = 2 End Enum <Flags()> _ Friend Enum KEYEVENTF As Integer EXTENDEDKEY = 1 KEYUP = 2 UNICODE = 4 SCANCODE = 8 End Enum End Class [ toxi_programer @ 09.08.2007. 21:56 ] @
Eh... nisam uspeo ništa da uradim :(
Što se tiče primera koda koji ste dali, ja ne znam kako da ga prevedem u C# pošto nekih od elemenata koji se spominju "nema" u .NET. Ili ja ne znam gde su... A onaj sajt, to sam i ranije bio našao. Ali fora je u tome što preko funkcije GetKeyboardState() uzmem onih 255 byte-ove i sad ne znam kako da ih podesim da bi se uključilo/isključilo sijanje lampice na tastaturi. Probao sam da ih sve postavim na nulu a onda da pozove SetKeyboardState() ali lampica i dalje ostane uključena. Mislim, nikakvo efekta nema - idalje mi radi kucanje brojeva pomoću onih tastera na desnoj strani tastature, na primer... [ Boško @ 10.08.2007. 01:12 ] @
A zna li neko kako ovo primeniti na eksterne (usb) tastature?
Konkretno, interesuje me kako da uključim NUMLOCK na maloj numeričkoj USB tastaturi koju koristim uz NoteBook. [ BezPanike @ 10.08.2007. 09:26 ] @
Kod jeste .NET, ali VB.NET... A ja nisam prava osoba da ti ga prevedem.
A što se tiče USB tatsature, meni radi. Tastatura je tastatura. [ Boško @ 10.08.2007. 15:21 ] @
Citat: BezPanike: A što se tiče USB tatsature, meni radi. Tastatura je tastatura. Ne znam da li si me dobro razumeo. USB tastatura je priključena kao dodatna (druga) tastatura. Tvoj kod radi OK i na "glavnoj" tastaturi pali i gasi tastere, ali na ovoj dodatnoj neće. Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|