2011-01-31 8 views
5

私は何とかMac OS Xに移植したいアプリケーション(wpf-MonoはこれをMac用に翻訳しますか?)を書いています。このアプリケーションではuser32.dllマウスクリック(このようなもの)を実行するために:Monoを使用してC#でマウスをクリックする

[DllImport("user32.dll")] 
    static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo); 
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); 
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); 

を私はモノが複数のプラットフォーム用のアプリケーションを作成するために有用である聞いたことがある - 私は、Macと私のコード互換性を持たせるためにこれを使用することができます方法はありますか?

もしそうでなければ、私はuser32.dllに相当するMacを使用してマウスクリックを呼び出すことができますか?また、WindowsやMac OSで実行するプログラムを実行するコードを選択する方法を検出する方法はありますか?

+0

、あなたのアプリケーションで何かに対して、または別のアプリケーション –

+0

に対してマウスクリックを生成しようとしているがあり - 私のアプリは実行中に最小化されます。 – Jack

+0

MonoはWPFと互換性がありません。 WinFormsを使用する必要があります。私はuser32.dllに相当するMacを検索するのに多くの時間を費やしていますが、mouse_eventの 'managed'バージョンを見つけることができませんでした。 –

答えて

0

MonoはWPFをサポートしておらず、現在、これをサポートする予定はありません。私は週末にこれを調べました。

GUIアプリケーションでmonoを使用する場合は、Monoで実装されているので代わりにWinFormsを使用することをお勧めします。また、あなたは、Win32ネイティブ関数を呼び出しているhttp://mono-project.com/Compatibility

+0

これは質問に答えません。 WPFアプリケーションに移植できるかどうかではなく、OS XでMonoを使用してマウスクリックをシミュレートする同等の方法があるかどうかを尋ねています。 –

1

Monoは現在、WPFをサポートする予定はありません。Linkを参照してください。
Silverlightの使用方法については、このSO questionを参照してください.Macintosh上でMicrosoftによってサポートされているため、Silverlightを使用して調べることができます。

1

- - これらは、Mac上でサポートされていない

は、ここでモノの完全なリストは、機能を実装しています。最善の策は、クロスプラットフォームの.NET厳密なコードを使用することです。

+0

マウスクリックを実行するために使用できる.NET厳密なコードは何ですか?私は前にそれを調べましたが、user32.dllを使用せずにそれを行う方法を見つけることができませんでした... – Jack

+0

これは、システムに結びつけられた機能です.Windowsで直接APIを呼び出す必要があります。 。 Mac(http://stackoverflow.com/questions/1483657/performing-a-double-click-using-cgeventcreatemouseevent)にも同様の機能が用意されていますが、Monoで使用できるかどうかはわかりません。 –

0

あなたがAppleのCGのAPIを見て試すことができ、機能は私が別のアプリケーションでクリックしようとしているCGEventCreateMouseEvent

関連する問題