51

Re: AHK: Бегущая строка

Попробуй.
У меня не стоит студия.

52

Re: AHK: Бегущая строка

Да я с ней не дружу, при компиляции стороннего кода всегда какие то ошибки, сейчас точно не осилю.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

53

Re: AHK: Бегущая строка

Ну вот и будет практика.
Ставишь виртуалку, устанавливаешь нужную версию студии и компилишь код.
https://rutracker.org/forum/viewtopic.php?t=2566619

54

Re: AHK: Бегущая строка

Там ещё и версию надо подобрать, я со своими способностями ещё полгода буду разбираться.

Код из 48 начинает заметно тормозить, если начать делать снимки экрана. Например в AhkSpy запустить лупу. Интересно, это влияет именно на перемещение окон.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

55 (изменено: Malcev, 2019-03-04 14:45:14)

Re: AHK: Бегущая строка

serzh82saratov пишет:

Там ещё и версию надо подобрать, я со своими способностями ещё полгода буду разбираться.

Преувеличиваешь.
Смотришь в OSD.vcproj в какой версии он был сохранен, получаешь Version="7.10".
Смотришь памятку:

VS 6.0 -> 6.0
VS 2002 -> 7.0
VS 2003 -> 8.0
VS 2005 -> 9.0
VS 2008 -> 10.0
VS 2010 -> 11.0
VS 2012 -> 12.0
VS 2013 -> 10.0 to 12.0
VS 2015 -> 10.0 to 14.0
VS 2017 -> 10.0 to 15.0

Ну и можно, как автор, через BitBlt и SetLayeredWindowAttributes с анимацией работать.
Возможно дергаться не будет, да и процессор меньше потреблять.
Если не секрет, зачем тебе бегущая огромная надпись на экране?

56

Re: AHK: Бегущая строка

В магазине в окне наружу экраном стоит телевизор, внимание привлекать.
А BitBlt прозрачность поддерживает?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

57

Re: AHK: Бегущая строка

serzh82saratov пишет:

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

А зачем вообще здесь автохотки?

serzh82saratov пишет:

А BitBlt прозрачность поддерживает?

BitBlt - да.
SetLayeredWindowAttributes, через цвет вытесняет.

58

Re: AHK: Бегущая строка

Malcev пишет:

А зачем вообще здесь автохотки?

В смысле, а что тут надо?

Malcev пишет:

SetLayeredWindowAttributes, через цвет вытесняет.

А полупрозрачность?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

59

Re: AHK: Бегущая строка

serzh82saratov пишет:

В смысле, а что тут надо?

Смотря какая задача.
Допустим тебе надо подправить контрастность на фотографии, ты ее тоже через автохотки вкупе с GDI+ будешь решать?

serzh82saratov пишет:

А полупрозрачность?

Не совсем понимаю вопроса.
Альфа канал он не поддерживает, степень прозрачности идет 3 параметром.

60

Re: AHK: Бегущая строка

Malcev пишет:

надо подправить контрастность на фотографии, ты ее тоже через автохотки вкупе с GDI+ будешь решать?

Да, а как ещё я это решу исходя из незнания других языков и технологий работы с изображениями.

Malcev пишет:

Не совсем понимаю вопроса.

Фон текста полностью прозрачен, сам текст прозрачен на половину, под двигающимся текстом две неподвижных полупрозрачных картинки на фоне заданного цвета.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

61 (изменено: Malcev, 2019-03-04 18:17:28)

Re: AHK: Бегущая строка

serzh82saratov пишет:

Да, а как ещё я это решу исходя из незнания других языков и технологий работы с изображениями.

Есть же фотошоп и прочие программы для работы с изображениями.
Для создания анимации есть афтер эффектс или другие композеры.
Если требуется текст читать с файла, то есть adobe animate.

serzh82saratov пишет:

Фон текста полностью прозрачен, сам текст прозрачен на половину

Я не пробовал, но судя по документации можно:
https://docs.microsoft.com/en-us/window … attributes
Ну а если подходить серьезно, то есть готовые решения для видеостен или их аналогов.

62 (изменено: serzh82saratov, 2019-03-04 18:32:00)

Re: AHK: Бегущая строка

Malcev пишет:

Есть же фотошоп и прочие программы для работы с изображениями.

Так разговор про собственную программную обработку.

Malcev пишет:

Я не пробовал, но судя по документации можно:

Я сделал выводы, в том числе отсюда, что это просто задаёт один полностью прозрачный цвет, и не более.

Malcev пишет:

