2015-09-24 33 views
11

Synaptics SDKを使用して、特にSYNCTRLLibのメソッドを使用して、Synaptics Touchpadのデバイスハンドルを取得しようとしています。 ただし、SYNCTRLメソッドはそれを見つけられず、-1を返しました。Synaptics SDKでデバイスが見つかりません

Syn.cs:私はあなたがSynapticsのSDKのC#ラッパーを使用していることがわかり

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

SDKはどこにありますか?あなたがどこかでオンラインにすることができれば、それは惑星の顔から消えてしまったようだ。どこにも見つけられない。 – Casper

答えて

3

。 CPPコードはあなたにとって些細なことではないかもしれませんが、Samples/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); 
    } 

、あなたがのdllを登録していることを確認してください。 ReadSynSDK.txtファイルによれば、特定の目的のため

はSDKが設けられたDLL を登録する必要があるかもしれません。これはWindowsのregsvr32 ユーティリティで行うことができます。

関連する問題