2015-09-24 7 views
11

मैं सिनैप्टिक्स एसडीके का उपयोग करके सिनैप्टिक्स टचपैड पर डिवाइस हैंडल को पकड़ने का प्रयास कर रहा हूं, विशेष रूप से SYNCTRLLib में विधियों का उपयोग कर। हालांकि, SYNCTRL विधि इसे खोजने में विफल रही, -1 लौट रही है।सिनैप्टिक्स एसडीके डिवाइस नहीं ढूंढ सकता

Syn.cs:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using SYNCOMLib; 
using SYNCTRLLib; 

namespace TP_Test1 
{ 
    class Syn 
    { 
     SynAPICtrl SynTP_API = new SynAPICtrl(); 
     SynDeviceCtrl SynTP_Dev = new SynDeviceCtrl(); 
     SynPacketCtrl SynTP_Pack = new SynPacketCtrl(); 
     int DeviceHandle; 

     //Constructor 
     public Syn() 
     { 
      SynTP_API.Initialize(); 
      SynTP_API.Activate(); 

      //DeviceHandle == -1 ? Can't find device? 
      DeviceHandle = SynTP_API.FindDevice(new SynConnectionType(), new SynDeviceType(), 0); 
      //Below line causing Unhandled Exception 
      SynTP_Dev.Select(DeviceHandle); 
      SynTP_Dev.Activate(); 
      SynTP_Dev.OnPacket += SynTP_Dev_OnPacket; 
     } 

     public void SynTP_Dev_OnPacket() 
     { 
       Console.WriteLine(SynTP_Pack.FingerState); 
       Console.WriteLine(SynTP_Pack.X); 
       Console.WriteLine(SynTP_Pack.Y); 
     } 
    } 
} 

Program.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using SYNCOMLib; 
using SYNCTRLLib; 

namespace TP_Test1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Syn mySyn = new Syn(); 
      mySyn.SynTP_Dev_OnPacket(); 
     } 
    } 
} 
+0

आपको एसडीके कहां मिला? किसी भी मौके पर आप इसे ऑनलाइन कहीं भी डाल सकते हैं, क्योंकि ऐसा लगता है कि यह ग्रह के चेहरे से गायब हो गया है। इसे कहीं भी नहीं मिला। – Casper

उत्तर

3

मैं देख रहा हूँ कि आप Synaptics SDK के लिए सी # रैपर का उपयोग कर रहे हैं। भले ही सीपीपी कोड आपके लिए तुच्छ नहीं हो सकता है, हो सकता है कि आप नमूने/ComTest.cpp फ़ाइल को देखना चाहें। यह उपकरणों, और अधिक विशेष लाइनों 66-76 पर लगाने के लिए आदेश में मौजूद कुछ उदाहरण तर्क होते हैं:

// Find a device, preferentially a TouchPad or Styk. 
    ISynDevice *pDevice = 0; 
    long lHandle = -1; 
    if ((pAPI->FindDevice(SE_ConnectionAny, SE_DeviceTouchPad, &lHandle) && 
     pAPI->FindDevice(SE_ConnectionAny, SE_DeviceStyk, &lHandle) && 
     pAPI->FindDevice(SE_ConnectionAny, SE_DeviceAny, &lHandle)) || 
     pAPI->CreateDevice(lHandle, &pDevice)) 
    { 
    printf("Unable to find a Synaptics Device.\n"); 
    exit(-1); 
    } 

इसके अलावा, सुनिश्चित करें कि आप DLLs पंजीकृत किया गया है। के अनुसार फ़ाइल ReadSynSDK.txt:

कुछ प्रयोजनों के लिए यह DLLs कि SDK के साथ प्रदान की जाती हैं रजिस्टर करने के लिए आवश्यक हो सकता है। यह windows regsvr32 उपयोगिता के साथ किया जा सकता है।

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