Форма поверх всего

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Dieman
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 25.02.2013 (Пн) 1:56

Форма поверх всего

Сообщение Dieman » 25.02.2013 (Пн) 2:07

Собственно интересует как замутить чтобы форма была видна поверх игр. Причем форма должна быть не активна(без фокуса).
Суть идеи смотреть кино играя в игрушку.

вот нарыл пример с текстом но он тоже не работает корректно...

Код: Выделить всё
    Private Declare Function CreateDCAsNull Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, lpDeviceName As Any, lpOutput As Any, lpInitData As Any) As Long
    Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
    Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Private Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
    Private Declare Function GetTextColor Lib "gdi32" (ByVal hdc As Long) As Long
    Private Declare Function SetTextColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
     
    Public Sub TestDesktopDC(TextA As String)
    Dim hdc As Long
    Dim tR As RECT
    Dim lCol As Long
    hdc = CreateDCAsNull("DISPLAY", ByVal 0&, ByVal 0&, ByVal 0&)
    tR.Left = 0
    tR.Top = 0
    tR.Right = 1740
    tR.Bottom = 1320
    lCol = GetTextColor(hdc)
    SetTextColor hdc, &HFF&
    DrawText hdc, TextA, Len(TextA), tR, 8
    SetTextColor hdc, lCol
    DeleteDC hdc
    End Sub
     
    Private Sub Command1_Click()
    Dim werA As String
    werA = InputBox("Введите строку!", "Output on Display")
     
    TestDesktopDC werA
    End Sub


За пример взял игрушку Diablo 2.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Форма поверх всего

Сообщение Mikle » 25.02.2013 (Пн) 12:43

Поверх полноэкранной игры так просто что-то не покажешь.

Dieman
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 25.02.2013 (Пн) 1:56

Re: Форма поверх всего

Сообщение Dieman » 25.02.2013 (Пн) 16:31

Mikle писал(а):Поверх полноэкранной игры так просто что-то не покажешь.

Согласен. Инфы в инете оч. мало....
Но хотя бы в каком направлении двигаться ?

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Форма поверх всего

Сообщение FireFenix » 25.02.2013 (Пн) 17:32

Dieman писал(а):Но хотя бы в каком направлении двигаться ?

Полноэкранная игра - изучаем на чём построена, хукаем функцию отрисовки, вставляем свою плоскость и на ней рисуем фильм
Ещё проще можно игру сделать оконной и тогда форму тащить в TopMost, чтоб всегда поверх была.
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Dieman
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 25.02.2013 (Пн) 1:56

Re: Форма поверх всего

Сообщение Dieman » 25.02.2013 (Пн) 18:00

TopMost не устраивает потому как не будет оконных режимов. Тут проблема в то что окно с фильмом будет не активным а значит уже на втором плане...
Вроде был какой то плеер на эту тему... На маке это уже встроенная функция идёт вроде ! А вот как быть с виндой да + еще винХР и Вин7 разная реализация вроде....

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Форма поверх всего

Сообщение FireFenix » 25.02.2013 (Пн) 20:07

Dieman писал(а):потому как не будет оконных режимов

Чё?

Dieman писал(а):Тут проблема в то что окно с фильмом будет не активным а значит уже на втором плане...

http://savepic.ru/4167144.png
http://savepic.ru/4180459.png

Dieman писал(а):А вот как быть с виндой да + еще винХР и Вин7 разная реализация вроде....

Полноэкранный режим для того и полноэкранный, чтобы сразу писать в видеобуфер напярмую, а не через прослойки ОС

Dieman писал(а):На маке это уже встроенная функция идёт вроде !

Зато на маке "почти" все игры и естественно привет вирусам, которые блочат весь экран с просьбой отправить смс

И да, смотреть фильм и играть - это наркоманство Изображение
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Форма поверх всего

Сообщение iGrok » 25.02.2013 (Пн) 23:33

FireFenix писал(а):и естественно привет вирусам, которые блочат весь экран с просьбой отправить смс

Упоротый штоле? :mrgreen:
label:
cli
jmp label

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Форма поверх всего

Сообщение ger_kar » 26.02.2013 (Вт) 11:01

Вобщем не знаю как показ кино в окне поверх игр, но есть такая программа, называется Компьютерный Зал. Демку для работы на 4 компах можно скачать абсолютно бесплатно. Уж не знаю как там все устроено, но есть режим который при окончании времени выводит окно блокировки поверх всех окон, в т.ч. и поверх полноэкранных игр. Поэтому я думаю можно взять эту прогу и в отладчике посмотреть что она конкретно делает.
Бороться и искать, найти и перепрятать

Dieman
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 25.02.2013 (Пн) 1:56

Re: Форма поверх всего

Сообщение Dieman » 26.02.2013 (Вт) 21:28

текст поверх всего! дело не хитрое как я уже выкладывал код выше !он рисует текст в определённом регионе. Есть прога под винду которая делает то что мне надо. вот только наз. не помню

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Форма поверх всего

Сообщение ger_kar » 26.02.2013 (Вт) 21:54

Dieman писал(а):текст поверх всего! дело не хитрое как я уже выкладывал код выше !
Ну вообще то там не только текст, а полноценное окно Windows с контролами. А конкретно там два тестовых поля и пару кнопок.
Бороться и искать, найти и перепрятать

Dieman
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 25.02.2013 (Пн) 1:56

Re: Форма поверх всего

Сообщение Dieman » 26.02.2013 (Вт) 22:05

ger_kar писал(а):Ну вообще то там не только текст, а полноценное окно Windows с контролами. А конкретно там два тестовых поля и пару кнопок.

Код выложен для примера ! И если тебе так угодно то замени
Код: Выделить всё
    Private Sub Command1_Click()
    Dim werA As String
    werA = InputBox("Введите строку!", "Output on Display")
     
    TestDesktopDC werA
    End Sub

на
Код: Выделить всё
    Private Sub Timer1_Timer()
    TestDesktopDC "12345"
    End Sub

или
Код: Выделить всё
Private Sub Form_Load()
    TestDesktopDC "12345"
End Sub


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 70

    TopList