Для создания анимации есть афтер эффектс или другие композеры.

Конские ценники и время на обучение.

Malcev пишет:

Ну а если подходить серьезно, то есть готовые решения для видеостен или их аналогов.

Не понял.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

63

Re: AHK: Бегущая строка

Ты имеешь ввиду оборудование?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

64 (изменено: Malcev, 2019-03-04 18:49:58)

Re: AHK: Бегущая строка

serzh82saratov пишет:

Я сделал выводы, в том числе отсюда, что это просто задаёт один полностью прозрачный цвет, и не более.

https://docs.microsoft.com/en-us/window … attributes

An action to be taken. This parameter can be one or more of the following values.
Value Meaning

LWA_ALPHA
0x00000002

Use bAlpha to determine the opacity of the layered window.

LWA_COLORKEY
0x00000001

Use crKey as the transparency color.

serzh82saratov пишет:

Конские ценники и время на обучение.

Если ценники не устраивают, а там сейчас действует подписка 20 долларов в месяц, то можно использовать народные версии.
Купить готовый шаблон еще 10-20 долларов, хотя можно скачать в интернете бесплатно.
https://videohive.net/category/after-ef … ject-files
Для учебы - на ютубе полно уроков.
Работы для новичка на пару часов.

serzh82saratov пишет:

Ты имеешь ввиду оборудование?

Готовые хардверные/софтверные комплексы.

65

Re: AHK: Бегущая строка

SetLayeredWindowAttributes

Я читал, но из чего там можно сделать вывод - "как текст сделать с определённой степенью прозрачности"?
Да и WinSet, Transparent (как пишет Lexikos - аналог SetLayeredWindowAttributes) при удалении фона из текста создаёт артефакты.

Malcev пишет:

Работы для новичка на пару часов.

Ну это ты уже со своей колокольни, я ещё новее.

Сторонний варезный софт, или тем более хардвер, это слишком серьёзно.

Интересно всё таки пока, как есть недавняя тема - "Что может GDI".

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

66

Re: AHK: Бегущая строка

serzh82saratov пишет:

как текст сделать с определённой степенью прозрачности

Если на Win-7, то создаешь 2 окна - окно с фоном и окно с текстом, вытесняешь текст, накладываешь прозрачность на окно.
На Win-8+ достаточно одного окна, так как можно вытеснять дочерние окна.

serzh82saratov пишет:

при удалении фона из текста создаёт артефакты

Ну это можно проверить, подобрать фон у шрифта близкий к подложке, вытеснить и решить устраивает качество или нет.

serzh82saratov пишет:

Ну это ты уже со своей колокольни, я ещё новее.

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

serzh82saratov пишет:

Сторонний варезный софт, или тем более хардвер, это слишком серьёзно.

Хардвер - согласен, варезный софт тоже не есть хорошо, но для каждой задачи есть свои инструменты.
Есть ли смысл делать анимационное видео в программе для этого непредназначенной?
ИМХО только ради спортивного интереса.

67

Re: AHK: Бегущая строка

Malcev пишет:

вытесняешь текст, накладываешь прозрачность на окно.

Ок, а двигать как?

Malcev пишет:

Во всяком случае это привлечет больше внимания, чем топорно движущаяся надпись.

Согласен, намного круче. А эти программы в результате создают простой видео файл, или у них свои плееры?

Malcev пишет:

ИМХО только ради спортивного интереса.

Это даже интереснее, чем просто решить вопрос.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

68

Re: AHK: Бегущая строка

Кстати ради интереса, на ахк можно сделать видео из GdiPlus.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

69

Re: AHK: Бегущая строка

Даже, если и написать кодек, который будет обрабатывать, к примеру, .mp4, то имхо GDI на пару с кодеком замучают процессор. (Вспомним, никакого аппаратного ускорения у GDI нет. Соответственно производительность будет меньше.)

70 (изменено: serzh82saratov, 2019-03-05 11:48:22)

Re: AHK: Бегущая строка

Ну по идее надо же просто сделать много картинок из каждого сдвига текста, и из этого создать видео, разве это будет невероятно затратно?
В реальном времени даже UpdateLayeredWindow у меня кушает не более 10%.
То есть надо один раз "прогнать" строку, а потом уже "гонять" видео на повторе в плеере.

АП:
Я имею ввиду что видео надо сделать заранее, а не в реальном времени создавать его, и показывать.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

71

Re: AHK: Бегущая строка

serzh82saratov пишет:

Ну по идее надо же просто сделать много картинок из каждого сдвига текста, и из этого создать видео, разве это будет невероятно затратно?

