Я хочу использовать Mono, чтобы разрешить мою программу на C# (в настоящее время WPF, но изменит ее на Windows Forms или Silverlight, чтобы Mono работал), который в настоящее время работает в Windows, чтобы работать на Mac.Мышь Нажмите в Mac OS и определите, какое приложение для ОС работает в
Я использую родные окна кода для обнаружения при щелчке мыши, а также щелкнуть мышью, например, так:
[DllImport("user32.dll")]
static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
[DllImport("User32.dll")]
public static extern short GetAsyncKeyState(System.Windows.Forms.Keys vKey);
Для того, чтобы это работало на Mac я должен первым быть в состоянии определить, запущена ли программа на Mac или в Windows, а затем запустить соответствующий код для определения того, нажата ли мышь или щелкнуть мышью. Что-то вроде:
if (runningInWindows())
{
// Windows mouse click...
System.Windows.Forms.Cursor.Position = new System.Drawing.Point(X, Y);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
// Or if I want to detect a mouse click...
bool mouseClicked = GetAsyncKeyState(System.Windows.Forms.Keys.LButton) != 0;
}
else
{
// Running on a Mac, so do Mac mouse click...
// Or detect a mouse click on a Mac...
}
По существу у меня есть 3 вопроса:
- Как вы щелкните мышью на Mac? (эквивалент mouse_event)
- Как вы обнаруживаете щелчок мышью на Mac? (эквивалент GetAsyncKeyState)
- Как вы определяете, в какой операционной системе работает ваше приложение?