Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: E N T E R en Octubre 22, 2011, 01:37:20 pm
-
Hay alguna manera de poner una ventana encima de un juego en especial Call of Duty 4. La idea es poder elegir música mientras vas a jugando sin minimizar el juego. Por ejemplo al apretar Control + F12 y se active el programa tipo encima del juego.
Este es un ejemplo "Pero este es un Cheat"
(http://www.x22cheats.com/SShot/xInstantHookv2.0/CoD4004.JPG)
Pero la idea es asi crear un reproductor de MP3 y poder manipular sin minimizar. Si se juega a modo pantalla funciona pero se pierde mucho FPS si se juega asi.
-
Hola Enter, aca te dejo el code ... salu2
'By Softmania
'Esto lo usas de la siguiente manera en el load del form
'Dim B as boolean
'B = POSICION_FORM ( MOSTRAR_ARRIBA , Me.hwnd )
'MODULO
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const HWND_MOSTRAR_ARRIBA = -1 'esto es lo que te permitirá mostrarlo arriba
Private Const HWND_NO_MOSTRAR_ARRIBA = -2
'esto permite que la api no mueva el form a la posción top y left 0
Private Const NO_MOVER = &H2
'esto permite que la api no redimencione el tamaño del form
Private Const NO_DIMENSIONAR = &H1
Enum ENUM_POSICION
MOSTRAR_ARRIBA = 1
NO_MOSTRAR_ARRIBA = 0
End Enum
Public Function POSICION_FORM(Posicion As ENUM_POSICION, lHWND As Long) As Boolean
Dim lPosicion As Long
Select Case Posicion
Case 0
lPosicion = HWND_NO_MOSTRAR_ARRIBA
Case 1
lPosicion = HWND_MOSTRAR_ARRIBA
Case Else
Exit Function
End Select
If SetWindowPos(lHWND, lPosicion, 0, 0, 0, 0, NO_MOVER _
+ NO_DIMENSIONAR) Then
POSICION_FORM = True
End If
End Function
-
Gracias softmania este code solo funciona si un juego no es pantalla completa.
-
el tema es que los juegos que usan graficos de las apis graficas de DirectX o OpenGL toman el control de la pantalla y todo lo que ocurra fuera queda en segundo plano, por lo que no podrias "mezclar" una pantalla de windows con las ventanas graficas de los juegos.
-
De poder se puede, yo pude poner un Timer sobre el Counter Strike 1.6 (creo que usa el mismo motor) en modo DirectX (y creo recordar que en modo Software Tambien) Asi como tambien ayude a Psyke1 con su FrogCheat a hacerlo (aunque en modo de renderizado Software creo que no funcionaba)
El tema es que no podes hacerlo tipo transparente (que es como lo probe y lo tenia que hacer porque me lo pidieron) pero totalmente opaco y cuadrado (rectangular en realidad) se puede, ya sea usando GDI o DirectX. Yo lo pude hacer en .Net (pero se puede hacer perfectamente en vb6)
Ya si necesitas algo transparente (yo necesitaba hacer un cronometro para simular un arcade posta x´D con fichas y todo) ahi si cuestan 3 huevos y medio.
De hecho, este tema lo cree cuando lo estaba realizando (http://foro.elhacker.net/programacion_vb/pintar_sobre_directx-t277642.0.html), allá en tiempos cuando no sabia ni la mitad de lo que se hoy xD. Y aun no sabria como resolver el problema :P
-
El de .NET igual me sirve si queda encima del juego, ahi igual podre desarrollar el reproductor de MP3 ;D