2009-11-14 2 views
1

Я знаю, что это длинный снимок, но мне было интересно, есть ли у Python способ манипулирования экранным буфером. В частности, я хочу, чтобы иметь возможность серых на рабочем столе и выделять мои окна, когда я нажимаю комбинацию клавиш. Это в сфере возможностей?Манипулировать буфер экрана в python

+2

В какой ОС вы хотите это сделать? – sanmai

+2

Вы не достигнете этого, обратившись к «буферу экрана», вам придется работать с API, так как он снабжен PyQt (более общим для всех платформ), .NET с IronPython (Windows), .. Доступ к буферу экрана напрямую - это понятие, которое давно исчезло ;-) – RedGlyph

+0

Я ищу для развертывания приложения в Windows, OSX или Linux. Я полагаю, что Python не обязательно необходим, но это то, с чем я больше всего знаком. – directedition

ответ

2

Из вашего вопроса и последующих комментариев, PyQt будет хорошим выбором, у вас будет общий код для трех платформ.

Вы должны разработать его как графический интерфейс, но, используя библиотечные функции, это также означает, что вам нужно будет переосмыслить то, что вы действительно хотите с точки зрения возможностей графического интерфейса, и таким образом, чтобы соблюдать обычные соглашения с графическим интерфейсом: пользователи, вероятно, не хотите, чтобы ваше приложение изменяло свой любимый фон рабочего стола или вел себя странно.

Например, существует способ для bring your application to the foreground (примеры приведены в ответ на C++, но эквивалентные методы доступны в Python, и код будет очень похож).

Qt Первоначально это C++-платформа, недавно приобретенная Nokia, если вы также знакомы с этим языком, вы должны подумать об этом, прежде чем решать, что выбрать, но в любом случае PyQt не подведет вас, он довольно зрелый и стабильный.

Что касается лицензии, в случае, если это одна из ваших проблем, PyQt является GPL, а также доступна коммерческая лицензия. Другой портирование Qt Python работает с лицензией LGPL, подталкиваемой Nokia после отказа автора PyQt от изменения лицензии: PySide, но она все еще находится в раннем развитии.

Наконец, я должен отметить, что Qt не только GUI рамки для Python, с помощью функции поиска вы найдете другие вопросы, связанные с этой темой на SO, с другими предложениями:

2

Вместо того, чтобы «седеть» на рабочем столе, попробуйте наложить серое полупрозрачное изображение на весь экран, а затем убедитесь, что ваше окно находится поверх этого. Вы можете столкнуться с несколькими незначительными ограничениями; например, я не знаю, с головы до ног, если можно наложить макросменку (и я не уверен, что вы захотите).

Смежные вопросы