Я пишу программу и хочу, чтобы она отображалась даже поверх игры, запущенной в полноэкранном режиме (например, counter-strike).
Я использую Visual Basic как язык программирования. Приветствуется каждая помощь.
Я пишу программу и хочу, чтобы она отображалась даже поверх игры, запущенной в полноэкранном режиме (например, counter-strike).
Я использую Visual Basic как язык программирования. Приветствуется каждая помощь.
Отображать окно в полноэкранном приложении
Но это не лучший вариант. В полноэкранном режиме есть монопольный доступ к дисплею, и вы можете отображать его поверх него только в том случае, если вам разрешено его реализовать, если это игра в OpenGL, DirectX и BackBuffer для наложения ваших данных.
Это не так уж и сложно. Вам просто нужно прочитать ответ на этот вопрос а>.
Самый простой способ сделать окно самым верхним - указать флаг
WS_EX_TOPMOST
при создании окна. .NET Framework скрывает большую часть работы по созданию окон за кулисами, но вы можете настроить параметры, когда вам нужно, переопределив _ 2_ вашего класса формы.
Вот код:
Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
Const WS_EX_TOPMOST As Integer = &H00000008
Dim cp As CreateParams = MyBase.CreateParams
cp.ExStyle = cp.ExStyle Or WS_EX_TOPMOST
Return cp
End Get
End Property
Но в любом случае, потому что это не сработает. Как я сказал jhegeman2, это не лучшее решение.
"Unless you run your games in a window mode, you're going to have issues. Most games completely take over the display and popping up windows is not really an option without it giving windows back the display. You may have luck drawing your own, but it would compete with the game for display on the screen."
- person Drarig29; 06.08.2015
WS_EX_TOPMOST
не будет работать в полноэкранной игре DirectX. Вы просто выведете игру из полноэкранного режима, когда появится ваше окно.
- person MickyD; 07.08.2015