Автор Тема: Размышления на тему универсального скриншота экрана  (Прочитано 7845 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Коршун [?]

  • Новичок
  • *
  • Сообщений: 52
  • Репутация: 1
  • Пол: Мужской
    • Награды
Как же получить скриншот блокировки экрана??
(нажмите для показа/скрытия)
_ScreenCapture_Capture() тоже не помогает((

Русское сообщество AutoIt


Оффлайн alexnasa [?]

  • Новичок
  • *
  • Сообщений: 45
  • Репутация: 0
    • Награды
Цитировать
функция _ScreenCapture_Capture() берет не все
Мужики, спасибо за ваш труд! Очень пригодилось мне, но, могу ли я вас попросить все же с _ScreenCapture_Capture версию прикинуть, но так, что бы скринило именно активное окно, как это сделано в ваших скриптах. А может  _ScreenCapture_Capture и не умеет так? А ещё- полученный файл- скрин возможно ли подрезать (например правую его сторону на столько-то пиксел отрезать-откадрировать)?

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3407
  • Репутация: 894
    • Награды
  • Версия AutoIt: 3.3.14.0
alexnasa
Цитировать
что бы скринило именно активное окно
Либо передавайте в функцию _ScreenCapture_Capture() координаты активного окна, либо используйте
Код: AutoIt [Выделить]

Оффлайн alexnasa [?]

  • Новичок
  • *
  • Сообщений: 45
  • Репутация: 0
    • Награды
координаты у меня изменчивы.. а взяв пример из хелпа к   _ScreenCapture_CaptureWnd()

Код: AutoIt [Выделить]
#include <ScreenCapture.au3>

_Main()

Func _Main()
    Local $hGUI

    ; Nicaa?o GUI
    $hGUI = GUICreate("Screen Capture", 400, 300)
    GUISetState()

    ; Caoaaouaaao ieii
    _ScreenCapture_CaptureWnd (@MyDocumentsDir & "\GDIPlus_Image.jpg", $hGUI)

EndFunc   ;==>_Main

получил скринфото  пустого окна с заголовком.. Дилетатнт я тот ещё..

Русское сообщество AutoIt

Re: Размышления на тему универсального скриншота экрана
« Ответ #3 Отправлен: Февраль 05, 2016, 12:54:24 »

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3407
  • Репутация: 894
    • Награды
  • Версия AutoIt: 3.3.14.0
alexnasa
В вашем примере окно не успевает нарисоваться. Перед снимком сделайте задержку в 300-500 мс.

Оффлайн alexnasa [?]

  • Новичок
  • *
  • Сообщений: 45
  • Репутация: 0
    • Награды
Код: AutoIt [Выделить]
#include <ScreenCapture.au3>

_Main()

Func _Main()
    Local $hGUI

    ;
    $hGUI = GUICreate("Screen Capture", 400, 300)
    GUISetState()

    ;
    Sleep(9000) ; 9 seconds
    _ScreenCapture_CaptureWnd (@MyDocumentsDir & "\GDIPlus_Image.jpg", $hGUI)

EndFunc   ;==>_Main

сделал.. на 9 сек появляется серое пустое окно

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3407
  • Репутация: 894
    • Награды
  • Версия AutoIt: 3.3.14.0
alexnasa
Цитировать
на 9 сек появляется серое пустое окно
Всё правильно. После чего снимок этого серого пустого окна будет сохранён в папке документов.

Оффлайн alexnasa [?]

  • Новичок
  • *
  • Сообщений: 45
  • Репутация: 0
    • Награды
но мне нужна картинка, а не пустышка..

Русское сообщество AutoIt

Re: Размышления на тему универсального скриншота экрана
« Ответ #7 Отправлен: Февраль 05, 2016, 14:49:23 »

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3407
  • Репутация: 894
    • Награды
  • Версия AutoIt: 3.3.14.0
alexnasa
Цитировать
но мне нужна картинка, а не пустышка
Какое окно создали, такое и сфоткали. При чём тут функция снятия скриншота? :stars:

Нужна картинка - сделайте картинку.
Код: AutoIt [Выделить]
#include <ScreenCapture.au3>

$TempFile = @ScriptDir & "\TestScreenCaptureFile.jpg"
_ScreenCapture_Capture($TempFile, 0, 0, 400, 400)

$hGUI = GUICreate("Screen Capture")
GUICtrlCreatePic($TempFile, 0, 0, 0, 0)
FileDelete($TempFile)
GUISetState()
WinWaitActive($hGUI)
Sleep(100)

_ScreenCapture_CaptureWnd(@ScriptDir & "\ScreenShot.jpg", $hGUI)
ShellExecute(@ScriptDir & "\ScreenShot.jpg")


Оффлайн alexnasa [?]

  • Новичок
  • *
  • Сообщений: 45
  • Репутация: 0
    • Награды
 :laugh: Заработало! (Простите - я дилетант!). Но последнее осталось. При этом нужно, что бы это был снимок не области, а активного в данный момент окна GUI.
« Последнее редактирование: Февраль 08, 2016, 08:48:51 от alexnasa »

Онлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3862
  • Репутация: 955
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
alexnasa

ПредупреждениеЗа нарушение общих правил (пункт В.8):
Цитировать
Так как эта конференция называется "Русское сообщество AutoIt", язык общения на ней - Русский. Названия фирм или программных продуктов, аббревиатуры и т.д. должны быть написаны так, как они пишутся в оригинале, например не следует писать УСБ вместо USB. На форуме крайне не рекомендуется намеренно искажать русский язык и использовать "сетевой жаргон" на подобии "Аффтар выпей йадау!".


С уважением, ваш Глобальный модератор.

Скорблю и помню.




Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3407
  • Репутация: 894
    • Награды
  • Версия AutoIt: 3.3.14.0
alexnasa
Цитировать
активного в данный момент окна
Код: AutoIt [Выделить]
#include <ScreenCapture.au3>
_ScreenCapture_CaptureWnd(@ScriptDir & "\ScreenShot.jpg", WinGetHandle("[active]"))


Оффлайн alexnasa [?]

  • Новичок
  • *
  • Сообщений: 45
  • Репутация: 0
    • Награды
Работает! Спасибо, добрый человек!!!!!!  :IL_AutoIt_1:

Прошу прощения за доп.вопрос! А можно ли "сфотографировать", отдельно взятую, вот эту красную кнопку? День потратил, но у меня так и не вышло..


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3407
  • Репутация: 894
    • Награды
  • Версия AutoIt: 3.3.14.0
alexnasa
Цитировать
эту красную кнопку
Код: AutoIt [Выделить]
_ScreenCapture_CaptureWnd("red-button.png", ControlGetHandle("GOALcity", "", "Button8"))


Оффлайн alexnasa [?]

  • Новичок
  • *
  • Сообщений: 45
  • Репутация: 0
    • Награды
Рррработаееет!!!!! Спасиибоо!!
Код: AutoIt [Выделить]
_ScreenCapture_CaptureWnd(@ScriptDir & "\red-button.png", ControlGetHandle("GOALcity", "", "Button8"))

« Последнее редактирование: Февраль 11, 2016, 12:38:58 от alexnasa »

Русское сообщество AutoIt

Re: Размышления на тему универсального скриншота экрана
« Ответ #14 Отправлен: Февраль 11, 2016, 12:25:23 »