Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Srmarinhas

abrir exe externo dentro de um form

Mensagens Recomendadas

Srmarinhas

boas pessoal queria saber se é possível abrir um exe externo dentro de um form.

não estou a falar de Shell("etc") nem de process.start("etc")

estou a falar num form com um exe externo aberto dentro.

tipo o webbrowser só que em vez de ser um url ser um programa.

obrigado a todos que me possam ajudar.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Srmarinhas

é simples amigo o exe vai abrir um jogo.

e no form eu queira por botões que interagissem com o jogo.

o jogo ficava tipo touchscreen.

mas o que acontece ´quando eu clico num botao do form o jogo perde focus e minimiza.

eu tenho uma versão trial do que eu quero fazer mas é em delphi e é trial.

queria fazer em vb.net

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Srmarinhas

Imports

System.Runtime.InteropServices
Public

Class Form1
<DllImport(
"User32", CharSet:=CharSet.Auto, ExactSpelling:=True)> Public Shared Function SetParent(ByVal hWndChild As IntPtr, ByVal hWndParent As IntPtr) As IntPtr

End Function

Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer


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

Dim PROCHANDLE As System.IntPtr = -1

For Each proc In Process.GetProcesses

If LCase(proc.ProcessName) = "notepad" Then
PROCHANDLE = proc.Handle

End If

Next

If PROCHANDLE = -1 Then
PROCHANDLE = Process.Start(
"C:\windows\notepad.exe").Handle
SetParent(PROCHANDLE,
Me.Handle)

End If

End Sub
End Class

eu estou a usar este código mas quando eu carrego no form o wordpad minimiza. eu queria que ele fixasse dentro do form mesmo que eu carregasse no form.

Editado por thoga31
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Primeiro link da referência do google que te dei:

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
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Dim proc As Process
       proc = Process.Start("C:\WINDOWS\notepad.exe")
       proc.WaitForInputIdle()
       SetParent(proc.MainWindowHandle, Me.Handle)
       SendMessage(proc.MainWindowHandle, WM_SYSCOMMAND, SC_MAXIMIZE, 0)
       Me.BringToFront()
   End Sub
End Class

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Srmarinhas

ya por isso mesmo eu postei o código para experimentares e veres que não dá.

quando carregas no form o wordpad minimiza,eu queria que ficasse fixo.

obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.