meter handler en un picture1 ayuda

Iniciado por elmatador2, 5 Julio 2016, 00:57 AM

0 Miembros y 2 Visitantes están viendo este tema.

elmatador2

hola gente, tengo este codigo, mete una aplicacion en un form, en un picture.... y quisiera saber si en vez de ser por find-window,
puede ser por handrers... alguien podria ayudarme con un ejemplo?
este es mi codigo
Código (vb) [Seleccionar]
'//Funciones API para incrustar el programa en el picture
    Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, _
ByVal hWndParent As Long) As Long

    Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
    Const SHOWMAXIMIZED_eSW = 1&

    '//Funciones API para obtener el handle de la aplicación que queremos meter en un picture
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

    '//Ejecuta el programa
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    lParam As Any) As Long

    Const WM_SYSCOMMAND = &H112
    Const SC_CLOSE = &HF060&


Código (vb) [Seleccionar]
Private Sub Command1_Click()
    Dim hwnd As Long
     
       ShellExecute Me.hwnd, "Open", "D:\juegos listos para jugar\Lineage II\system\l2.exe", _
"", "", 3


    Espera (50) 'Espera cinco segundos a que se cargue
    hwnd = FindWindow("l2UnrealWLog", vbNullString) 'Obtiene el handle padre
Call SetParent(hwnd, Picture1.hwnd) 'Meter la apcliación en el picture
Call ShowWindow(hwnd, SHOWMAXIMIZED_eSW) 'Lo ajusta al cuadro


tincopasan

me encantaría entender lo que preguntas.
Citary quisiera saber si en vez de ser por find-window,
puede ser por handrers...
supongo que te referís a handle y FindWindow justamente lo que hace es devolver el handle.

FindWindow function
Retrieves a handle to the top-level window whose class name and window name match the specified strings. This function does not search child windows. This function does not perform a case-sensitive search.

según: https://msdn.microsoft.com/en-us/library/windows/desktop/ms633499(v=vs.85).aspx

Eleкtro

Cita de: tincopasan en  6 Julio 2016, 22:08 PM
me encantaría entender lo que preguntas. supongo que te referís a handle y FindWindow justamente lo que hace es devolver el handle.

Creo que él se refiere a identificar la ventana mediante un handle de ventana el cual ya conoce, para así evitar tener que recurrir a la función FindWindow/FindWindowEx para buscar el handle de esa ventana mediante un string.

Creo que yo tampoco entiendo la pregunta, por que en caso de que ya conozcas el handle de ventana entonces solo deberías cambiar esto:
Código (vb) [Seleccionar]
hwnd = FindWindow("l2UnrealWLog", vbNullString)

Por esto otro:
Código (vb) [Seleccionar]
hwnd = el handle de ventana

Lo que es muy obvio, así que quizás no sea eso lo que estés preguntando...

Saludos








elmatador2

gracias por responder chicos. a lo que me referia es a poner un handle, no un class id. o yo me explico mal seguramente jajja, me refiero a poner una ventana ya con una accion...