Archive for Tháng Tám, 2008
Create new database error No Privileges Phpadmin
Login with acout root or (run Start->Reset MySQL Root Password)
New KeyBoard
SendKeys
————————-
Option Strict Off
Imports System.Runtime.InteropServices
Imports System.Text
Public Module SendKeys
Public Declare Sub keybd_event Lib “user32″ (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
Public Const KEYEVENTF_KEYUP = &H2 ‘ Release key
Public Const KEYEVENTF_EXTENDEDKEY = &H1
#Region “shift ,altgr and alt release sub”
Sub shiftrelease()
‘Button.BackColor = Color.FromArgb(224, 224, 224)
‘btnsagshift.BackColor = Color.FromArgb(224, 224, 224)
keybd_event(wVk.VK_SHIFT, 0, 2, 0)
End Sub
Sub altrelease()
keybd_event(wVk.VK_MENU, 0, KEYEVENTF_EXTENDEDKEY Or 2, 0)
‘btnsagaltgr.BackColor = Color.FromArgb(224, 224, 224)
End Sub
Sub leftaltrelease()
keybd_event(wVk.VK_MENU, 0, KEYEVENTF_KEYUP, 0)
‘btnsolalt.BackColor = Color.FromArgb(224, 224, 224)
End Sub
#End Region
Public Enum wVk As Short
VK_CANCEL = &H3 ‘BREAK(Control+Pause) key(ExtendedKey)
VK_BACK = &H8 ‘BACKSPACE key
VK_TAB = &H9 ‘TAB key
VK_CLEAR = &HC
VK_RETURN = &HD ‘ENTER key
VK_SHIFT = &H10 ‘SHIFT key
VK_CONTROL = &H11 ‘CTRL key
VK_MENU = &H12 ‘ALT key
VK_PAUSE = &H13 ‘PAUSE key
VK_CAPITAL = &H14 ‘CAPS LOCK key
VK_KANA = &H15 ‘IME かな mode
VK_JUNJA = &H17
VK_FINAL = &H18
VK_KANJI = &H19 ‘IME 漢字 mode
VK_ESCAPE = &H1B ‘ESC key
VK_CONVERT = &H1C ‘IME 変換 key
VK_NONCONVERT = &H1D ‘IME 無変換 key
VK_ACCEPT = &H1E
VK_MODECHANGE = &H1F
VK_SPACE = &H20 ‘SPACEBAR
VK_PRIOR = &H21 ‘PAGE UP key(ExtendedKey)
VK_NEXT = &H22 ‘PAGE DOWN key(ExtendedKey)
VK_END = &H23 ‘END key(ExtendedKey)
VK_HOME = &H24 ‘HOME key(ExtendedKey)
VK_LEFT = &H25 ‘← key(ExtendedKey)
VK_UP = &H26 ‘↑ key(ExtendedKey)
VK_RIGHT = &H27 ‘→ key(ExtendedKey)
VK_DOWN = &H28 ‘↓ key(ExtendedKey)
VK_SELECT = &H29
VK_PRINT = &H2A
VK_EXECUTE = &H2B
VK_SNAPSHOT = &H2C ‘PRINT SCREEN key(ExtendedKey)
VK_INSERT = &H2D ‘INS key(ExtendedKey)
VK_DELETE = &H2E ‘DEL key(ExtendedKey)
VK_HELP = &H2F
VK_0 = &H30 ’0 key
VK_1 = &H31 ’1 key
VK_2 = &H32 ’2 key
VK_3 = &H33 ’3 key
VK_4 = &H34 ’4 key
VK_5 = &H35 ’5 key
VK_6 = &H36 ’6 key
VK_7 = &H37 ’7 key
VK_8 = &H38 ’8 key
VK_9 = &H39 ’9 key
VK_A = &H41 ‘A key
VK_B = &H42 ‘B key
VK_C = &H43 ‘C key
VK_D = &H44 ‘D key
VK_E = &H45 ‘E key
VK_F = &H46 ‘F key
VK_G = &H47 ‘G key
VK_H = &H48 ‘H key
VK_I = &H49 ‘I key
VK_J = &H4A ‘J key
VK_K = &H4B ‘K key
VK_L = &H4C ‘L key
VK_M = &H4D ‘M key
VK_N = &H4E ‘N key
VK_O = &H4F ‘O key
VK_P = &H50 ‘P key
VK_Q = &H51 ‘Q key
VK_R = &H52 ‘R key
VK_S = &H53 ‘S key
VK_T = &H54 ‘T key
VK_U = &H55 ‘U key
VK_V = &H56 ‘V key
VK_W = &H57 ‘W key
VK_X = &H58 ‘X key
VK_Y = &H59 ‘Y key
VK_Z = &H5A ‘Z key
VK_LWIN = &H5B ‘Left Windows key
VK_RWIN = &H5C ‘Right Windows key
VK_APPS = &H5D ‘ Applications key
VK_NUMPAD0 = &H60 ‘Numeric keypad 0 key
VK_NUMPAD1 = &H61 ‘Numeric keypad 1 key
VK_NUMPAD2 = &H62 ‘Numeric keypad 2 key
VK_NUMPAD3 = &H63 ‘Numeric keypad 3 key
VK_NUMPAD4 = &H64 ‘Numeric keypad 4 key
VK_NUMPAD5 = &H65 ‘Numeric keypad 5 key
VK_NUMPAD6 = &H66 ‘Numeric keypad 6 key
VK_NUMPAD7 = &H67 ‘Numeric keypad 7 key
VK_NUMPAD8 = &H68 ‘Numeric keypad 8 key
VK_NUMPAD9 = &H69 ‘Numeric keypad 9 key
VK_MULTIPLY = &H6A ‘* key
VK_ADD = &H6B ‘+ key
VK_SEPERATOR = &H6C ‘
VK_SUBTRACT = &H6D ‘- key
VK_DECIMAL = &H6E ‘テンキーの . key
VK_DEVIDE = &H6F ‘/ key(ExtendedKey)
VK_F1 = &H70 ‘F1 key
VK_F2 = &H71 ‘F2 key
VK_F3 = &H72 ‘F3 key
VK_F4 = &H73 ‘F4 key
VK_F5 = &H74 ‘F5 key
VK_F6 = &H75 ‘F6 key
VK_F7 = &H76 ‘F7 key
VK_F8 = &H77 ‘F8 key
VK_F9 = &H78 ‘F9 key
VK_F10 = &H79 ‘F10 key
VK_F11 = &H7A ‘F11 key
VK_F12 = &H7B ‘F12 key
VK_F13 = &H7C ‘F13 key
VK_F14 = &H7D ‘F14 key
VK_F15 = &H7E ‘F15 key
VK_F16 = &H7F ‘F16 key
VK_F17 = &H80 ‘F17 key
VK_F18 = &H81 ‘F18 key
VK_F19 = &H82 ‘F19 key
VK_F20 = &H83 ‘F20 key
VK_F21 = &H84 ‘F21 key
VK_F22 = &H85 ‘F22 key
VK_F23 = &H86 ‘F23 key
VK_F24 = &H87 ‘F24 key
VK_NUMLOCK = &H90 ‘NUM LOCK key(ExtendedKey)
VK_SCROLL = &H91 ‘SCROLL LOCK key
VK_LSHIFT = &HA0 ‘Left SHIFT key
VK_RSHIFT = &HA1 ‘ Right SHIFT key(ExtendedKey)
VK_LCONTROL = &HA2 ‘Left CONTROL key
VK_RCONTROL = &HA3 ‘Right CONTROL key(ExtendedKey)
VK_LMENU = &HA4 ‘Left MENU key
VK_RMENU = &HA5 ‘Right MENU key(ExtendedKey)
VK_OEM_1 = &HBA ‘: * key
VK_OEM_PLUS = &HBB ‘; + key
VK_OEM_COMMA = &HBC ‘, < key
VK_OEM_MINUS = &HBD ‘- = key
VK_OEM_PERIOD = &HBE ‘. > key
VK_OEM_2 = &HBF ‘/ ? key
VK_OEM_3 = &HC0 ‘@ ` key
VK_OEM_4 = &HDB ‘[ { key
VK_OEM_5 = &HDC '\ | key
VK_OEM_6 = &HDD '] } key
VK_OEM_7 = &HDE ‘^ ~ key
VK_OEM_8 = &HDF
VK_PROCESSKEY = &HE5
VK_OEM_ATTN = &HF0 ‘英数
VK_OEM_102 = &HE2 ‘\ _ key
VK_OEM_COPY = &HF2 ‘カタカナひらがな
VK_OEM_AUTO = &HF3 ‘全角/半角
VK_OEM_ENLW = &HF4 ‘全角/半角
VK_OEM_BACKTAB = &HF5 ‘ローマ字
VK_PACKET = &HE7
VK_ATTN = &HF6
VK_CRSEL = &HF7
VK_EXSEL = &HF8
VK_EREOF = &HF9
VK_PLAY = &HFA
VK_ZOOM = &HFB
VK_NONAME = &HFC
VK_PA1 = &HFD
VK_OEM_CLEAR = &HFE
End Enum
End Module
Public Class Key
Private _Text As String
Private _Key As Object
Sub New(ByVal Text As String, ByVal Key As Object)
_Text = Text
_Key = Key
End Sub
ReadOnly Property Text() As String
Get
Return _Text
End Get
End Property
ReadOnly Property Key() As Object
Get
Return _Key
End Get
End Property
End Class
Public Class ExTableLayoutPanel
Inherits TableLayoutPanel
Sub New()
MyBase.New()
SetStyle(ControlStyles.OptimizedDoubleBuffer, True)
SetStyle(ControlStyles.AllPaintingInWmPaint, True)
End Sub
Sub New(ByVal ColumnCountValue As Integer, ByVal RowCountValue As Integer)
Me.new()
ColumnCount = ColumnCountValue
RowCount = RowCountValue
End Sub
Shadows Property RowCount() As Integer
Get
Return MyBase.RowCount
End Get
Set(ByVal value As Integer)
MyBase.RowCount = value
Me.RowStyles.Clear()
For I As Integer = 0 To value – 1
Me.RowStyles.Add(New RowStyle(SizeType.Percent, 100))
Next
End Set
End Property
Shadows Property ColumnCount() As Integer
Get
Return MyBase.ColumnCount
End Get
Set(ByVal value As Integer)
MyBase.ColumnCount = value
Me.ColumnStyles.Clear()
For I As Integer = 0 To value – 1
Me.ColumnStyles.Add(New ColumnStyle(SizeType.Percent, 100))
Next
End Set
End Property
End Class
Public Class ExButton
Inherits System.Windows.Forms.Button
Sub New()
SetStyle(ControlStyles.Selectable, False)
End Sub
Private Function PixelsToPoints(ByVal Pixels As Single, ByVal fVertical As Boolean) As Single
Dim g As Graphics = Me.CreateGraphics
Dim DPI As Single = CSng(IIf(fVertical, g.DpiY, g.DpiX))
g.Dispose()
Return (Pixels * 72) / DPI
End Function
End Class
———————————————–
———————————————-
Form1
——————————————–
——————————————-
Option Strict On
Imports System.Runtime.InteropServices
Imports System.Text
Public Class Form1
<DllImport(“user32.dll”)> Private Shared Function GetForegroundWindow() As IntPtr
End Function
<DllImport(“user32.dll”)> Private Shared Function SetForegroundWindow(ByVal hWnd As IntPtr) As Integer
End Function
<DllImport(“user32.dll”)> Private Shared Function GetWindowThreadProcessId(ByVal hwnd As IntPtr, ByRef lpdwProcessId As Integer) As Integer
End Function
<DllImport(“user32.dll”)> Private Shared Function AttachThreadInput(ByVal idAttach As Integer, ByVal idAttachTo As Integer, ByVal fAttach As Boolean) As Boolean
End Function
Dim TableLayoutPanel1 As New ExTableLayoutPanel(22, 6)
Dim WithEvents Timer1 As New Timer
Dim Ctrlbool As Boolean
Dim Shiftbool As Byte = 0
Dim Altbool As Byte = 0
Dim ShiftButton As New ExButton
Dim CtrlButton As New ExButton
Dim AltButton As New ExButton
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
keybd_event(CByte(wVk.VK_SHIFT), 0, 2, 0)
keybd_event(CByte(wVk.VK_CONTROL), 0, 2, 0)
keybd_event(CByte(wVk.VK_MENU), 0, 2, 0)
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.TableLayoutPanel1.Dock = DockStyle.Fill
Me.Text = “KeyBoard Design by Le Minh Hai: “
Me.TopMost = True
Me.Controls.Add(TableLayoutPanel1)
Dim Button(113) As Button
Dim Key() As Key = {New Key(“Esc”, wVk.VK_ESCAPE), _
New Key(“F1″, wVk.VK_F1), _
New Key(“F2″, wVk.VK_F2), _
New Key(“F3″, wVk.VK_F3), _
New Key(“F4″, wVk.VK_F4), _
New Key(“F5″, wVk.VK_F5), _
New Key(“F6″, wVk.VK_F6), _
New Key(“F7″, wVk.VK_F7), _
New Key(“F8″, wVk.VK_F8), _
New Key(“F9″, wVk.VK_F9), _
New Key(“F10″, wVk.VK_F10), _
New Key(“F11″, wVk.VK_F11), _
New Key(“F12″, wVk.VK_F12), _
New Key(“”, Nothing), _
New Key(“”, Nothing), _
New Key(“”, Nothing), _
New Key(“”, Nothing), _
New Key(“”, Nothing), _
New Key(“Print”, wVk.VK_SNAPSHOT), _
New Key(“Scroll”, wVk.VK_SCROLL), _
New Key(“Pause”, wVk.VK_PAUSE), _
New Key(“半角”, wVk.VK_OEM_AUTO), _
New Key(“1″, wVk.VK_1), _
New Key(“2″, wVk.VK_2), _
New Key(“3″, wVk.VK_3), _
New Key(“4″, wVk.VK_4), _
New Key(“5″, wVk.VK_5), _
New Key(“6″, wVk.VK_6), _
New Key(“7″, wVk.VK_7), _
New Key(“8″, wVk.VK_8), _
New Key(“9″, wVk.VK_9), _
New Key(“0″, wVk.VK_0), _
New Key(“-”, wVk.VK_OEM_MINUS), _
New Key(“^”, wVk.VK_OEM_7), _
New Key(“\”, wVk.VK_OEM_5), _
New Key(“<-”, wVk.VK_BACK), _
New Key(“Insert”, wVk.VK_INSERT), _
New Key(“Home”, wVk.VK_HOME), _
New Key(“PageUp”, wVk.VK_PRIOR), _
New Key(“NumLock”, wVk.VK_NUMLOCK), _
New Key(“/”, wVk.VK_DEVIDE), _
New Key(“*”, wVk.VK_MULTIPLY), _
New Key(“-”, wVk.VK_SUBTRACT), _
New Key(“Tab”, wVk.VK_TAB), _
New Key(“Q”, wVk.VK_Q), _
New Key(“W”, wVk.VK_W), _
New Key(“E”, wVk.VK_E), _
New Key(“R”, wVk.VK_R), _
New Key(“T”, wVk.VK_T), _
New Key(“Y”, wVk.VK_Y), _
New Key(“U”, wVk.VK_U), _
New Key(“I”, wVk.VK_I), _
New Key(“O”, wVk.VK_O), _
New Key(“P”, wVk.VK_P), _
New Key(“@”, wVk.VK_OEM_3), _
New Key(“[", wVk.VK_OEM_4), _
New Key(ChrW(&H21B5), wVk.VK_RETURN), _
New Key("Delete", wVk.VK_DELETE), _
New Key("End", wVk.VK_END), _
New Key("PageDown", wVk.VK_NEXT), _
New Key("7", wVk.VK_NUMPAD7), _
New Key("8", wVk.VK_NUMPAD8), _
New Key("9", wVk.VK_NUMPAD9), _
New Key("+", wVk.VK_ADD), _
New Key("CapsLock", wVk.VK_CAPITAL), _
New Key("A", wVk.VK_A), _
New Key("S", wVk.VK_S), _
New Key("D", wVk.VK_D), _
New Key("F", wVk.VK_F), _
New Key("G", wVk.VK_G), _
New Key("H", wVk.VK_H), _
New Key("J", wVk.VK_J), _
New Key("K", wVk.VK_K), _
New Key("L", wVk.VK_L), _
New Key(";", wVk.VK_OEM_PLUS), _
New Key(":", wVk.VK_OEM_1), _
New Key("]“, wVk.VK_OEM_6), _
New Key(“4″, wVk.VK_NUMPAD4), _
New Key(“5″, wVk.VK_NUMPAD5), _
New Key(“6″, wVk.VK_NUMPAD6), _
New Key(“Shift”, wVk.VK_LSHIFT), _
New Key(“Z”, wVk.VK_Z), _
New Key(“X”, wVk.VK_X), _
New Key(“C”, wVk.VK_C), _
New Key(“V”, wVk.VK_V), _
New Key(“B”, wVk.VK_B), _
New Key(“N”, wVk.VK_N), _
New Key(“M”, wVk.VK_M), _
New Key(“<”, wVk.VK_OEM_COMMA), _
New Key(“>”, wVk.VK_OEM_PERIOD), _
New Key(“?”, wVk.VK_OEM_2), _
New Key(“_”, wVk.VK_OEM_8), _
New Key(“Shift”, wVk.VK_RSHIFT), _
New Key(“Up”, wVk.VK_UP), _
New Key(“1″, wVk.VK_NUMPAD1), _
New Key(“2″, wVk.VK_NUMPAD2), _
New Key(“3″, wVk.VK_NUMPAD3), _
New Key(“Enter”, wVk.VK_RETURN), _
New Key(“Ctrl”, wVk.VK_LCONTROL), _
New Key(“Win”, wVk.VK_LWIN), _
New Key(“Alt”, wVk.VK_LMENU), _
New Key(“無変換”, wVk.VK_NONCONVERT), _
New Key(“Space”, wVk.VK_SPACE), _
New Key(“変換”, wVk.VK_CONVERT), _
New Key(“カタカナ”, wVk.VK_KANA), _
New Key(“Alt”, wVk.VK_RMENU), _
New Key(“Win”, wVk.VK_RWIN), _
New Key(“mouse”, wVk.VK_APPS), _
New Key(“Ctrl”, wVk.VK_RCONTROL), _
New Key(“Left”, wVk.VK_LEFT), _
New Key(“Down”, wVk.VK_DOWN), _
New Key(“Right”, wVk.VK_RIGHT), _
New Key(“0″, wVk.VK_NUMPAD0), _
New Key(“.”, wVk.VK_DECIMAL)}
For I As Integer = 0 To 113 ’63 plus 16 plus 18 plus 16
Button(I) = New ExButton
With Button(I)
.Dock = DockStyle.Fill
.Margin = New Padding(0)
.Text = Key(I).Text
.Tag = Key(I).Key
If .Text = “” Then .Visible = False ‘表題のないキーは消す
End With
AddHandler Button(I).Click, AddressOf Button_Click
Next
For i As Integer = 0 To 12
TableLayoutPanel1.Controls.Add(Button(i))
Next i
‘TableLayoutPanel1.Controls.Add(Label1, 15, 0)
TableLayoutPanel1.Controls.Add(Button(18), 19, 0)
TableLayoutPanel1.Controls.Add(Button(19), 20, 0)
TableLayoutPanel1.Controls.Add(Button(20), 21, 0)
TableLayoutPanel1.Controls.Add(Button(77), 18, 3)
TableLayoutPanel1.Controls.Add(Button(78), 19, 3)
TableLayoutPanel1.Controls.Add(Button(79), 20, 3)
TableLayoutPanel1.Controls.Add(Button(93), 16, 4)
TableLayoutPanel1.Controls.Add(Button(94), 18, 4)
TableLayoutPanel1.Controls.Add(Button(95), 19, 4)
TableLayoutPanel1.Controls.Add(Button(96), 20, 4)
TableLayoutPanel1.Controls.Add(Button(97), 21, 4)
For i As Integer = 21 To 42
TableLayoutPanel1.Controls.Add(Button(i), i – 21, 1)
Next i
For i As Integer = 43 To 63
TableLayoutPanel1.Controls.Add(Button(i), i – 43, 2)
Next
For i As Integer = 64 To 76
TableLayoutPanel1.Controls.Add(Button(i), i – 64, 3)
Next
For i As Integer = 80 To 92
TableLayoutPanel1.Controls.Add(Button(i), i – 80, 4)
Next
For i As Integer = 98 To 113
TableLayoutPanel1.Controls.Add(Button(i), i – 98, 5)
Next
TableLayoutPanel1.SetColumnSpan(Button(43), 2) ‘Tab key
TableLayoutPanel1.SetColumnSpan(Button(80), 2) ‘LShift key
TableLayoutPanel1.SetColumnSpan(Button(92), 2) ‘RShift key
TableLayoutPanel1.SetRowSpan(Button(56), 2) ‘Left Enter key
TableLayoutPanel1.SetRowSpan(Button(97), 2) ‘Right Enter key
TableLayoutPanel1.SetRowSpan(Button(63), 2) ‘ Left + key
TableLayoutPanel1.SetColumnSpan(Button(64), 2) ‘CapsLock key
TableLayoutPanel1.SetColumnSpan(Button(102), 5) ‘Space key
TableLayoutPanel1.SetColumnSpan(Button(112), 2) ‘Space key
Timer1.Interval = 100
Timer1.Enabled = True
End Sub
Public Sub Button_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim Button As ExButton = DirectCast(sender, ExButton)
Dim Vkey As wVk
Vkey = CType(Button.Tag, wVk)
Button.BackColor = SystemColors.ControlLight
Select Case Vkey
Case wVk.VK_LSHIFT, wVk.VK_RSHIFT
keybd_event(CByte(Vkey), 0, 0, 0)
altrelease()
leftaltrelease()
Button.BackColor = SystemColors.ControlDark
ShiftButton = Button
Exit Sub
Case wVk.VK_LMENU
keybd_event(CByte(Vkey), 0, 0, 0)
Button.BackColor = SystemColors.ControlDark
AltButton = Button
shiftrelease()
altrelease()
Exit Sub
Case wVk.VK_RMENU
keybd_event(CByte(Vkey), 0, KEYEVENTF_EXTENDEDKEY Or 0, 0)
Button.BackColor = SystemColors.ControlDark
AltButton = Button
shiftrelease()
leftaltrelease()
Exit Sub
Case wVk.VK_LCONTROL, wVk.VK_RCONTROL
Button.BackColor = SystemColors.ControlLight
Ctrlbool = Not Ctrlbool
If Ctrlbool = True Then
keybd_event(CByte(Vkey), 0, 0, 0)
Button.BackColor = SystemColors.ControlDark
Else
keybd_event(CByte(Vkey), 0, KEYEVENTF_KEYUP, 0)
Button.BackColor = SystemColors.ControlLight
End If
CtrlButton = Button
shiftrelease()
altrelease()
leftaltrelease()
Exit Sub
End Select
ShiftButton.BackColor = SystemColors.ControlLight
AltButton.BackColor = SystemColors.ControlLight
keybd_event(CByte(Vkey), 0, 0, 0)
keybd_event(CByte(Vkey), 0, KEYEVENTF_KEYUP, 0)
shiftrelease()
altrelease()
leftaltrelease()
End Sub
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Const WM_MOUSEACTIVATE As Integer = &H21
Const MA_NOACTIVATE As Integer = 3
If m.Msg = WM_MOUSEACTIVATE Then
m.Result = New IntPtr(MA_NOACTIVATE)
Return
End If
MyBase.WndProc(m)
End Sub
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Static ThreadProcessId As Integer = GetWindowThreadProcessId(Me.Handle, 0&)
Static OldWindowHandle As IntPtr = IntPtr.Zero
Dim targetWindowHandle As IntPtr = GetForegroundWindow()
If targetWindowHandle = Me.Handle AndAlso OldWindowHandle <> IntPtr.Zero Then
SetForegroundWindow(OldWindowHandle)
Else
If targetWindowHandle <> OldWindowHandle Then
Dim targetThreadProcessId As Integer = GetWindowThreadProcessId(targetWindowHandle, 0&)
AttachThreadInput(ThreadProcessId, targetThreadProcessId, True)
OldWindowHandle = targetWindowHandle
End If
End If
End Sub
End Class
—————————————————————
KeyBoard
Form
———
Option Strict On
Imports System.Runtime.InteropServices
Imports System.Text
Public Class Form1
<DllImport(“user32.dll”)> Private Shared Function GetForegroundWindow() As IntPtr
End Function
<DllImport(“user32.dll”)> Private Shared Function SetForegroundWindow(ByVal hWnd As IntPtr) As Integer
End Function
<DllImport(“user32.dll”)> Private Shared Function GetWindowThreadProcessId(ByVal hwnd As IntPtr, ByRef lpdwProcessId As Integer) As Integer
End Function
<DllImport(“user32.dll”)> Private Shared Function AttachThreadInput(ByVal idAttach As Integer, ByVal idAttachTo As Integer, ByVal fAttach As Boolean) As Boolean
End Function
Dim TableLayoutPanel1 As New ExTableLayoutPanel(22, 6)
Dim WithEvents Timer1 As New Timer
Declare Sub keybd_event Lib “user32″ (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
Dim Ctrlbool As Byte = 0
Dim Shiftbool As Byte = 0
Dim Altbool As Byte = 0
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
keybd_event(CByte(wVk.VK_SHIFT), 0, 2, 0)
keybd_event(CByte(wVk.VK_CONTROL), 0, 2, 0)
keybd_event(CByte(wVk.VK_MENU), 0, 2, 0)
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.TableLayoutPanel1.Dock = DockStyle.Fill
Me.Text = “KeyBoard Design by Le Minh Hai: “
Me.TopMost = True
Me.Controls.Add(TableLayoutPanel1)
Dim Button(113) As Button
Dim Key() As Key = {New Key(“Esc”, wVk.VK_ESCAPE), _
New Key(“F1″, wVk.VK_F1), _
New Key(“F2″, wVk.VK_F2), _
New Key(“F3″, wVk.VK_F3), _
New Key(“F4″, wVk.VK_F4), _
New Key(“F5″, wVk.VK_F5), _
New Key(“F6″, wVk.VK_F6), _
New Key(“F7″, wVk.VK_F7), _
New Key(“F8″, wVk.VK_F8), _
New Key(“F9″, wVk.VK_F9), _
New Key(“F10″, wVk.VK_F10), _
New Key(“F11″, wVk.VK_F11), _
New Key(“F12″, wVk.VK_F12), _
New Key(“”, Nothing), _
New Key(“”, Nothing), _
New Key(“”, Nothing), _
New Key(“”, Nothing), _
New Key(“”, Nothing), _
New Key(“Print”, wVk.VK_SNAPSHOT), _
New Key(“Scroll”, wVk.VK_SCROLL), _
New Key(“Pause”, wVk.VK_PAUSE), _
New Key(“半角”, wVk.VK_OEM_AUTO), _
New Key(“1″, wVk.VK_1), _
New Key(“2″, wVk.VK_2), _
New Key(“3″, wVk.VK_3), _
New Key(“4″, wVk.VK_4), _
New Key(“5″, wVk.VK_5), _
New Key(“6″, wVk.VK_6), _
New Key(“7″, wVk.VK_7), _
New Key(“8″, wVk.VK_8), _
New Key(“9″, wVk.VK_9), _
New Key(“0″, wVk.VK_0), _
New Key(“-”, wVk.VK_OEM_MINUS), _
New Key(“^”, wVk.VK_OEM_7), _
New Key(“\”, wVk.VK_OEM_5), _
New Key(“<-”, wVk.VK_BACK), _
New Key(“Insert”, wVk.VK_INSERT), _
New Key(“Home”, wVk.VK_HOME), _
New Key(“PageUp”, wVk.VK_PRIOR), _
New Key(“NumLock”, wVk.VK_NUMLOCK), _
New Key(“/”, wVk.VK_DEVIDE), _
New Key(“*”, wVk.VK_MULTIPLY), _
New Key(“-”, wVk.VK_SUBTRACT), _
New Key(“Tab”, wVk.VK_TAB), _
New Key(“Q”, wVk.VK_Q), _
New Key(“W”, wVk.VK_W), _
New Key(“E”, wVk.VK_E), _
New Key(“R”, wVk.VK_R), _
New Key(“T”, wVk.VK_T), _
New Key(“Y”, wVk.VK_Y), _
New Key(“U”, wVk.VK_U), _
New Key(“I”, wVk.VK_I), _
New Key(“O”, wVk.VK_O), _
New Key(“P”, wVk.VK_P), _
New Key(“@”, wVk.VK_OEM_3), _
New Key(“[", wVk.VK_OEM_4), _
New Key(ChrW(&H21B5), wVk.VK_RETURN), _
New Key("Delete", wVk.VK_DELETE), _
New Key("End", wVk.VK_END), _
New Key("PageDown", wVk.VK_NEXT), _
New Key("7", wVk.VK_NUMPAD7), _
New Key("8", wVk.VK_NUMPAD8), _
New Key("9", wVk.VK_NUMPAD9), _
New Key("+", wVk.VK_ADD), _
New Key("CapsLock", wVk.VK_CAPITAL), _
New Key("A", wVk.VK_A), _
New Key("S", wVk.VK_S), _
New Key("D", wVk.VK_D), _
New Key("F", wVk.VK_F), _
New Key("G", wVk.VK_G), _
New Key("H", wVk.VK_H), _
New Key("J", wVk.VK_J), _
New Key("K", wVk.VK_K), _
New Key("L", wVk.VK_L), _
New Key(";", wVk.VK_OEM_PLUS), _
New Key(":", wVk.VK_OEM_1), _
New Key("]“, wVk.VK_OEM_6), _
New Key(“4″, wVk.VK_NUMPAD4), _
New Key(“5″, wVk.VK_NUMPAD5), _
New Key(“6″, wVk.VK_NUMPAD6), _
New Key(“Shift”, wVk.VK_LSHIFT), _
New Key(“Z”, wVk.VK_Z), _
New Key(“X”, wVk.VK_X), _
New Key(“C”, wVk.VK_C), _
New Key(“V”, wVk.VK_V), _
New Key(“B”, wVk.VK_B), _
New Key(“N”, wVk.VK_N), _
New Key(“M”, wVk.VK_M), _
New Key(“<”, wVk.VK_OEM_COMMA), _
New Key(“>”, wVk.VK_OEM_PERIOD), _
New Key(“?”, wVk.VK_OEM_2), _
New Key(“_”, wVk.VK_OEM_8), _
New Key(“Shift”, wVk.VK_RSHIFT), _
New Key(“Up”, wVk.VK_UP), _
New Key(“1″, wVk.VK_NUMPAD1), _
New Key(“2″, wVk.VK_NUMPAD2), _
New Key(“3″, wVk.VK_NUMPAD3), _
New Key(“Enter”, wVk.VK_RETURN), _
New Key(“Ctrl”, wVk.VK_LCONTROL), _
New Key(“Win”, wVk.VK_LWIN), _
New Key(“Alt”, wVk.VK_LMENU), _
New Key(“無変換”, wVk.VK_NONCONVERT), _
New Key(“Space”, wVk.VK_SPACE), _
New Key(“変換”, wVk.VK_CONVERT), _
New Key(“カタカナ”, wVk.VK_KANA), _
New Key(“Alt”, wVk.VK_RMENU), _
New Key(“Win”, wVk.VK_RWIN), _
New Key(“mouse”, wVk.VK_APPS), _
New Key(“Ctrl”, wVk.VK_RCONTROL), _
New Key(“Left”, wVk.VK_LEFT), _
New Key(“Down”, wVk.VK_DOWN), _
New Key(“Right”, wVk.VK_RIGHT), _
New Key(“0″, wVk.VK_NUMPAD0), _
New Key(“.”, wVk.VK_DECIMAL)}
For I As Integer = 0 To 113 ’63 plus 16 plus 18 plus 16
Button(I) = New ExButton
With Button(I)
.AutoSize = True
.Dock = DockStyle.Fill
.Margin = New Padding(0)
.Text = Key(I).Text
.Tag = Key(I).Key
If .Text = “” Then .Visible = False ‘表題のないキーは消す
End With
AddHandler Button(I).Click, AddressOf Button_Click
Next
For i As Integer = 0 To 12
TableLayoutPanel1.Controls.Add(Button(i))
Next i
‘TableLayoutPanel1.Controls.Add(Label1, 15, 0)
TableLayoutPanel1.Controls.Add(Button(18), 19, 0)
TableLayoutPanel1.Controls.Add(Button(19), 20, 0)
TableLayoutPanel1.Controls.Add(Button(20), 21, 0)
TableLayoutPanel1.Controls.Add(Button(77), 18, 3)
TableLayoutPanel1.Controls.Add(Button(78), 19, 3)
TableLayoutPanel1.Controls.Add(Button(79), 20, 3)
TableLayoutPanel1.Controls.Add(Button(93), 16, 4)
TableLayoutPanel1.Controls.Add(Button(94), 18, 4)
TableLayoutPanel1.Controls.Add(Button(95), 19, 4)
TableLayoutPanel1.Controls.Add(Button(96), 20, 4)
TableLayoutPanel1.Controls.Add(Button(97), 21, 4)
For i As Integer = 21 To 42
TableLayoutPanel1.Controls.Add(Button(i), i – 21, 1)
Next i
For i As Integer = 43 To 63
TableLayoutPanel1.Controls.Add(Button(i), i – 43, 2)
Next
For i As Integer = 64 To 76
TableLayoutPanel1.Controls.Add(Button(i), i – 64, 3)
Next
For i As Integer = 80 To 92
TableLayoutPanel1.Controls.Add(Button(i), i – 80, 4)
Next
For i As Integer = 98 To 113
TableLayoutPanel1.Controls.Add(Button(i), i – 98, 5)
Next
TableLayoutPanel1.SetColumnSpan(Button(43), 2) ‘Tab key
TableLayoutPanel1.SetColumnSpan(Button(80), 2) ‘LShift key
TableLayoutPanel1.SetColumnSpan(Button(92), 2) ‘RShift key
TableLayoutPanel1.SetRowSpan(Button(56), 2) ‘Left Enter key
TableLayoutPanel1.SetRowSpan(Button(97), 2) ‘Right Enter key
TableLayoutPanel1.SetRowSpan(Button(63), 2) ‘ Left + key
TableLayoutPanel1.SetColumnSpan(Button(64), 2) ‘CapsLock key
TableLayoutPanel1.SetColumnSpan(Button(102), 5) ‘Space key
TableLayoutPanel1.SetColumnSpan(Button(112), 2) ‘Space key
Timer1.Interval = 100
Timer1.Enabled = True
End Sub
Public Sub Button_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim Button As ExButton = DirectCast(sender, ExButton)
Select Case CType(Button.Tag, Integer)
Case 160
If Shiftbool = 2 Then
keybd_event(CByte(wVk.VK_LSHIFT), 0, 2, 0)
Shiftbool = 0
Button.BackColor = SystemColors.ControlLight
Exit Sub
Else
keybd_event(CByte(wVk.VK_LSHIFT), 0, 0, 0)
Shiftbool = 2
Button.BackColor = Color.YellowGreen
Exit Sub
End If
Case 161
If Shiftbool = 2 Then
keybd_event(CByte(wVk.VK_RSHIFT), 0, 2, 0)
Shiftbool = 0
Button.BackColor = SystemColors.ControlLight
Exit Sub
Else
keybd_event(CByte(wVk.VK_RSHIFT), 0, 0, 0)
Shiftbool = 2
Button.BackColor = Color.YellowGreen
Exit Sub
End If
Case 162
If Ctrlbool = 2 Then
keybd_event(CByte(wVk.VK_LCONTROL), 0, 2, 0)
Ctrlbool = 0
Button.BackColor = SystemColors.ControlLight
Exit Sub
Else
keybd_event(CByte(wVk.VK_LCONTROL), 0, 0, 0)
Ctrlbool = 2
Button.BackColor = Color.YellowGreen
Exit Sub
End If
Case 163
If Ctrlbool = 2 Then
keybd_event(CByte(wVk.VK_RCONTROL), 0, 2, 0)
Ctrlbool = 0
Button.BackColor = SystemColors.ControlLight
Exit Sub
Else
keybd_event(CByte(wVk.VK_RCONTROL), 0, 0, 0)
Ctrlbool = 2
Button.BackColor = Color.YellowGreen
Exit Sub
End If
Case 164
If Altbool = 2 Then
keybd_event(CByte(wVk.VK_LMENU), 0, 2, 0)
Altbool = 0
Button.BackColor = SystemColors.ControlLight
Exit Sub
Else
keybd_event(CByte(wVk.VK_LMENU), 0, 0, 0)
Altbool = 2
Button.BackColor = Color.YellowGreen
Exit Sub
End If
Case 165
If Altbool = 2 Then
keybd_event(CByte(wVk.VK_RMENU), 0, 2, 0)
Altbool = 0
Button.BackColor = SystemColors.ControlLight
Exit Sub
Else
keybd_event(CByte(wVk.VK_RMENU), 0, 0, 0)
Altbool = 2
Button.BackColor = Color.YellowGreen
Exit Sub
End If
End Select
Select Case Button.Tag.GetType.Name
Case GetType(wVk).Name
SendKeys.SendInput(CType(Button.Tag, wVk))
Case GetType(String).Name
My.Computer.Keyboard.SendKeys(CType(Button.Tag, String))
End Select
End Sub
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Const WM_MOUSEACTIVATE As Integer = &H21
Const MA_NOACTIVATE As Integer = 3
If m.Msg = WM_MOUSEACTIVATE Then
m.Result = New IntPtr(MA_NOACTIVATE)
Return
End If
MyBase.WndProc(m)
End Sub
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Static ThreadProcessId As Integer = GetWindowThreadProcessId(Me.Handle, 0&)
Static OldWindowHandle As IntPtr = IntPtr.Zero
Dim targetWindowHandle As IntPtr = GetForegroundWindow()
If targetWindowHandle = Me.Handle AndAlso OldWindowHandle <> IntPtr.Zero Then
SetForegroundWindow(OldWindowHandle)
Else
If targetWindowHandle <> OldWindowHandle Then
Dim targetThreadProcessId As Integer = GetWindowThreadProcessId(targetWindowHandle, 0&)
AttachThreadInput(ThreadProcessId, targetThreadProcessId, True)
OldWindowHandle = targetWindowHandle
End If
End If
End Sub
End Class
——————-
module KeySend
Option Strict Off
Imports System.Runtime.InteropServices
Imports System.Text
Public Module SendKeys
Private Shiftbool As Boolean = False
Private Enum dwFlags As Integer
KEYEVENTF_EXTENDEDKEY = &H1
KEYEVENTF_KEYUP = &H2
KEYEVENTF_SCANCODE = &H8
KEYEVENTF_UNICODE = &H4
End Enum
Private Enum type As Integer
INPUT_MOUSE = 0
INPUT_KEYBOARD = 1
INPUT_HARDWARE = 2
End Enum
<DllImport(“user32.dll”)> _
Private Function SendInput( _
ByVal nInputs As Integer, _
ByRef pInputs As INPUT, _
ByVal cbSize As Integer) _
As Integer
End Function
<DllImport(“user32.dll”)> _
Private Function GetMessageExtraInfo() _
As IntPtr
End Function
<DllImport(“user32.dll”)> _
Private Function MapVirtualKey( _
ByVal uCode As Integer, _
ByVal uMapType As Integer) _
As Integer
End Function
Public Sub SendInput(ByVal VirtualKeyCode As wVk)
SendInput(VirtualKeyCode, 0)
SendInput(VirtualKeyCode, dwFlags.KEYEVENTF_KEYUP)
End Sub
Private Sub SendInput(ByVal VirtualKeyCode As wVk, ByVal Flag As dwFlags)
Dim inputevents As New INPUT
inputevents.type = type.INPUT_KEYBOARD
inputevents.ki.wVk = VirtualKeyCode
inputevents.ki.wScan = CShort(MapVirtualKey(CInt(VirtualKeyCode), 0))
inputevents.ki.dwFlags = ExtendedKeyFlagW(VirtualKeyCode) Or Flag
inputevents.ki.time = 0
inputevents.ki.dwExtraInfo = GetMessageExtraInfo()
SendInput(1, inputevents, Marshal.SizeOf(inputevents))
End Sub
Private Function CtrShiftFlagW(ByVal key As wVk) As dwFlags
Dim Flag As dwFlags = 0
Select Case key
Case wVk.VK_LCONTROL, wVk.VK_RCONTROL, wVk.VK_LEFT, wVk.VK_RSHIFT
Flag = dwFlags.KEYEVENTF_KEYUP
End Select
Return Flag
End Function
Private Function ExtendedKeyFlagW(ByVal Key As wVk) As dwFlags
Dim Flag As dwFlags = 0
Select Case Key
Case wVk.VK_CANCEL, wVk.VK_PRIOR, wVk.VK_NEXT, wVk.VK_END, wVk.VK_HOME, _
wVk.VK_LEFT, wVk.VK_UP, wVk.VK_RIGHT, wVk.VK_DOWN, _
wVk.VK_SNAPSHOT, wVk.VK_INSERT, wVk.VK_DELETE, _
wVk.VK_DEVIDE, wVk.VK_NUMLOCK, wVk.VK_RSHIFT, wVk.VK_RCONTROL, wVk.VK_RMENU
Flag = dwFlags.KEYEVENTF_EXTENDEDKEY
End Select
Return Flag
End Function
<StructLayout(LayoutKind.Explicit)> _
Private Structure INPUT
<FieldOffset(0)> Dim type As Integer
<FieldOffset(4)> Dim mi As MOUSEINPUT
<FieldOffset(4)> Dim ki As KEYBDINPUT
<FieldOffset(4)> Dim hi As HARDWAREINPUT
End Structure
<StructLayout(LayoutKind.Explicit)> _
Private Structure MOUSEINPUT
<FieldOffset(0)> Public dx As Integer
<FieldOffset(4)> Public dy As Integer
<FieldOffset(8)> Public mouseData As Integer
<FieldOffset(12)> Public dwFlags As Integer
<FieldOffset(16)> Public time As Integer
<FieldOffset(20)> Public dwExtraInfo As IntPtr
End Structure
<StructLayout(LayoutKind.Explicit)> _
Private Structure KEYBDINPUT
<FieldOffset(0)> Public wVk As wVk
<FieldOffset(2)> Public wScan As Short
<FieldOffset(4)> Public dwFlags As dwFlags
<FieldOffset(8)> Public time As Integer
<FieldOffset(12)> Public dwExtraInfo As IntPtr
End Structure
<StructLayout(LayoutKind.Explicit)> _
Private Structure HARDWAREINPUT
<FieldOffset(0)> Public uMsg As Integer
<FieldOffset(4)> Public wParamL As Short
<FieldOffset(6)> Public wParamH As Short
End Structure
Public Enum wVk As Short
VK_CANCEL = &H3 ‘BREAK(Control+Pause) key(ExtendedKey)
VK_BACK = &H8 ‘BACKSPACE key
VK_TAB = &H9 ‘TAB key
VK_CLEAR = &HC
VK_RETURN = &HD ‘ENTER key
VK_SHIFT = &H10 ‘SHIFT key
VK_CONTROL = &H11 ‘CTRL key
VK_MENU = &H12 ‘ALT key
VK_PAUSE = &H13 ‘PAUSE key
VK_CAPITAL = &H14 ‘CAPS LOCK key
VK_KANA = &H15 ‘IME かな mode
VK_JUNJA = &H17
VK_FINAL = &H18
VK_KANJI = &H19 ‘IME 漢字 mode
VK_ESCAPE = &H1B ‘ESC key
VK_CONVERT = &H1C ‘IME 変換 key
VK_NONCONVERT = &H1D ‘IME 無変換 key
VK_ACCEPT = &H1E
VK_MODECHANGE = &H1F
VK_SPACE = &H20 ‘SPACEBAR
VK_PRIOR = &H21 ‘PAGE UP key(ExtendedKey)
VK_NEXT = &H22 ‘PAGE DOWN key(ExtendedKey)
VK_END = &H23 ‘END key(ExtendedKey)
VK_HOME = &H24 ‘HOME key(ExtendedKey)
VK_LEFT = &H25 ‘← key(ExtendedKey)
VK_UP = &H26 ‘↑ key(ExtendedKey)
VK_RIGHT = &H27 ‘→ key(ExtendedKey)
VK_DOWN = &H28 ‘↓ key(ExtendedKey)
VK_SELECT = &H29
VK_PRINT = &H2A
VK_EXECUTE = &H2B
VK_SNAPSHOT = &H2C ‘PRINT SCREEN key(ExtendedKey)
VK_INSERT = &H2D ‘INS key(ExtendedKey)
VK_DELETE = &H2E ‘DEL key(ExtendedKey)
VK_HELP = &H2F
VK_0 = &H30 ’0 key
VK_1 = &H31 ’1 key
VK_2 = &H32 ’2 key
VK_3 = &H33 ’3 key
VK_4 = &H34 ’4 key
VK_5 = &H35 ’5 key
VK_6 = &H36 ’6 key
VK_7 = &H37 ’7 key
VK_8 = &H38 ’8 key
VK_9 = &H39 ’9 key
VK_A = &H41 ‘A key
VK_B = &H42 ‘B key
VK_C = &H43 ‘C key
VK_D = &H44 ‘D key
VK_E = &H45 ‘E key
VK_F = &H46 ‘F key
VK_G = &H47 ‘G key
VK_H = &H48 ‘H key
VK_I = &H49 ‘I key
VK_J = &H4A ‘J key
VK_K = &H4B ‘K key
VK_L = &H4C ‘L key
VK_M = &H4D ‘M key
VK_N = &H4E ‘N key
VK_O = &H4F ‘O key
VK_P = &H50 ‘P key
VK_Q = &H51 ‘Q key
VK_R = &H52 ‘R key
VK_S = &H53 ‘S key
VK_T = &H54 ‘T key
VK_U = &H55 ‘U key
VK_V = &H56 ‘V key
VK_W = &H57 ‘W key
VK_X = &H58 ‘X key
VK_Y = &H59 ‘Y key
VK_Z = &H5A ‘Z key
VK_LWIN = &H5B ‘Left Windows key
VK_RWIN = &H5C ‘Right Windows key
VK_APPS = &H5D ‘ Applications key
VK_NUMPAD0 = &H60 ‘Numeric keypad 0 key
VK_NUMPAD1 = &H61 ‘Numeric keypad 1 key
VK_NUMPAD2 = &H62 ‘Numeric keypad 2 key
VK_NUMPAD3 = &H63 ‘Numeric keypad 3 key
VK_NUMPAD4 = &H64 ‘Numeric keypad 4 key
VK_NUMPAD5 = &H65 ‘Numeric keypad 5 key
VK_NUMPAD6 = &H66 ‘Numeric keypad 6 key
VK_NUMPAD7 = &H67 ‘Numeric keypad 7 key
VK_NUMPAD8 = &H68 ‘Numeric keypad 8 key
VK_NUMPAD9 = &H69 ‘Numeric keypad 9 key
VK_MULTIPLY = &H6A ‘* key
VK_ADD = &H6B ‘+ key
VK_SEPERATOR = &H6C ‘
VK_SUBTRACT = &H6D ‘- key
VK_DECIMAL = &H6E ‘テンキーの . key
VK_DEVIDE = &H6F ‘/ key(ExtendedKey)
VK_F1 = &H70 ‘F1 key
VK_F2 = &H71 ‘F2 key
VK_F3 = &H72 ‘F3 key
VK_F4 = &H73 ‘F4 key
VK_F5 = &H74 ‘F5 key
VK_F6 = &H75 ‘F6 key
VK_F7 = &H76 ‘F7 key
VK_F8 = &H77 ‘F8 key
VK_F9 = &H78 ‘F9 key
VK_F10 = &H79 ‘F10 key
VK_F11 = &H7A ‘F11 key
VK_F12 = &H7B ‘F12 key
VK_F13 = &H7C ‘F13 key
VK_F14 = &H7D ‘F14 key
VK_F15 = &H7E ‘F15 key
VK_F16 = &H7F ‘F16 key
VK_F17 = &H80 ‘F17 key
VK_F18 = &H81 ‘F18 key
VK_F19 = &H82 ‘F19 key
VK_F20 = &H83 ‘F20 key
VK_F21 = &H84 ‘F21 key
VK_F22 = &H85 ‘F22 key
VK_F23 = &H86 ‘F23 key
VK_F24 = &H87 ‘F24 key
VK_NUMLOCK = &H90 ‘NUM LOCK key(ExtendedKey)
VK_SCROLL = &H91 ‘SCROLL LOCK key
VK_LSHIFT = &HA0 ‘Left SHIFT key
VK_RSHIFT = &HA1 ‘ Right SHIFT key(ExtendedKey)
VK_LCONTROL = &HA2 ‘Left CONTROL key
VK_RCONTROL = &HA3 ‘Right CONTROL key(ExtendedKey)
VK_LMENU = &HA4 ‘Left MENU key
VK_RMENU = &HA5 ‘Right MENU key(ExtendedKey)
VK_OEM_1 = &HBA ‘: * key
VK_OEM_PLUS = &HBB ‘; + key
VK_OEM_COMMA = &HBC ‘, < key
VK_OEM_MINUS = &HBD ‘- = key
VK_OEM_PERIOD = &HBE ‘. > key
VK_OEM_2 = &HBF ‘/ ? key
VK_OEM_3 = &HC0 ‘@ ` key
VK_OEM_4 = &HDB ‘[ { key
VK_OEM_5 = &HDC '\ | key
VK_OEM_6 = &HDD '] } key
VK_OEM_7 = &HDE ‘^ ~ key
VK_OEM_8 = &HDF
VK_PROCESSKEY = &HE5
VK_OEM_ATTN = &HF0 ‘英数
VK_OEM_102 = &HE2 ‘\ _ key
VK_OEM_COPY = &HF2 ‘カタカナひらがな
VK_OEM_AUTO = &HF3 ‘全角/半角
VK_OEM_ENLW = &HF4 ‘全角/半角
VK_OEM_BACKTAB = &HF5 ‘ローマ字
VK_PACKET = &HE7
VK_ATTN = &HF6
VK_CRSEL = &HF7
VK_EXSEL = &HF8
VK_EREOF = &HF9
VK_PLAY = &HFA
VK_ZOOM = &HFB
VK_NONAME = &HFC
VK_PA1 = &HFD
VK_OEM_CLEAR = &HFE
End Enum
End Module
Public Class Key
Private _Text As String
Private _Key As Object
Sub New(ByVal Text As String, ByVal Key As Object)
_Text = Text
_Key = Key
End Sub
ReadOnly Property Text() As String
Get
Return _Text
End Get
End Property
ReadOnly Property Key() As Object
Get
Return _Key
End Get
End Property
End Class
Public Class ExTableLayoutPanel
Inherits TableLayoutPanel
Sub New()
MyBase.New()
SetStyle(ControlStyles.OptimizedDoubleBuffer, True)
SetStyle(ControlStyles.AllPaintingInWmPaint, True)
End Sub
Sub New(ByVal ColumnCountValue As Integer, ByVal RowCountValue As Integer)
Me.new()
ColumnCount = ColumnCountValue
RowCount = RowCountValue
End Sub
Shadows Property RowCount() As Integer
Get
Return MyBase.RowCount
End Get
Set(ByVal value As Integer)
MyBase.RowCount = value
Me.RowStyles.Clear()
For I As Integer = 0 To value – 1
Me.RowStyles.Add(New RowStyle(SizeType.Percent, 100))
Next
End Set
End Property
Shadows Property ColumnCount() As Integer
Get
Return MyBase.ColumnCount
End Get
Set(ByVal value As Integer)
MyBase.ColumnCount = value
Me.ColumnStyles.Clear()
For I As Integer = 0 To value – 1
Me.ColumnStyles.Add(New ColumnStyle(SizeType.Percent, 100))
Next
End Set
End Property
End Class
Public Class ExButton
Inherits System.Windows.Forms.Button
Sub New()
SetStyle(ControlStyles.Selectable, False)
End Sub
Private Function PixelsToPoints(ByVal Pixels As Single, ByVal fVertical As Boolean) As Single
Dim g As Graphics = Me.CreateGraphics
Dim DPI As Single = CSng(IIf(fVertical, g.DpiY, g.DpiX))
g.Dispose()
Return (Pixels * 72) / DPI
End Function
End Class
——————–
Button not focus
Class ExButton
Inherits Button
Sub New()
MyBase.New()
Me.SetStyle(ControlStyles.Selectable, False)
End Sub
End Clas
5日-8月
適する : thích hợp
この本は子どもが読むのに適しない
適する能力が十分でない
21世紀における宇宙活動の拡大に適する
手首 : cổ tay
手首の脈拍が減弱化するか消失するかを決定する
2. に基づいて
使い方: 名詞+にもとづいて
意味: をもとにして、を根拠にして
この小説は実際にあった事件にもとづいて書かれた。
確かな証拠にもとづき、警察はかれを犯人と断定した。
ある小説にもとづき、4月からサッカ一部が新しく作られる
1. にわたって
使い方: 名詞+にわたって
意味: ~の全体に Trong toàn bộ …
今度の台風は東日本の関東地方全域にわたって被害が及ぼした。
会長の決定については、全組織にわったてメンバーの不満が広まった。
数年間にわたって彼はボランティアを続けた熱心が変わらない。
1ヶ月にわたって入院していたが昨日、やっと退院出来た
半年にわたって日中努力の発掘調査もおわりに近づいた
10年超にわたって研究されている
1世紀にわたって