2013-02-07 9 views
5

मुझे विंडोज 8 (डेस्कटॉप विनफॉर्म .NET) के तहत किसी प्रोग्राम से टैबटिप कीबोर्ड को बंद करने की आवश्यकता है। मुझे आवश्यकता होने पर इसे खोलने के लिए मिला, विंडोज 8 टच कीबोर्ड प्रदर्शित करने के लिए TabTip.exe चलाएं, लेकिन जब मुझे आवश्यकता हो तो मैं इसे बंद नहीं कर सकता! मैंने प्रक्रिया के साथ प्रक्रिया को मारने की कोशिश की। लेकिन यह काम नहीं करता है, किसी को पता है कि इसे कैसे करना है?डेस्कटॉप के तहत विंडोज 8 टच कीबोर्ड टैबटिप खोलें और बंद करें

सादर जीन क्लाउड

+0

क्या आपको पता चला? मेरे साथ भी वही दिक्कत है। –

+0

कुछ भी नहीं मिला, क्षमा करें। मैं एक WinForm कीबोर्ड विकसित कर रहा हूं जो विंडोज 8 में से एक जैसा है, मैंने माइक्रोसॉफ्ट कीबोर्ड नमूना का इस्तेमाल किया। – jcq

+0

मैंने इसे समझ लिया और यहां अपने स्वयं के प्रश्न का उत्तर दिया http://stackoverflow.com/questions/15148740/how-to-close-textinputpanel –

उत्तर

0

प्रयास करें below- TabTip साथ Osk बदलें

लोक क्लास Form1

Private oskProcess As Process 

Private Sub openButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles openButton.Click 
    If Me.oskProcess Is Nothing OrElse Me.oskProcess.HasExited Then 
     If Me.oskProcess IsNot Nothing AndAlso Me.oskProcess.HasExited Then 
      Me.oskProcess.Close() 
     End If 

     Me.oskProcess = Process.Start("osk") 
    End If 
End Sub 

Private Sub closeButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles closeButton.Click 
    If Me.oskProcess IsNot Nothing Then 
     If Not Me.oskProcess.HasExited Then 
      'CloseMainWindow would generally be preferred but the OSK doesn't respond. 
      Me.oskProcess.Kill() 
     End If 

     Me.oskProcess.Close() 
     Me.oskProcess = Nothing 
    End If 
End Sub 

समाप्ति कक्षा

3

Tabtip.exe खोलता है, तो दो प्रक्रिया spawns फिर से बंद करने से पहले। तो process.kill कमांड काम नहीं करता है क्योंकि मूल प्रक्रिया पहले ही बंद हो चुकी है।

यह सभी खुली प्रक्रियाओं को देखता है और संबंधित टैबटिप को बंद करता है।

For Each pkiller As Process In Process.GetProcesses 
     If String.Compare(pkiller.ProcessName, "tabtip", True) = 0 Then 
      pkiller.Kill() 
     End If 
Next 
0

मैंने ऑन-स्क्रीन कीबोर्ड को नियंत्रित करने के लिए एक अनियंत्रित COM इंटरफ़ेस की खोज की। विवरण के लिए मेरा अन्य उत्तर देखें https://stackoverflow.com/a/40921638/332528

संबंधित मुद्दे