2010-10-29 13 views
6

Nie jestem nawet pewien, gdzie zacząć z tym pytaniem ...Jabłko wydarzenia kontrolować Mouse Zdalnie

Chcę móc wysyłać kliknięciem myszy wydarzenia do innego urządzenia, jak gdyby użytkownik nie kliknął ta maszyna.

mogę to zrobić na tej samej maszynie poprzez:

CGEventSourceRef source = CGEventSourceCreate(NULL); 
CGEventType eventType = kCGEventLeftMouseDragged; 
CGPoint mouseCursorPosition; 
mouseCursorPosition.x = point.x; 
mouseCursorPosition.y = point.y; 
CGMouseButton mouseButton = kCGMouseButtonLeft; 

CGEventRef mouseEvent = CGEventCreateMouseEvent (source, 
       eventType, 
       mouseCursorPosition, 
       mouseButton); 
CGEventSetType(mouseEvent, kCGEventLeftMouseDragged); // Fix Apple Bug 
CGEventPost(kCGSessionEventTap, mouseEvent); 
CFRelease(mouseEvent); 

Ale jak mogę wysłać tę imprezę gdzieś indziej? Applescript? Czytałem pewne rzeczy z AppleEvents, które były komunikacją app-app, ale chciałbym po prostu wygenerować zdarzenie systemowe na innym komputerze?

Całkowicie niepewny.

Dzięki,


[EDIT 01.11.10 7: 30a]

Właśnie w celu wyjaśnienia, nie jestem patrząc na ekran udział. Przynajmniej nie sądzę. Mam grupę kilku komputerów Mac połączonych ze sobą, każdy ma 4 monitory. Próbuję użyć tylko jednego urządzenia do komunikacji "kliknięć" z każdym z węzłów. Jeśli więc urządzenie znajduje się w węźle 3, ale urządzenie jest podłączone do węzła0, węzeł0 musi poinformować węzeł 3, że musi zareagować na kliknięcie.

Dzięki,


[Edit 04.11.10 09:32 pm]

Naprawdę? Nikt nie może dać mi konkretny przykład kodu generowania zdarzeń Apple programowo do tworzenia zdarzeń myszy na zdalnych maszynach w C/C++/Objc-C ???

+0

nikt? naprawdę? –

+0

Możesz używać applescript do komunikowania się ze zdalnymi komputerami, to nie tylko aplikacja. Forex: http://hints.macworld.com/article.php?story=20020914091607912 Myślę, że prawdopodobnie chcesz coś ugotować z jabłkami, ale nie wiem dokładnie. – ergosys

Odpowiedz

-1

Będzie to prawdopodobnie obejmować writing a device driver i udawanie myszy.

+0

naprawdę?Nie mogę używać zdarzeń Apple do wysyłania wiadomości do systemu na innym komputerze? –

+2

Możesz, ale chcesz wysłać zdarzenia myszy, to zupełnie co innego. Być może nie potrzebujesz sterownika urządzenia, ale słuchasz aplikacji, która nasłuchuje połączenia, a następnie wykonuje działania, które już znasz. –

0

Podejmuję odpowiedź po wyjęciu z pudełka i sugeruję, aby spróbować Synergy, ponieważ brzmi to, czego szukasz. Jeśli nie, to dzięki otwartemu kodowi kodu źródłowego można się z nim zapoznać.

3

Jak rozumiem, można użyć Distributed Objects do przekazania zdarzeń Apple.

Mogą pracować w sieci za pośrednictwem Bonjour. Możesz serializować lub kodować wydarzenie Apple, przekazać je przez sieć, a następnie uruchomić aplikację pomocniczą na komputerze na drugim końcu, aby odsłuchać, zdekodować zdarzenie i go uruchomić. Możesz po prostu chcieć zakodować współrzędne kliknięcia myszą dla uproszczenia.

Wierzę również książka Marcus Zarra na Core Data ma przykładowy kod dla aplikacji danych Core z systemem za pośrednictwem sieci, który wykorzystuje DO. Możesz być w stanie zobaczyć, co zrobił i zrobić coś podobnego, aby zacząć. Zobacz także this excellent Q&A on DO autorstwa Mike'a Ash.

1

"Zdarzenia systemowe" "application" (tylko proces w rzeczywistości) umożliwia wysyłanie zdarzenia za pomocą AppleScript:

tell application "System Events" 
tell process "Finder" 
click at {10, 10} 
end tell 
end tell