Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 20, 2017 22:34:50

sepoid
Зарегистрирован: 2016-07-24
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Программа которая делает скриншот рабочего стола

Всем добрый вечер!

Вот задался целью написать небольшую программку которая делает скриншот рабочего стола и отсылает этот скрин на емаил или сохраняет в специально для этого созданную папку. На просторах инета к слжалению нашел мало инфы по этой теме, а большинство из того что нашел, уже старо как мир. Изучаю питон 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]

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

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

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

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

Спасибо.

Офлайн

#2 Фев. 20, 2017 23:02:29

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Программа которая делает скриншот рабочего стола

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



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Фев. 20, 2017 23:18:32

sepoid
Зарегистрирован: 2016-07-24
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Программа которая делает скриншот рабочего стола

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

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

Отредактировано sepoid (Фев. 20, 2017 23:22:35)

Офлайн

#4 Фев. 21, 2017 11:04:33

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Программа которая делает скриншот рабочего стола

ну вот же у Вас в коде написано:

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



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Фев. 21, 2017 11:13:53

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2840
Репутация: +  186  -
Профиль   Отправить e-mail  

Программа которая делает скриншот рабочего стола

Для скриншотов используй PyQt/PySide. Так ты сможешь получить более простую и кроссплатформенную программу.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#6 Фев. 21, 2017 11:36:56

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Программа которая делает скриншот рабочего стола

Rodegast
Для скриншотов используй PyQt/PySide.
Зашибись! Чтобы сделать скриншот, нужно в зависимостях иметь Qt!



Офлайн

#7 Фев. 21, 2017 14:30:46

ampermetr
Зарегистрирован: 2016-01-27
Сообщения: 34
Репутация: +  1  -
Профиль   Отправить e-mail  

Программа которая делает скриншот рабочего стола

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

Офлайн

#8 Фев. 21, 2017 16:37:02

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2840
Репутация: +  186  -
Профиль   Отправить e-mail  

Программа которая делает скриншот рабочего стола

> Зашибись! Чтобы сделать скриншот, нужно в зависимостях иметь Qt!

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

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

Первая ссылка в гугле: http://stackoverflow.com/questions/25056754/how-to-grab-a-desktop-screenshot-with-pyqt



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#9 Фев. 21, 2017 16:43:36

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Программа которая делает скриншот рабочего стола

Rodegast
Ты можешь предложить что-то лучше?
Топикстартер пытается идти путем получше. Уж точно лучше заюзать АПИ ОС, чем тащить в проект большую и толстую графическую библиотеку, которую без бубна еще и хрен заведешь.



Офлайн

#10 Фев. 21, 2017 17:03:59

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2840
Репутация: +  186  -
Профиль   Отправить e-mail  

Программа которая делает скриншот рабочего стола

> Уж точно лучше заюзать АПИ ОС

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

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

Какой ещё бубен? Всё работает “из коробки”.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version