Найти - Пользователи
Полная версия: Программа которая делает скриншот рабочего стола
Начало » Python для новичков » Программа которая делает скриншот рабочего стола
1 2
sepoid
Всем добрый вечер!

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

Нашел небольшой кусок кода:

[code python]
import win32gui
import win32ui
import win32con
import win32api

# grab a handle to the main desktop window
hdesktop = win32gui.GetDesktopWindow()

# determine the size of all monitors in pixels
width = win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN)
height = win32api.GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN)
left = win32api.GetSystemMetrics(win32con.SM_XVIRTUALSCREEN)
top = win32api.GetSystemMetrics(win32con.SM_YVIRTUALSCREEN)

# create a device context
desktop_dc = win32gui.GetWindowDC(hdesktop)
img_dc = win32ui.CreateDCFromHandle(desktop_dc)

# create a memory based device context
mem_dc = img_dc.CreateCompatibleDC()

# create a bitmap object
screenshot = win32ui.CreateBitmap()
screenshot.CreateCompatibleBitmap(img_dc, width, height)
mem_dc.SelectObject(screenshot)

# copy the screen into our memory device context
mem_dc.BitBlt((0, 0), (width, height), img_dc, (left, top), win32con.SRCCOPY)

# save the bitmap to a file
screenshot.SaveBitmapFile(mem_dc, 'c:\\WINDOWS\\Temp\\screenshot.bmp')

# free our objects
mem_dc.DeleteDC()
win32gui.DeleteObject(screenshot.GetHandle())
[/code]

Но когда дело доходит до запуска данного кода, я получаю вот такую ошибку:

[code python]Traceback (most recent call last):
File "C:\Users\BaDi\Desktop\py\keylgtst.py", line 1, in <module>
import win32gui
ImportError: No module named 'win32gui'[/code]

Рябата, кто может мне помочь?

Во первых, если кто знает, покажите в каком направлении искать инфу по моему вопросу или может у кого ужеесть исходники таких прог.

Во вторых , кто может объяснить суть ошибки.

Буду очень признателен за ваши ответы.

Спасибо.
JOHN_16
Какой смысл браться за написание программ если вы не знаете основ языка? Никакого смысла в этом нет. Изучите основы и только после этого начинайте пытаться писать программы.
2) этот код использует стороннюю библиотеку, которую нужно установить в вашу систему
sepoid
JOHN_16
Какой смысл браться за написание программ если вы не знаете основ языка? Никакого смысла в этом нет. Изучите основы и только после этого начинайте пытаться писать программы.2) этот код использует стороннюю библиотеку, которую нужно установить в вашу систему
Я на данный момент этим и занимаюсь - изучением языка Python. Просто мне стало интересно как это можно сделать

… Я уже установил PyWin32. Какие модули еще нужно установить?

JOHN_16
ну вот же у Вас в коде написано:
sepoid
import win32gui
import win32ui
import win32con
import win32api
отсюда и смотрите что у вас уже есть, а что надо устанавливать.

Rodegast
Для скриншотов используй PyQt/PySide. Так ты сможешь получить более простую и кроссплатформенную программу.
FishHook
Rodegast
Для скриншотов используй PyQt/PySide.
Зашибись! Чтобы сделать скриншот, нужно в зависимостях иметь Qt!
ampermetr
Rodegast
Для скриншотов используй PyQt/PySide. Так ты сможешь получить более простую и кроссплатформенную программу.
А с помощью какого метода PyQt можно сделать скриншот? А то у меня в программу на PyQt притянута Gtk функция только ради создания скриншотов.
Rodegast
> Зашибись! Чтобы сделать скриншот, нужно в зависимостях иметь Qt!

Ты можешь предложить что-то лучше?

> А с помощью какого метода PyQt можно сделать скриншот?

Первая ссылка в гугле: http://stackoverflow.com/questions/25056754/how-to-grab-a-desktop-screenshot-with-pyqt
FishHook
Rodegast
Ты можешь предложить что-то лучше?
Топикстартер пытается идти путем получше. Уж точно лучше заюзать АПИ ОС, чем тащить в проект большую и толстую графическую библиотеку, которую без бубна еще и хрен заведешь.
Rodegast
> Уж точно лучше заюзать АПИ ОС

Это не кроссплатфоменно.

> которую без бубна еще и хрен заведешь.

Какой ещё бубен? Всё работает “из коробки”.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB