Что нового

Free Shooter - Программа для создания скриншотов

sforce5

Олл фо ЛулзЪ
Сообщения
160
Репутация
41
AutoIt: 3.3.0.0
Версия: 1.9.5

Категория: Графика
Описание: Программа для создания скриншотов

Файлы: EXE, AU3

Скриншот(ы):
freeshooter.png


Free Shooter 1.9.5 (20.01.10)
--------------------------
Добавлено: Поддержка снятия скриншотов с окон Aero
Добавлено: Управление эффектом Aero (из меню Инструменты)
Добавлено: Создание папки скриншотов если её не существует
Исправлено: Ошибка при создании скриншота дочернего окна
Исправлено: Ошибка открытия папки скриншотов в Windows Vista/Seven
Исправлено: Отображение кнопки ОК в диалоге настроек в английской версии Windows
Исправлено: Ошибка переключения на вкладку горячих клавиш

Free Shooter 1.9.4 (09.01.10)
--------------------------
Добавлено: Загрузка скриншотов на ImageShack.us
Добавлено: Поддержка коммандной строки (/fullscreen, /window, /region)
Добавлено: Меню в трей для управления программой
Исправлено: Теперь имя файла настроек равняется имени программы
Исправлено: Небольшие изменения в диалоге настроек
Исправлено: Небольшие изменения в диалоге загрузки на FTP
Исправлено: Теперь не создаются пункты создаваемых режимом окон на панели задач в режиме "Выделенная область" и диалоге загрузки на FTP
Исправлено: Ошибка при получении списка языков
Исправлено: Ошибка при восстановлении окна из трея

Free Shooter 1.9.3 (30.12.09)
--------------------------
Добавлено: Новый формат имени ( screenshoot_001 и т.д. )
Добавлено: В режиме "Выделенная область" выход из режима по клавише Right Mouse и Escape
Исправлено: Новый вид выделения в режиме "Выделенная область"
Исправлено: Ошибка создания пустого изображения (1x1) при выходе из режима "Выделенная область"
Исправлено: Ошибка при открытии папки скриншотов
Исправлено: Небольшие изменения в коде программы

Free Shooter 1.9.2 (25.12.09)
--------------------------
Добавлено: Английская локализация
Добавлено: Вывод более подробной информации о местоположении курсора (в режиме "Выделенная область")
Исправлено: Допереведны непереведённые места
Исправлено: Мерцание главного окна при выходе из настроек

Free Shooter 1.9.1 (20.12.09)
--------------------------
Добавлено: Выгрузка скриншотов на FTP сервер
Добавлено: В "действиях" добавлен новый параметр - "%f" (папка программы)

Free Shooter 1.8 (16.12.09)
--------------------------
Добавлено: Поддержка локализации
Добавлено: При изменении параметров для которых необходим перезапуск выдаётся сообщение о перезапуске (в диалоге Настроек)
Добавлено: В диалоге настроек добавлена ссылка для получения сведений о формате выбранного изображения (Wikipedia)
Добавлено: Выбор режима сохранения (в буфер & файл)
Добавлено: Теперь для каждого режима создания скриншота задаётся своя горячая клавиша
Добавлено: Запоминание последней открытой вкладки в настройках
Исправлено: Имя скриншота со "screenshot" на "screenshoot"
Исправлено: Параметры выбора формата изображения (c "Radio" на "Combo")
Исправлено: Косметические изменения в диалоге "Настройки"
Исправлено: Диалог выбора горячих клавиш
Исправлено: Оптимизирован код сохранения настроек

Free Shooter 1.7 (09.12.09)
--------------------------
Добавлено: Настройка вращения картинки
Добавлено: Настройка действия после создания скриншота
Исправлено: Теперь изменение размера созданого изображения работает во всех режимах
Исправлено: Всплывающая подсказка при выделении (режим сьёмки - выделением)
Исправлено: Заголовок диалога захвата с веб-камеры
Исправлено: Теперь при открытии окна настроек, главное окно недоступно
Исправлено: Небольшое изменение расположения кнопок в настройках (было криво :smile:

Free Shooter 1.6 (04.12.09)
--------------------------
Исправлено: Имя для скриншота с изменением размера
Исправлено: Кнопка "О программе", в главном окне, на кнопку "Настройки"
Исправлено: Поставлен ограничитель на регулятор прозрачности (от 25 до 100)
Исправлено: При регулировке прозрачности теперь также просматривается главное окно
Исправлено: Параметры прозрачность и поверх всех окон применяется без перезапуска
Исправлено: Имя скриншота с веб-камеры теперь также регулируется
Исправлено: Теперь прозрачность можно просматривать внезависимости от галочки "Использовать прозрачность"

Free Shooter 1.5 (03.12.09)
--------------------------
Добавлено: В настройки добавлено включение / отключение опции "Поверх остальных окон"
Добавлено: Настройки программы из главного окна также добавлены в окно настроек
Добавлено: Выбор имени для создаваемого скриншота
Добавлено: Включение / Отключение прозрачности окон программы
Добавлено: Включение / Отключение оформления системы (в GUI программы)
Исправлено: Выравнена кнопка "Скриншот" в главном окне
Исправлено: Переоформлено окно настроек

Free Shooter 1.4 (29.11.09)
--------------------------
Добавлено: Диалог настроек
Добавлено: Выбор формата изображения для сохранения (См. Диалог настроек)
Добавлено: Изменение размера выходного изображения (См. Диалог настроек)
Добавлено: Использование задержек перед созданием скриншота (См. Диалог настроек)
Исправлено: В режиме сьёмки выделенной области захватывалось окно "подсказки" координат мыши
Исправлено: Горячая клавиша "По умолчанию" для создания скриншота на PrintScreen + Ctrl
Исправлено: Изменён диалог Захвата с веб-камеры

Free Shooter 1.3 (15.11.09)
--------------------------
Добавлено: Сообщение если одна копия программы уже запущена
Исправлено: Оптимизирована функция определения окна под мышью
Исправлено: Оптимизирована функция проверки запущенной копии программы (Mutex)

Free Shooter 1.2 (03.11.09)
--------------------------
Добавлено: Снятие скриншота с выделенной области
Добавлено: Захват видео и скриншотов с веб-камеры ( Меню > Инструменты > Захват с веб-камеры )
Добавлено: Пункт меню "Открыть папку скриншотов"
Исправлено: Усовершенствованна оптимизация памяти программы при запуске
Исправлено: Оптимизировано сохранение настроек

Free Shooter 1.1 (31.10.09)
--------------------------
Добавлено: Главное меню для быстрого доступа
Добавлено: Параметр отключения / включения звука
Исправлено: Сброс настроек при открытии окна "Горячие клавиши"
Исправлено: Переписаны некоторые участки кода
Исправлено: Оптимизирован код программы

Free Shooter 1.0 (28.10.09)
--------------------------
Первая публичная версия

Сайт программы: Free Shooter
Автор(ы): [Nuker-Hoax] | (sforce5)
 
Автор
sforce5

sforce5

Олл фо ЛулзЪ
Сообщения
160
Репутация
41
Автор
sforce5

sforce5

Олл фо ЛулзЪ
Сообщения
160
Репутация
41

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Ну вот, достигнут "предел совершенства". Зачем и без того хорошей программе прикручивать опцию, которая там :Censored: не упала? Я имею в виду "Выгрузка скриншотов на FTP сервер". Вспомни, во что превратилась некогда отличная программа - Nero. Хотя, это всего лишь IMHO.

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

В любом случае ставлю 5 звезд за профессионально проделанную работу.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,485
Yashied [?]
"Выгрузка скриншотов на FTP сервер"
Не уверен что для всех будет это полезно и необходимо, но вот функция загрузки скриншотов на сервисы типа imageshack/radikal/tinypic будет весьма востребована.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
CreatoR сказал(а):
...но вот функция загрузки скриншотов на сервисы типа imageshack/radikal/tinypic будет весьма востребована.

Полностью согласен.
 
Автор
sforce5

sforce5

Олл фо ЛулзЪ
Сообщения
160
Репутация
41
CreatoR сказал(а):
Yashied [?]
"Выгрузка скриншотов на FTP сервер"
Не уверен что для всех будет это полезно и необходимо, но вот функция загрузки скриншотов на сервисы типа imageshack/radikal/tinypic будет весьма востребована.

Ну, для кого полезно, для кого бесполезно!

А вот выгрузку на хостинг картинок тоже непомешало бы реализовать, тока как? WebAPI?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Кстати, у тебя "мерцает" основное окно программы после закрытия дочерних, например окна настроек программы. Это происходит потому, что ты используешь WinActivate(). Вот небольшой пример, как я поступаю в этом случае. Может пригодится.

Код:
#Include <GUIConstantsEx.au3>
#Include <WindowsConstants.au3>
#Include <WinAPI.au3>

Opt('MustDeclareVars', 1)

Global $hForm, $Msg, $ButtonChild

$hForm = GUICreate('Parent', 400, 400)
$ButtonChild = GUICtrlCreateButton('Child', 150, 188, 100, 23)

GUISetState()

While 1
	$Msg = GUIGetMsg()
	Switch $Msg
		Case $GUI_EVENT_CLOSE
			ExitLoop
		Case $ButtonChild
			_ChildDlg($hForm)
	EndSwitch
WEnd

Func _ChildDlg($hWnd = 0)

	Local $hChild, $Msg, $ButtonExit
	Local $hFocus = _WinAPI_GetFocus()

	GUISetState(@SW_DISABLE, $hWnd)

	$hChild = GUICreate('Child', 400, 250, -1, -1, BitOR($WS_CAPTION, $WS_POPUP, $WS_SYSMENU), -1, $hWnd)
	$ButtonExit = GUICtrlCreateButton('Exit', 165, 220, 70, 23)

	GUISetState()

	While 1
		$Msg = GUIGetMsg()
		Switch $Msg
			Case $GUI_EVENT_CLOSE, $ButtonExit
				ExitLoop
		EndSwitch
	WEnd

	DllCall('user32.dll', 'int', 'SetActiveWindow', 'hwnd', $hWnd)
	GUIDelete($hChild)
	GUISetState(@SW_ENABLE, $hWnd)
	_WinAPI_SetFocus($hFocus)

EndFunc   ;==>_ChildDlg
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,485
Yashied [?]
Вот небольшой пример, как я поступаю в этом случае
На самом деле всё намного проще - идея в том чтобы воспроизвести последовательность действий, т.е если мы деактивируем одно окно а потом создаём другое как дочернее, то и удалять это окно нужно после активирования родительского...

Код:
#Include <GUIConstantsEx.au3>
#Include <WindowsConstants.au3>
#Include <WinAPI.au3>

Opt('MustDeclareVars', 1)

Global $hForm, $Msg, $ButtonChild

$hForm = GUICreate('Parent', 400, 400)
$ButtonChild = GUICtrlCreateButton('Child', 150, 188, 100, 23)

GUISetState()

While 1
    $Msg = GUIGetMsg()
    Switch $Msg
        Case $GUI_EVENT_CLOSE
            ExitLoop
        Case $ButtonChild
            _ChildDlg($hForm)
    EndSwitch
WEnd

Func _ChildDlg($hWnd = 0)
    Local $hChild, $Msg, $ButtonExit
	
    GUISetState(@SW_DISABLE, $hWnd)
    $hChild = GUICreate('Child', 400, 250, -1, -1, BitOR($WS_CAPTION, $WS_POPUP, $WS_SYSMENU), -1, $hWnd)
    $ButtonExit = GUICtrlCreateButton('Exit', 165, 220, 70, 23)
	
    GUISetState()
	
    While 1
        $Msg = GUIGetMsg()
        Switch $Msg
            Case $GUI_EVENT_CLOSE, $ButtonExit
                ExitLoop
        EndSwitch
    WEnd
	
	GUISetState(@SW_ENABLE, $hWnd)
    GUIDelete($hChild)
EndFunc   ;==>_ChildDlg


P.S
А по поводу улучшений - у меня тоже есть предложение, например при скриншоте выделенной области, было бы полезно выводить более подробную инфу о выделений.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,485
Medic84 [?]
Например координаты выделенного
Да, вот так:

Код:
Func GetRegion()
    Local $aMouse_Pos, $hMask, $hMaster_Mask, $iTemp
    Local $UserDLL = DllOpen("user32.dll")

    $hCross_GUI = GUICreate("", @DesktopWidth, @DesktopHeight - 20, 0, 0, -2147483648, 8)
    WinSetTrans($hCross_GUI, "", 8)
    GUISetState(@SW_SHOW, $hCross_GUI)
    GUISetCursor(3, 1, $hCross_GUI)

    Global $hRectangle_GUI = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, -2147483648, 128 + 8)
    GUISetBkColor(0x000000)

    While Not _IsPressed("01", $UserDLL)
		$grw1 = MouseGetPos()
		
		ToolTip("Положение мыши:" & @LF&@LF & "Ось X = " & $grw1[0] &@LF& "Ось Y = " & $grw1[1] & @LF & @LF & 'Нажмите "Левую кнопку мыши" для начала выделения')
        
		Sleep(10)
		
		If _IsPressed("02", $UserDLL) or _IsPressed("1B", $UserDLL) Then
			GUIDelete($hRectangle_GUI)
			GUIDelete($hCross_GUI)
			DllClose($UserDLL)
			ExitLoop
		EndIf
    WEnd

    $aMouse_Pos = MouseGetPos()
    $pos_x_1 = $aMouse_Pos[0]
    $pos_y_1 = $aMouse_Pos[1]
	
	$sData = "Положение мыши:\n\n"
	$sData &= "Горизонталь (Ось X): Начало = %i, Длина = %i\n"
	$sData &= "Вертикаль (Ось Y): Начало = %i, Высота = %i\n\n"
	$sData &= "Отпустите клавишу мыши для завершения"
	
	While _IsPressed("01", $UserDLL)
		$aMouse_Pos = MouseGetPos()
		$nWidth = $aMouse_Pos[0] - $grw1[0]
		$nHeight = $aMouse_Pos[1] - $grw1[1]
		
		If $aMouse_Pos[0] < $grw1[0] Then $nWidth = $grw1[0] - $aMouse_Pos[0]
		If $aMouse_Pos[1] < $grw1[1] Then $nHeight = $grw1[1] - $aMouse_Pos[1]
		
		ToolTip(StringFormat($sData, $grw1[0], $nWidth, $grw1[1], $nHeight))
		
		$hMaster_Mask = _WinAPI_CreateRectRgn(0, 0, 0, 0)
		$hMask = _WinAPI_CreateRectRgn($pos_x_1,  $aMouse_Pos[1], $aMouse_Pos[0],  $aMouse_Pos[1] + 1)
		_WinAPI_CombineRgn($hMaster_Mask, $hMask, $hMaster_Mask, 2)
		$hMask = _WinAPI_CreateRectRgn($pos_x_1, $pos_y_1, $pos_x_1 + 1, $aMouse_Pos[1])
		_WinAPI_CombineRgn($hMaster_Mask, $hMask, $hMaster_Mask, 2)
		$hMask = _WinAPI_CreateRectRgn($pos_x_1 + 1, $pos_y_1 + 1, $aMouse_Pos[0], $pos_y_1)
		_WinAPI_CombineRgn($hMaster_Mask, $hMask, $hMaster_Mask, 2)
		$hMask = _WinAPI_CreateRectRgn($aMouse_Pos[0], $pos_y_1, $aMouse_Pos[0] + 1,  $aMouse_Pos[1])
		_WinAPI_CombineRgn($hMaster_Mask, $hMask, $hMaster_Mask, 2)
		_WinAPI_SetWindowRgn($hRectangle_GUI, $hMaster_Mask)
		If WinGetState($hRectangle_GUI) < 15 Then GUISetState()
		Sleep(10)
	WEnd

    $pos_x_2 = $aMouse_Pos[0]
    $pos_y_2 = $aMouse_Pos[1]

    If $pos_x_2 < $pos_x_1 Then
        $iTemp = $pos_x_1
        $pos_x_1 = $pos_x_2
        $pos_x_2 = $iTemp
    EndIf
    If $pos_y_2 < $pos_y_1 Then
        $iTemp = $pos_y_1
        $pos_y_1 = $pos_y_2
        $pos_y_2 = $iTemp
    EndIf

    GUIDelete($hRectangle_GUI)
    GUIDelete($hCross_GUI)
    DllClose($UserDLL)
EndFunc
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,485
sforce5 [?]
не могу всё слепить так чтобы было удобно всё
В аттаче поправленные исходники (только основной файл программы), я там также применил мой метод деактивирования окон, без WinAPI, всё намного проще.

P.S
Кстати ругается при проверке синтаксиса, глобальные переменные нужно объявлять в начале, а не внутри функций и/или инклюдах. Я не стал это исправлять, т.к не осталось ни сил, ни времени :(
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,485
sforce5
Поправил.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Именно так обычные с виду программы превращаются в комбайны типа SnagIt :smile:
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,485
Medic84 [?]
Именно так обычные с виду программы превращаются в комбайны типа SnagIt
Почему то «комбайн» ассоциируется у многих с чем то плохим. Такова судьба программ, авторы которых стремятся к совершенству - всё врёмя улучшаться и совершенствоваться. И это, имхо, хорошо.
 
Верх