|  | 
 
|  
 สำหรับ แป้นคีย์บอร์ดเสมือน (Virtual Keyboard) ตัวนี้จะเป็น Windows Tablet PC หรือ คีย์บอร์ดเพื่อใช้งานกับจอสกรีนที่เป็นแบบสัมผัส (Touch Screen) น่ะครับ ซึ่งเราจะเรียกใช้งานผ่านไปยัง C:\Program Files\Common Files\microsoft shared\ink\TabTip.exe ซึ่งไม่ใช่ OSK.EXE หรือ On Screen Keyboard ... โค้ดชุดนี้จะเป็นพื้นฐานในการเรียกใช้ให้แสดง หรือซ่อน และกำจัดโปรเซส (Kill) มันออกไปจากระบบ ด้วยการใช้คำสั่งผ่าน WinAPI 32 หรือ Windows Application Programming Interface ...
 
 การตั้งค่า Touch Keyboard ... เราสามารถกำหนดค่าใน Registry หรือเขียนโค้ดเข้าไปควบคุมให้มันแสดงผลตามที่เราต้องการก็ได้
 
  
 เมื่อ TabTib.exe ถูกเรียกใช้งานขึ้นมา ซึ่งเวลาที่เราจบโปรแกรม ก็ต้องทำการกำจัดโปรเซสของมันทิ้งไป ...
 
  
 มาดูโค้ดฉบับเต็มกันเถอะ ...
 
 คัดลอกไปที่คลิปบอร์ดImports System.Runtime.InteropServices
Public Class frmOnScreenKeyBoard
    Const WM_SYSCOMMAND As Int32 = 274
    Const SC_CLOSE As UInt32 = 61536
    '// WinAPI32 From VB6. (API = Application Programming Interface)
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    Private Shared Function PostMessage( _
        ByVal hWnd As IntPtr, _
        ByVal Msg As UInteger, _
        ByVal wParam As IntPtr, _
        ByVal lParam As IntPtr _
        ) As Boolean
    End Function
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    Private Shared Function FindWindow( _
        ByVal lpClassName As String, _
        ByVal lpWindowName As String _
        ) As IntPtr
    End Function
    '// Instance Name Process
    Private _P As Process
    Private Sub HideKeyboard()
        Dim KeyboardWnd As IntPtr = FindWindow("IPTip_Main_Window", Nothing)
        PostMessage(KeyboardWnd.ToInt32(), WM_SYSCOMMAND, SC_CLOSE, 0)
    End Sub
    Private Sub btnShowKeyboard_Click(sender As Object, e As EventArgs) Handles btnShowKeyboard.Click
        If _P Is Nothing OrElse _P.HasExited Then
            If _P IsNot Nothing AndAlso _P.HasExited Then _P.Close()
            '// Sometimes TabTip may be hidden.
            Call KillProcess()
            _P = Process.Start("C:\Program Files\Common Files\microsoft shared\ink\TabTip.exe")
            '/ Focus to the textbox
            TextBox1.Focus()
        End If
    End Sub
    Private Sub KillProcess()
        For Each p As Process In Process.GetProcesses
            If String.Compare(p.ProcessName, "TabTip", True) = 0 Then
                p.Kill()
                Exit For
            End If
        Next
    End Sub
    Private Sub btnHideKeyboard_Click(sender As System.Object, e As System.EventArgs) Handles btnHideKeyboard.Click
        Call HideKeyboard()
    End Sub
    Private Sub frmOnScreenKeyBoard_FormClosed(sender As Object, e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        Call HideKeyboard()
        Me.Dispose()
        GC.SuppressFinalize(Me)
        Application.Exit()
    End Sub
End Class
ดาวน์โหลดโค้ดต้นฉบับแบบเต็ม VB.NET (2010) ได้ที่นี่ ...
 
 | 
 
xขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึงคุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน  |