AJUDA EXECUTAR .EXE DENTRO DO FORM

SHADOWBILL 02/06/2015 12:45:42
#447311
Citação:

:
nao esqueca de finalizar o topico, e pontuar abracos..



Vou fazer o download dovisual studio 2010 Professional, assim que abrir o projeto eu finalizo o topico.
KURTGU 02/06/2015 12:58:38
#447312
Mais rapido segue o codigo, adicione uma form coloque um panel e um botao

Imports System.Runtime.InteropServices

Public Class Form1

Declare Auto Function SetParent Lib [Ô]user32.dll[Ô] (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer
Declare Auto Function SendMessage Lib [Ô]user32.dll[Ô] (ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
Private Const WM_SYSCOMMAND As Integer = 274
Private Const SC_MAXIMIZE As Integer = 61488


<DllImport([Ô]user32.dll[Ô])> _
Private Shared Function GetWindowRect(ByVal hWnd As IntPtr, ByRef lpRect As RECT) As Boolean
End Function

<DllImport([Ô]user32.dll[Ô])> _
Public Shared Function MoveWindow(ByVal hWnd As IntPtr, ByVal x As Integer, ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal bRepaint As Boolean) As Boolean
End Function

Structure RECT
Dim Left As Integer [ô] // x position of upper-left corner
Dim Top As Integer [ô] // y position of upper-left corner
Dim Right As Integer [ô] // x position of lower-right corner
Dim Bottom As Integer [ô] // y position of lower-right corner
End Structure

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim proc As Process
Dim AppPath As String

AppPath = [Ô]C:\windows
otepad.exe[Ô]
proc = Process.Start(AppPath)
proc.WaitForInputIdle()

SetParent(proc.MainWindowHandle, Panel1.Handle)

Dim wRect As RECT = New RECT
GetWindowRect(proc.MainWindowHandle, wRect)

MoveWindow(proc.MainWindowHandle, 0, 0, wRect.Right - wRect.Left, wRect.Bottom - wRect.Top, True)

Button1.BringToFront()

End Sub

End Class
SHADOWBILL 02/06/2015 13:06:01
#447313
Citação:

:
Mais rapido segue o codigo, adicione uma form coloque um panel e um botao

Imports System.Runtime.InteropServices

Public Class Form1

Declare Auto Function SetParent Lib [Ô]user32.dll[Ô] (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer
Declare Auto Function SendMessage Lib [Ô]user32.dll[Ô] (ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
Private Const WM_SYSCOMMAND As Integer = 274
Private Const SC_MAXIMIZE As Integer = 61488


<DllImport([Ô]user32.dll[Ô])> _
Private Shared Function GetWindowRect(ByVal hWnd As IntPtr, ByRef lpRect As RECT) As Boolean
End Function

<DllImport([Ô]user32.dll[Ô])> _
Public Shared Function MoveWindow(ByVal hWnd As IntPtr, ByVal x As Integer, ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal bRepaint As Boolean) As Boolean
End Function

Structure RECT
Dim Left As Integer [ô] // x position of upper-left corner
Dim Top As Integer [ô] // y position of upper-left corner
Dim Right As Integer [ô] // x position of lower-right corner
Dim Bottom As Integer [ô] // y position of lower-right corner
End Structure

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim proc As Process
Dim AppPath As String

AppPath = [Ô]C:windows
otepad.exe[Ô]
proc = Process.Start(AppPath)
proc.WaitForInputIdle()

SetParent(proc.MainWindowHandle, Panel1.Handle)

Dim wRect As RECT = New RECT
GetWindowRect(proc.MainWindowHandle, wRect)

MoveWindow(proc.MainWindowHandle, 0, 0, wRect.Right - wRect.Left, wRect.Bottom - wRect.Top, True)

Button1.BringToFront()

End Sub

End Class




Impressionante, da errado o botão fica atraz, não fica como o projeto que você colocou disponivel para download, estou usando o visual basic 2008.

Já aproveitando, só uma dúvida, (testando sua paciência) como eu coloco para o notepad(bloco de notas) abrir maximizado ocupando todo o espaço do panel1, e ao redimensionar(diminuir ou aumentar) o form1, como fazer notepad redimensionar junto ?

OBS: só essa dúvida e eu fecho o topico.
KURTGU 02/06/2015 13:33:35
#447315
E SO VOCE colocar o panel aonde vai o notepad atras do botao...
KURTGU 02/06/2015 13:43:45
#447316
foto
SHADOWBILL 02/06/2015 13:52:31
#447319
Citação:

:
foto



Sim, mas quando o panel1 é redimensionado o notepad fica do jeito que ele esta, não tem como por um timer para forçar o notepad maximizar a cada tantos segundos?
TUNUSAT 02/06/2015 17:10:03
#447325
SHADOWBILL.

Não tem como usar a propriedade [Ô]Anchor[Ô] (ancoramento) do objeto?

KURTGU,

Da hora!
Tem como montar um exemplinho bacana e subir aqui pro VBMania?

Valew!
[][ô]s,
tunusat.
SHADOWBILL 02/06/2015 17:22:00
#447327
Citação:

:
SHADOWBILL.

Não tem como usar a propriedade [Ô]Anchor[Ô] (ancoramento) do objeto?



Exatamente oque eu pensei, pois eu fiz, mas eu usei a propriedade anchor no Panel1, até ai tudo ok, mas como usar a propriedade anchor para o arquivo a ser executado dentro do panel1, no caso o notepad, usando o código do KURTGU? Pois só o Panel1 é redimensionado, mas o notepad continua no mesmo tamanho.

Anchor na Panel1, mas somente ela redimensiona, o notepad não:



Tentei:

     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim proc As Process
Dim AppPath As String

AppPath = [Ô]C:\windows
otepad.exe[Ô]
proc = Process.Start(AppPath)
proc.WaitForInputIdle()
SetParent(proc.MainWindowHandle, Panel1.Handle)
Panel1.Anchor = AnchorStyles.Right

Dim wRect As RECT = New RECT
GetWindowRect(proc.MainWindowHandle, wRect)

MoveWindow(proc.MainWindowHandle, 0, 0, wRect.Right - wRect.Left, wRect.Bottom - wRect.Top, True)
Button1.BringToFront()


End Sub



Mas sem sucesso , não sei oque estou fazendo, procurei na internet não acho nada.
[txt-color=#007100] [/txt-color]
KURTGU 02/06/2015 20:56:31
#447334
SOLUCAO.... E SO USAR O CODIGO ABAIXO ELE VAI FICAR DO TAMANHO DO PANEL....O TAMANHO E DEFINIDO NA LINHA VERMELHA...

Dim proc As Process
Dim AppPath As String

AppPath = [Ô]C:windows
otepad.exe[Ô]
proc = Process.Start(AppPath)
proc.WaitForInputIdle()

SetParent(proc.MainWindowHandle, Panel1.Handle)

Dim wRect As RECT = New RECT
GetWindowRect(proc.MainWindowHandle, wRect)

[txt-color=#e80000] MoveWindow(proc.MainWindowHandle, 0, 0, Panel1.Width, Panel1.Height, True)[/txt-color]

Button1.BringToFront()
KURTGU 02/06/2015 20:59:27
#447335
TUNUSAT SEGUE O EXEMPLO....EM VB.NET 2010

Página 2 de 3 [23 registro(s)]
Tópico encerrado , respostas não são mais permitidas