2012-01-17 5 views
1

Mono C#を使用していますが、 "input.h"が依存する物理ライブラリを知りたいですか? IveはGoogleを検索しましたが、何も取得していません。Linux input.h(.NETでリンクするライブラリは何ですか)

NOTEアップデート:ここでの目標は、Linuxでキーボードとマウスの入力を得ることです。ですから、質問にはライブラリを入力する必要があります。 "input.h"を使って入力を得るための良いC/C++の例がありますか? C#ので

は、だから私は上記のようなもので、入力されたライブラリと同じことを行う必要があるように::

[DllImport("libX11", EntryPoint = "XOpenDisplay")] 
public static extern IntPtr XOpenDisplay(IntPtr display_name); 

あなたが何かをするだろう、ライブラリにリンクします。以下のような::

[DllImport("libInput ???", EntryPoint = "CreateDevice")] 
public static extern IntPtr CreateDevice(int deviceID, ...); 

何か私がリンクするにはどのようなライブラリを見つけるの後に始めるために、このKeyboard Inputリンクを使用するつもりだった...

+0

入力 'から関数のmanページをお試しください彼らは通常、ライブラリの名前を伝えます。もしそうでなければ、それはおそらくシステムライブラリからのものです(ただし、Linuxのボックスにはありません)。 – zneak

+1

ああ、あなたは 'open'関数を探していますか?これはglibcの 'libc.so'の一部です。 – zneak

+0

実際には、私はLinuxでキーボードとマウスの入力に使用するライブラリ名が必要でした。それはlibc.soだろうか? – zezba9000

答えて

0

これで、X11からすべてのキー入力とマウス入力を取得する方法を理解しました。私はOSXのCocoaで非常に似たようなことをしています。

だから私はそれをやった方法の基本を思って、誰のために、ここ屋に行くとあなたがX11イベントロジックに何かを見た場合、私に知らせ::

// Enable Capture of close box 
var atom = XInternAtom(d, "WM_DELETE_WINDOW", false); 
XSetWMProtocols(d, w, new IntPtr[]{atom}, 1);  

bool run = true; 
while (run) 
{ 
    while (X11.XPending(d) != 0) 
    { 
     X11.XPeekEvent(d, ref e); 

     switch (e.type) 
     { 
      case (X11.Expose): 
       Console.WriteLine("Window Scaled."); 
       break; 

      case (X11.ClientMessage): 
       Console.WriteLine("Window Closed."); 
       run = false; 
       break; 

      case (X11.KeyPress): 
       Console.WriteLine("Key pressed: " + e.KeyEvent.keycode.ToString()); 
       //run = false; 
       break; 

      case (X11.KeyRelease): 
       Console.WriteLine("Key released: " + e.KeyEvent.keycode.ToString()); 
       //run = false; 
       break; 

      case (X11.ButtonPress): 
       Console.WriteLine("MouseButton pressed: " + e.KeyEvent.keycode.ToString()); 
       //run = false; 
       break; 

      case (X11.ButtonRelease): 
       Console.WriteLine("MouseButton released: " + e.KeyEvent.keycode.ToString()); 
       //run = false; 
       break; 
     } 

     X11.XNextEvent(d, ref e); 

     //Console.WriteLine(e.type.ToString()); 
    } 

    Console.WriteLine("Render GL frame here..."); 

    // Cursor loc 
    /*IntPtr w2, w3; 
    int x, y, x2, y2; 
    uint mask; 
    XQueryPointer(d, w, out w2, out w3, out x, out y, out x2, out y2, out mask); 
    Console.WriteLine(string.Format("{0}, {1}", x, y)); 
    Console.WriteLine(string.Format("{0}, {1}", x2, y2));*/ 

    System.Threading.Thread.Sleep(500); 
} 
0

linux/input.h定数や構造体のちょうど束です。自分自身でイベントサブシステムを開いたり、アクセスしたりすることになっているので、後ろにライブラリはありません。

+0

input.hを使ってキーボード入力とマウス入力を行う方法の良い例がありますか? – zezba9000

+0

しかし、私はC#のいずれかを知らない。 –

+0

私はC/C++でもうまくいくので、C#を必要としません。 – zezba9000

関連する問題