Autor
|
Tema: Abrir Soft dentro de mi Form.. (Leído 5,038 veces)
|
Pitoniso
Desconectado
Mensajes: 118
|
Pos eso gente quiero ejecutar un Soft desde mi programa...o sea no es ejecutarlo y ya, mas bien hacer que trabaje sobre mi Programa...como si fuese un FOrm mas...algo asi...
Espero que me hallan entendido...
|
|
|
En línea
|
|
|
|
CeLaYa
Desconectado
Mensajes: 543
|
en el visual 5, viene un ejemplo de como ejecutar la calculadora de windows dentro de un MDIForm, deberias de revisarlo.
|
|
|
En línea
|
"La soledad es el elemento de los grandes talentos". Cristina de Suecia (1626-1689) Reina de Suecia.
|
|
|
Pitoniso
Desconectado
Mensajes: 118
|
mas datosss
|
|
|
En línea
|
|
|
|
-POLACO-
Desconectado
Mensajes: 48
|
Hola viejo aca te dejo un code de El Guille ,yo lo recorte bastante y funciona joya. Podes ejecutar cualquier .exe dentro del picture. En Un form pones 1 picture box="picR" y un boton="Command1" . El codigo completo va en el Formulario chao espero te sirva .-. Option Explicit
Private objDer As PictureBox Private hndNotepad As Long Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'------------------------------------------------------------------------------ ' APIS para incluir las ventanas en un PictureBox '------------------------------------------------------------------------------
' Para hacer ventanas hijas Private Declare Function SetParent Lib "user32" _ (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long ' ' Para mostrar una ventana según el handle (hwnd) ' ShowWindow() Commands Private Enum eShowWindow HIDE_eSW = 0& SHOWNORMAL_eSW = 1& NORMAL_eSW = 1& SHOWMINIMIZED_eSW = 2& SHOWMAXIMIZED_eSW = 3& MAXIMIZE_eSW = 3& SHOWNOACTIVATE_eSW = 4& SHOW_eSW = 5& MINIMIZE_eSW = 6& SHOWMINNOACTIVE_eSW = 7& SHOWNA_eSW = 8& RESTORE_eSW = 9& SHOWDEFAULT_eSW = 10& MAX_eSW = 10& End Enum
Private Declare Function ShowWindow Lib "user32" _ (ByVal hWnd As Long, ByVal nCmdShow As eShowWindow) As Long ' ' Para posicionar una ventana según su hWnd Private Declare Function MoveWindow Lib "user32" _ (ByVal hWnd As Long, ByVal x As Long, ByVal y As Long, _ ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long ' ' Para saber si una ventana es hija de otra Private Declare Function IsChild Lib "user32" _ (ByVal hWndParent As Long, ByVal hWnd As Long) As Long
Private Type POINTAPI x As Long y As Long End Type Private Type RECTAPI Left As Long Top As Long Right As Long Bottom As Long End Type Private Type WINDOWPLACEMENT Length As Long Flags As Long ShowCmd As Long ptMinPosition As POINTAPI ptMaxPosition As POINTAPI rcNormalPosition As RECTAPI End Type
Private Declare Function GetWindowPlacement Lib "user32" _ (ByVal hWnd As Long, ByRef lpwndpl As WINDOWPLACEMENT) As Long
' Mostrar el formulario indicado, dentro de picDock Private Sub dockForm(ByVal formhWnd As Long, _ ByVal picDock As PictureBox, _ Optional ByVal ajustar As Boolean = True) ' Hacer el formulario indicado, un hijo del picDock ' Si Ajustar es True, se ajustará al tamaño del contenedor, ' si Ajustar es False, se quedará con el tamaño actual. Call SetParent(formhWnd, picDock.hWnd) posDockForm formhWnd, picDock, ajustar Call ShowWindow(formhWnd, NORMAL_eSW) End Sub
' Posicionar el formulario indicado dentro de picDock Private Sub posDockForm(ByVal formhWnd As Long, _ ByVal picDock As PictureBox, _ Optional ByVal ajustar As Boolean = True) ' Posicionar el formulario indicado en las coordenadas del picDock ' Si Ajustar es True, se ajustará al tamaño del contenedor, ' si Ajustar es False, se quedará con el tamaño actual. Dim nWidth As Long, nHeight As Long Dim wndPl As WINDOWPLACEMENT ' If ajustar Then nWidth = picDock.ScaleWidth \ Screen.TwipsPerPixelX nHeight = picDock.ScaleHeight \ Screen.TwipsPerPixelY Else ' el tamaño del formulario que se va a posicionar Call GetWindowPlacement(formhWnd, wndPl) With wndPl.rcNormalPosition nWidth = .Right - .Left nHeight = .Bottom - .Top End With End If Call MoveWindow(formhWnd, 0, 0, nWidth, nHeight, True) End Sub
Private Sub Command1_Click()
Call Shell("calc.exe", vbNormalFocus) '<<<Podes cambiar por el programa que quieras vos ' Dim s As String 'hndNotepad = FindWindow(s, "Sin título - Bloc de notas") hndNotepad = FindWindow(s, "Calculadora") '<<<<--Titulo de la Ventana 'si es false se ve el exe tal cual es LEERRRR 'si es true se ajusta a la ventana bakan dockForm hndNotepad, objDer, False End Sub
Private Sub Form_Load() Set objDer = picR End Sub
Podemos ser lo mejor y tambien lo peor con la misma facilidad. Bersuit Vergarabat -POLACO-
|
|
|
En línea
|
|
|
|
Pitoniso
Desconectado
Mensajes: 118
|
Hola viejo aca te dejo un code de El Guille ,yo lo recorte bastante y funciona joya. Podes ejecutar cualquier .exe dentro del picture. En Un form pones 1 picture box="picR" y un boton="Command1" . El codigo completo va en el Formulario chao espero te sirva .-. Option Explicit
Private objDer As PictureBox Private hndNotepad As Long Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'------------------------------------------------------------------------------ ' APIS para incluir las ventanas en un PictureBox '------------------------------------------------------------------------------
' Para hacer ventanas hijas Private Declare Function SetParent Lib "user32" _ (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long ' ' Para mostrar una ventana según el handle (hwnd) ' ShowWindow() Commands Private Enum eShowWindow HIDE_eSW = 0& SHOWNORMAL_eSW = 1& NORMAL_eSW = 1& SHOWMINIMIZED_eSW = 2& SHOWMAXIMIZED_eSW = 3& MAXIMIZE_eSW = 3& SHOWNOACTIVATE_eSW = 4& SHOW_eSW = 5& MINIMIZE_eSW = 6& SHOWMINNOACTIVE_eSW = 7& SHOWNA_eSW = 8& RESTORE_eSW = 9& SHOWDEFAULT_eSW = 10& MAX_eSW = 10& End Enum
Private Declare Function ShowWindow Lib "user32" _ (ByVal hWnd As Long, ByVal nCmdShow As eShowWindow) As Long ' ' Para posicionar una ventana según su hWnd Private Declare Function MoveWindow Lib "user32" _ (ByVal hWnd As Long, ByVal x As Long, ByVal y As Long, _ ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long ' ' Para saber si una ventana es hija de otra Private Declare Function IsChild Lib "user32" _ (ByVal hWndParent As Long, ByVal hWnd As Long) As Long
Private Type POINTAPI x As Long y As Long End Type Private Type RECTAPI Left As Long Top As Long Right As Long Bottom As Long End Type Private Type WINDOWPLACEMENT Length As Long Flags As Long ShowCmd As Long ptMinPosition As POINTAPI ptMaxPosition As POINTAPI rcNormalPosition As RECTAPI End Type
Private Declare Function GetWindowPlacement Lib "user32" _ (ByVal hWnd As Long, ByRef lpwndpl As WINDOWPLACEMENT) As Long
' Mostrar el formulario indicado, dentro de picDock Private Sub dockForm(ByVal formhWnd As Long, _ ByVal picDock As PictureBox, _ Optional ByVal ajustar As Boolean = True) ' Hacer el formulario indicado, un hijo del picDock ' Si Ajustar es True, se ajustará al tamaño del contenedor, ' si Ajustar es False, se quedará con el tamaño actual. Call SetParent(formhWnd, picDock.hWnd) posDockForm formhWnd, picDock, ajustar Call ShowWindow(formhWnd, NORMAL_eSW) End Sub
' Posicionar el formulario indicado dentro de picDock Private Sub posDockForm(ByVal formhWnd As Long, _ ByVal picDock As PictureBox, _ Optional ByVal ajustar As Boolean = True) ' Posicionar el formulario indicado en las coordenadas del picDock ' Si Ajustar es True, se ajustará al tamaño del contenedor, ' si Ajustar es False, se quedará con el tamaño actual. Dim nWidth As Long, nHeight As Long Dim wndPl As WINDOWPLACEMENT ' If ajustar Then nWidth = picDock.ScaleWidth \ Screen.TwipsPerPixelX nHeight = picDock.ScaleHeight \ Screen.TwipsPerPixelY Else ' el tamaño del formulario que se va a posicionar Call GetWindowPlacement(formhWnd, wndPl) With wndPl.rcNormalPosition nWidth = .Right - .Left nHeight = .Bottom - .Top End With End If Call MoveWindow(formhWnd, 0, 0, nWidth, nHeight, True) End Sub
Private Sub Command1_Click()
Call Shell("calc.exe", vbNormalFocus) '<<<Podes cambiar por el programa que quieras vos ' Dim s As String 'hndNotepad = FindWindow(s, "Sin título - Bloc de notas") hndNotepad = FindWindow(s, "Calculadora") '<<<<--Titulo de la Ventana 'si es false se ve el exe tal cual es LEERRRR 'si es true se ajusta a la ventana bakan dockForm hndNotepad, objDer, False End Sub
Private Sub Form_Load() Set objDer = picR End Sub
Podemos ser lo mejor y tambien lo peor con la misma facilidad. Bersuit Vergarabat -POLACO-Como bien dices es una joya, ahora el tratamiento de las ventanas con el findwindow no puede hacerse por ejemplo con un proceso X, o sea q lo busque y revise si el mismo tiene alguna ventana abierta....y si la tiene que la oculte en este caso... saludos.. dime si sabes trabajar con el reg e windows...
|
|
|
En línea
|
|
|
|
-POLACO-
Desconectado
Mensajes: 48
|
Disculpa pero no entendi bien cuando decis "Proceso X" ¿¿no te referis a un servicio no ?? Si No es un servicio podes poner un timer que chequee cada x tiempo si el titulo de la ventana de tu "Proceso X" existe . Si existe ahi tenes el handle de la ventana ,no se si podras ocultarlo pero terminarlo si que podras.
Hay otra manera que te da todas las ventanas activas con su respectivo handle(Lista todas las ventanas).
Me preguntas si se trabajar con el registro del win ,SI se.
Si podes explicate mejor con algun ejemplo de ¿ que queres que haga tu programa ? con respecto a los datos que pueda sacar del "Proceso X" .
El Proceso X ,es otro programa hecho por vos ?? Un saludo
|
|
|
En línea
|
|
|
|
Pitoniso
Desconectado
Mensajes: 118
|
Disculpa pero no entendi bien cuando decis "Proceso X" ¿¿no te referis a un servicio no ?? Si No es un servicio podes poner un timer que chequee cada x tiempo si el titulo de la ventana de tu "Proceso X" existe . Si existe ahi tenes el handle de la ventana ,no se si podras ocultarlo pero terminarlo si que podras.
Hay otra manera que te da todas las ventanas activas con su respectivo handle(Lista todas las ventanas).
Me preguntas si se trabajar con el registro del win ,SI se.
Si podes explicate mejor con algun ejemplo de ¿ que queres que haga tu programa ? con respecto a los datos que pueda sacar del "Proceso X" .
El Proceso X ,es otro programa hecho por vos ?? Un saludo
Si bueno en unas de mis explicaciones en otro Tema era que desde mi soft, hago un llamado mediante el Shell en conjunto de unos parametros que admite el soft externo y el mismo me responde con una serie de eventos que no dejan de estar al alcance de ser controlados o supervisados, como algun mensaje de advertencia, error, en fin, lo que sucede es que normalmente el muestra una ventana con informacion delicada que no me cuadra que se muestre por eso vengo a ocultarlo...tambien dicha ventana por X motivos quizas se le pase un parametro mal u algo puede demorarse en mostrarse por lo que tengo que tener mucho cuidado a la hora de buscarla para que se me oculte, si pense en un Timer solo que se me vino a la mente que como una especie de escaneo para saber si el mismo tiene una o varias ventanas activas y ocultarlas...no buscar una o unas especificamente... Necesito agregar un fichero .Reg.. al Registro de Windows, estuve trasteando la Api RegLoadKey despues de un mete y saca no logre hacer nada pero segun estuve leyendo sus caracteristicas y me dice que no puedo agregar nada al HKEY_CURRENT_USER.... bueno tirame un ojito ahi haber que onda....si quieres te busco el escrito que lei de la misma ayuda del Visual Basic...espero por ti...thx
|
|
|
En línea
|
|
|
|
-POLACO-
Desconectado
Mensajes: 48
|
Echale un vistazo a este post aver si te sirve [urhttp://foro.elhacker.net/index.php/topic,101303.0.htmll][/url]
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Redimensionar componente dentro de form
.NET (C#, VB.NET, ASP)
|
NetJava
|
2
|
3,068
|
17 Noviembre 2011, 10:21 am
por NetJava
|
|
|
AYUDA abrir soft desde otro
Ingeniería Inversa
|
ratamesi
|
2
|
2,467
|
23 Mayo 2013, 02:17 am
por apuromafo CLS
|
|
|
Abrir pagina dentro de div. Ayuda
Desarrollo Web
|
70N1
|
1
|
2,280
|
18 Julio 2013, 21:56 pm
por 70N1
|
|
|
Abrir Chrome dentro de un form
Programación Visual Basic
|
NsTeam
|
4
|
9,000
|
3 Febrero 2015, 13:49 pm
por okik
|
|
|
Abrir ejecutable en un form - ¿Es posible abrir Chrome?
« 1 2 3 »
Programación Visual Basic
|
NsTeam
|
27
|
19,033
|
17 Febrero 2015, 19:56 pm
por okik
|
|