В таком случае, выгоднее будет написать что-то вроде класса, который будет работать с анимацией. На вход даем ему текст, шрифт, цвет, начальные координаты+конечные, свойства какие-нибудь для анимации(затухание и пр.) и он рисует.
Это если в идеале, а можно и иначе, одним скриптом делаем много PNG-картинок(кадры), другим считываем. Будет что-то вроде слайд-шоу.
FPS*секунды=кол-во картинок
P.S. где-то была тема по этому поводу на форуме автохотки. Они там пытались сначала просто менять путь к картинке у элемента Picture. По итогу перешли на GDI из-за мельканий.

72

Re: AHK: Бегущая строка

Так тут и встаёт вопрос производительности, сколько FPS выдаст AutoHotkey, и при какой нагрузке на проц. И конечно пропуск кадров для синхрона времени, правда в презентациях это не особо важно. Готовое решение ввиде WMP для вопроизведения выглядит как то по проще и надежнее.

скриптом делаем много PNG-картинок(кадры)

Если говорить про самодельный плеер, то сохранять кучу картинок можно и в один файл, и не PNG, а сами Bitmap, по сути это и будет видео файл без кодеков для сжатия.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

73 (изменено: Malcev, 2019-03-05 16:15:43)

Re: AHK: Бегущая строка

serzh82saratov пишет:

Ок, а двигать как?

Через BitBlt.

///////////////////////////////////////////////////////////////////
// Force draw a new frame
///////////////////////////////////////////////////////////////////
public:
void ForceFrame()
{    
    PaintWithMemDC(m_hWnd);
}

////////////////////////////////////////////////////////////////////
// Paint with MemDC
////////////////////////////////////////////////////////////////////
public:
inline
void PaintWithMemDC( HWND hWnd )
{
    if (m_MemDC == NULL) return;

    HDC    hDC = GetDC(hWnd);

    if (! BitBlt(
        hDC,         // handle to destination DC
        0,           // x-coord of destination upper-left corner
        0,           // y-coord of destination upper-left corner
        WIN_WIDTH,   // width of destination rectangle
        WIN_HEIGHT,  // height of destination rectangle
        m_MemDC,     // handle to source DC
        m_ScrollCnt, // x-coordinate of source upper-left corner
        0,           // y-coordinate of source upper-left corner
        SRCCOPY      // raster operation code
    ))
    {
        PostMessage(m_hWnd, WM_CLOSE, 0, 0);
    }

    m_ScrollCnt += m_ScrollSpeed;

    if (m_ScrollCnt > m_StrLen + WIN_WIDTH)
    {
        m_ScrollCnt = 0;
        
        StopTimer();        
        
        CreateMemDC(hWnd); // re create the new memDC
        
        SafeStartTimer();
    }

    ReleaseDC(hWnd, hDC);
}

//////////////////////////////////////////////////////////////////////
// On Left Button Up , at the same time when windows position moved.
//////////////////////////////////////////////////////////////////////
private:
void OnLBtnUp( WINDOWPOS* lpwp)
{
    int cy = GetSystemMetrics(SM_CYSCREEN);

    m_ScreenHalfHeight = cy/2;

    if ( (UINT)(lpwp->y + WIN_HEIGHT) < (m_ScreenHalfHeight) )
    {
        m_bOnScreenUp = TRUE;
        gbUsed        = FALSE;
    }
    else
    {
        m_bOnScreenUp = FALSE;
    }
}

Кстати есть еще вариант через SetDIBitsToDevice:
https://habr.com/ru/post/164705/

serzh82saratov пишет:

А эти программы в результате создают простой видео файл, или у них свои плееры?

Простой видеофайл, но adobe animate она же бывший макромедиа флеш может создавать swf, которая может на ходу подхватывать файлы, текст извне.

serzh82saratov пишет:

Кстати ради интереса, на ахк можно сделать видео из GdiPlus.

Из картинок видео сделать можно, но не так просто, как кажется.
https://www.autoitscript.com/forum/topi … ent-927370
https://docs.microsoft.com/en-us/window … p/api/vfw/

74

Re: AHK: Бегущая строка

Malcev пишет:

Кстати есть еще вариант через SetDIBitsToDevice:

15000 фпс, такое надо попробовать!

Malcev пишет:

Через BitBlt.

А ты пример кода привёл, он отличается как то от "распространённых"?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

75

Re: AHK: Бегущая строка

https://www.opennet.ru/docs/RUS/qt3_prog/x2947.html