Манипулировать сигналами, посылаемыми на монитор - PullRequest
0 голосов
/ 20 июня 2011

Я экспериментирую с программированием более низкого уровня, о котором я абсолютно ничего не знаю.Я хотел бы захватить ввод на монитор, сохранить его где-то на диске, а затем передать его обратно на экран позже.Хотя я, конечно, знаю, как записывать на диск, мне нужно понять, как манипулировать монитором таким образом.Если кто-нибудь может дать мне несколько указателей / ссылок, я был бы очень благодарен.Я знаю и ruby, и java, но я предполагаю, что ruby, будучи языком такого высокого уровня, не очень подходит для такого рода задач.Я готов взглянуть на любой новый требуемый язык.

Ответы [ 3 ]

1 голос
/ 20 июня 2011

Посмотрите этот ответ , если вы хотите создать фильм из снимков экрана. Однако, если вы хотите захватить полную полосу пропускания монитора 60 Гц (как, например, при захвате воспроизведения фильма), я не думаю, что это возможно только с помощью программного обеспечения, если, возможно, путем изменения драйвера видеокарты. Вы можете купить «карту видеозахвата», которая может напрямую захватывать данные, передаваемые через DVI или аналоговый, для лучшего качества, однако они недешевы.

1 голос
/ 20 июня 2011

Если вы используете систему на основе Unix, возможно, вы захотите изучить пересылку X11 через ssh, вы, вероятно, можете сделать что-то подобное с вашим собственным клиентом.Это все еще довольно высокий уровень, хотя.

1 голос
/ 20 июня 2011

Java также является языком очень высокого уровня, так как он построен на виртуальной машине.Из-за этого низкоуровневое ручное управление такими компонентами, как монитор, возможно только с помощью обходных методов.Однако существует Robot API , который позволяет вам делать некоторые из этих вещей.Робот имеет методы для создания снимков экрана и перемещения мыши, однако он не имеет методов для изменения пикселей на экране.Для этого вам нужно взглянуть на некоторые библиотеки GUI, такие как Swing, SWT и RCP.

Если вы хотите по-настоящему низкоуровневое программирование, вы должны попробовать другой язык, например C или C ++.

...