Форум сайта python.su
0
Всем добрый вечер!
Вот задался целью написать небольшую программку которая делает скриншот рабочего стола и отсылает этот скрин на емаил или сохраняет в специально для этого созданную папку. На просторах инета к слжалению нашел мало инфы по этой теме, а большинство из того что нашел, уже старо как мир. Изучаю питон 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]
Офлайн
221
Какой смысл браться за написание программ если вы не знаете основ языка? Никакого смысла в этом нет. Изучите основы и только после этого начинайте пытаться писать программы.
2) этот код использует стороннюю библиотеку, которую нужно установить в вашу систему
Офлайн
0
JOHN_16Я на данный момент этим и занимаюсь - изучением языка Python. Просто мне стало интересно как это можно сделать
Какой смысл браться за написание программ если вы не знаете основ языка? Никакого смысла в этом нет. Изучите основы и только после этого начинайте пытаться писать программы.2) этот код использует стороннюю библиотеку, которую нужно установить в вашу систему
Отредактировано sepoid (Фев. 20, 2017 23:22:35)
Офлайн
221
ну вот же у Вас в коде написано:
sepoidотсюда и смотрите что у вас уже есть, а что надо устанавливать.
import win32gui
import win32ui
import win32con
import win32api
Офлайн
186
Для скриншотов используй PyQt/PySide. Так ты сможешь получить более простую и кроссплатформенную программу.
Офлайн
568
RodegastЗашибись! Чтобы сделать скриншот, нужно в зависимостях иметь Qt!
Для скриншотов используй PyQt/PySide.
Офлайн
1
RodegastА с помощью какого метода PyQt можно сделать скриншот? А то у меня в программу на PyQt притянута Gtk функция только ради создания скриншотов.
Для скриншотов используй PyQt/PySide. Так ты сможешь получить более простую и кроссплатформенную программу.
Офлайн
186
> Зашибись! Чтобы сделать скриншот, нужно в зависимостях иметь Qt!
Ты можешь предложить что-то лучше?
> А с помощью какого метода PyQt можно сделать скриншот?
Первая ссылка в гугле: http://stackoverflow.com/questions/25056754/how-to-grab-a-desktop-screenshot-with-pyqt
Офлайн
568
RodegastТопикстартер пытается идти путем получше. Уж точно лучше заюзать АПИ ОС, чем тащить в проект большую и толстую графическую библиотеку, которую без бубна еще и хрен заведешь.
Ты можешь предложить что-то лучше?
Офлайн
186
> Уж точно лучше заюзать АПИ ОС
Это не кроссплатфоменно.
> которую без бубна еще и хрен заведешь.
Какой ещё бубен? Всё работает “из коробки”.
Офлайн