Há duas maneiras de iniciar um programa executável separado dentro de um programa Visual Basic. Uma maneira é usar o comando "Shell" Visual Basic. A outra é usar o " CreateProcess " interface de programação de aplicativo do Windows (API). Ambos irão lançar com sucesso o programa executável externo , no entanto, " CreateProcess " dá ao programador mais controle sobre a forma como o sistema operacional lida com o programa. Instruções
Shell Command
1
Inicie um novo projeto Visual Basic Standard EXE. On " Form1 ", que é criado por padrão , adicione um botão de comando com o nome " cmdNotepad ".
2
Código do evento clique do botão de comando no evento " cmdNotepad_Click ()" . Declare uma variável do tipo long para armazenar o valor de retorno do comando Shell. Para iniciar o programa Windows Notepad , digite " lngReturn = Shell ( " C: \\ Windows \\ System32 \\ notepad.exe " ) . "
3
Especifique como deseja que o aplicativo Bloco de Notas para abrir no comando Shell. As opções são: vbHide , vbMaximizedFocus , vbMinimizedFocus , vbMinimizedNoFocus , vbNormalFocus e vbNormalNoFocus . Especifique uma destas opções como o segundo parâmetro para o comando Shell como " Shell ( " C: \\ Windows \\ System32 \\ notepad.exe " , vbNormalFocus ) . "
4
Obter o ID do processo do valor do comando Shell retornar. Como mostrado na etapa 2, " lngReturn " conterá as do Windows atribuídas processo de identificação para o aplicativo Bloco de Notas que acabou de ser lançado a partir do comando Shell. Com a identificação do processo , você pode executar outras tarefas em seu programa como verificar se o processo ainda está em execução antes de fechar o aplicativo Visual Basic.
CreateProcess
5
Iniciar um novo projeto Visual Basic Standard EXE. On " Form1 ", que é criado por padrão , adicione um botão de comando com o nome " cmdNotepad ". Adicionar tipos definidos pelo usuário com o nome " PROCESS_INFORMATION " e " STARTUPINFO " na seção " Declarações " de " Form1 ". Essas estruturas são usadas para agrupar dados e são parâmetros da função " CreateProcess " necessária .
6
Adicione duas constantes que também são parâmetros da função " CreateProcess " .
Const SYNCHRONIZE = 1048576
Const NORMAL_PRIORITY_CLASS = & H20 &
Declare funções para criar a instância do processo ( " Declare a " função " como" CreateProcess " kernel32 " Private Declare Function CreateProcess Lib Alias " CreateProcessA " "), abrir o processo ( " Private Declare Function OpenProcess Lib" kernel32.dll ""), finalizar o processo ( " Private Declare Function TerminateProcess Lib" kernel32 "") e para fechar o identificador ( " Private Declare Function CloseHandle Lib" kernel32 "") .
7
Código do evento clique do botão de comando em " cmdNotepad_Click (). " Definir uma variável do tipo PROCESS_INFORMATION , STARTUPINFO , uma string para representar nulo e dois longs para valores de retorno. Passe o Bloco de Notas. exe para a função " CreateProcess " : .
CreateProcess ( sNull , " notepad.exe " , ByVal 0 & , ByVal 0 & , 1 & , NORMAL_PRIORITY_CLASS , ByVal 0 & , sNull , sInfo , pInfo )
8
Termine o processo com " TerminateProcess ( pInfo.hProcess , 0 &). " Feche o identificador para o segmento com " CloseHandle ( pInfo.hThread ) " e para o processo com " CloseHandle ( pInfo.hProcess ) . " < br >