Использование Mono для щелчка мышью в C # - Mac OS - PullRequest
5 голосов
/ 01 февраля 2011

Я написал приложение (wpf - Mono переведет это для Mac?), Которое я хочу каким-то образом перенести на Mac OS X. Это приложение включает использование user32.dll для выполнения щелчка мышью (что-то вроде этого):

[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);

Я слышал, что Mono полезен для создания приложений для нескольких платформ - есть ли способ, которым я могу использовать это для обеспечения совместимости моего кода с Mac?

Есть ли способ, которым я могу вызвать щелчок мыши, используя Mac эквивалент user32.dll?И способ определить, работает ли программа в Windows или Mac OS, чтобы выбрать, какой бит кода запускать?

Ответы [ 4 ]

1 голос
/ 01 февраля 2011

Также вы вызываете встроенную функцию Win32 - они не поддерживаются на Mac. Лучше всего будет использовать кроссплатформенный .NET-строгий код.

1 голос
/ 01 февраля 2011

Mono в настоящее время не планирует поддерживать WPF. См. Ссылка .
. Посмотрите на этот ТАК * вопрос , чтобы узнать, помогает ли это, и вы можете захотеть изучить использование Silverlightтак как он поддерживается Microsoft на Mac.

0 голосов
/ 23 июня 2015

Вы можете попробовать посмотреть на CG API от Apple, там есть функция CGEventCreateMouseEvent

0 голосов
/ 01 февраля 2011

Mono не поддерживает WPF и в настоящее время не планирует в будущем его поддерживать.Я сам посмотрел на это на выходных.

Если вы собираетесь использовать моно в приложениях с графическим интерфейсом, я советую вам использовать вместо этого WinForms, поскольку это реализовано в Mono.

Вот полный списокреализованных функций Mono - http://mono -project.com / Совместимость

...