Module AplicacoesExternas
''' <summary>
''' Esta rotina chama e executa uma app instalada no windows
''' Ex : app = "Age of Mythology" abre e executa o jogo
''' </summary>
''' <param name="app"></param>
''' <returns></returns>
Public Function ChamaExecutaAppExterna(app As String) As Boolean
Try
Interaction.AppActivate(app)
Thread.Sleep(500) '1 segundo
Application.DoEvents()
Return True
Catch ex As Exception
Return False
End Try
End Function
Public Function MaximizarAppExterna(app As String)
'ex : "aomx"
Dim a As String
Try
MaximizeExeByName(app)
Thread.Sleep(300) 'MiliSegundos
Application.DoEvents()
'For Each ObjProcess As Process In Process.GetProcessesByName(a)
' AppActivate(ObjProcess.Id)
' Exit Sub
'Next
'MsgBox("Ativar : Não achei : " + a)
Return True
Catch ex As Exception
a = ex.Message
End Try
Return False
End Function
Private Const SW_SHOWMAXIMIZED As Integer = 3
Private Const SW_SHOWMINIMIZED As Integer = 6
Private Const SW_SHOWNORMAL As Integer = 1
Private Declare Function ShowWindow Lib "user32" (ByVal handle As IntPtr, ByVal nCmdShow As Integer) As Integer
Private Declare Function SetForegroundWindow Lib "user32" (ByVal handle As IntPtr) As Integer
''' <summary>
''' Retorna true se conseguiu maximizar a app
''' </summary>
''' <param name="ExeNameWithoutPathOrExtension"></param>
''' <returns></returns>
Public Function MaximizeExeByName(ByVal ExeNameWithoutPathOrExtension As String) As Boolean
Dim ps() As Process = Process.GetProcessesByName(ExeNameWithoutPathOrExtension)
If ps.Length > 0 Then
ShowWindow(ps(0).MainWindowHandle, SW_SHOWMAXIMIZED)
SetForegroundWindow(ps(0).MainWindowHandle)
Return True
Else
Return False
End If
End Function
Public Function MinimizaExeByName(ByVal ExeNameWithoutPathOrExtension As String) As Boolean
Dim ps() As Process = Process.GetProcessesByName(ExeNameWithoutPathOrExtension)
If ps.Length > 0 Then
ShowWindow(ps(0).MainWindowHandle, SW_SHOWMINIMIZED)
SetForegroundWindow(ps(0).MainWindowHandle)
Return True
Else
Return False
End If
End Function
Public Function ExibeJanelaAppExtNormal(ByVal ExeNameWithoutPathOrExtension As String) As Boolean
Dim ps() As Process = Process.GetProcessesByName(ExeNameWithoutPathOrExtension)
If ps.Length > 0 Then
ShowWindow(ps(0).MainWindowHandle, SW_SHOWNORMAL)
SetForegroundWindow(ps(0).MainWindowHandle)
Return True
Else
Return False
End If
End Function
Public Function EnviaTecla(tecla As String) As Boolean
Dim a As String
Dim b As Boolean 'true=tecla enviada, false não enviou
a = UCase(tecla)
b = False
Select Case a
Case "SHIFT"
My.Computer.Keyboard.SendKeys("+", True)
b = True
Case "ALT"
My.Computer.Keyboard.SendKeys("%", True)
b = True
Case "CONTROL"
My.Computer.Keyboard.SendKeys("^", True)
b = True
Case "ENTER"
My.Computer.Keyboard.SendKeys("~", True)
'My.Computer.Keyboard.SendKeys("{ENTER}", True)
b = True
Case "ESC"
My.Computer.Keyboard.SendKeys("{ESC}", True)
b = True
Case "INS" 'INSERT
My.Computer.Keyboard.SendKeys("{INS}", True)
b = True
Case "BACKSPACE"
My.Computer.Keyboard.SendKeys("{BACKSPACE}", True)
b = True
Case "BREAK"
My.Computer.Keyboard.SendKeys("{BREAK}", True)
b = True
Case "CAPSLOCK"
My.Computer.Keyboard.SendKeys("{CAPSLOCK}", True)
b = True
Case "DELETE"
My.Computer.Keyboard.SendKeys("{DEL}", True)
'My.Computer.Keyboard.SendKeys("{DELETE}", True)
b = True
Case "END"
My.Computer.Keyboard.SendKeys("{END}", True)
b = True
Case "HELP"
My.Computer.Keyboard.SendKeys("{HELP}", True)
b = True
Case "HOME"
My.Computer.Keyboard.SendKeys("{HOME}", True)
b = True
Case "NUMLOCK"
My.Computer.Keyboard.SendKeys("{NUMLOCK}", True)
b = True
Case "PGDN"
My.Computer.Keyboard.SendKeys("{PGDN}", True)
b = True
Case "PGUP"
My.Computer.Keyboard.SendKeys("{PGUP}", True)
b = True
Case "PRTSC" 'Print Screen - (reserved for future use) - FUNCIONA ?
My.Computer.Keyboard.SendKeys("{PRTSC}", True)
b = True
Case "SCROLLLOCK" 'Print Screen - (reserved for future use) - FUNCIONA ?
My.Computer.Keyboard.SendKeys("{SCROLLLOCK}", True)
b = True
Case "TAB" 'Print Screen - (reserved for future use) - FUNCIONA ?
My.Computer.Keyboard.SendKeys("{TAB} ", True)
b = True
Case "SETABAIXO"
My.Computer.Keyboard.SendKeys("{DOWN}", True)
b = True
Case "SETACIMA"
My.Computer.Keyboard.SendKeys("{UP}", True)
b = True
Case "SETAESQUERDA"
My.Computer.Keyboard.SendKeys("{LEFT}", True)
b = True
Case "SETADIREITA"
My.Computer.Keyboard.SendKeys("{RIGHT}", True)
b = True
Case "F1"
My.Computer.Keyboard.SendKeys("{F1}", True)
b = True
Case "F2"
My.Computer.Keyboard.SendKeys("{F2}", True)
b = True
Case "F3"
My.Computer.Keyboard.SendKeys("{F3}", True)
b = True
Case "F4"
My.Computer.Keyboard.SendKeys("{F4}", True)
b = True
Case "F5"
My.Computer.Keyboard.SendKeys("{F5}", True)
b = True
Case "F6"
My.Computer.Keyboard.SendKeys("{F6}", True)
b = True
Case "F7"
My.Computer.Keyboard.SendKeys("{F7}", True)
b = True
Case "F8"
My.Computer.Keyboard.SendKeys("{F8}", True)
b = True
Case "F9"
My.Computer.Keyboard.SendKeys("{F9}", True)
b = True
Case "F10"
My.Computer.Keyboard.SendKeys("{F10}", True)
b = True
Case "F11"
My.Computer.Keyboard.SendKeys("{F11}", True)
b = True
Case "F12"
My.Computer.Keyboard.SendKeys("{F12}", True)
b = True
Case "F13"
My.Computer.Keyboard.SendKeys("{F13}", True)
b = True
Case "F14"
My.Computer.Keyboard.SendKeys("{F14}", True)
b = True
Case "F15"
My.Computer.Keyboard.SendKeys("{F15}", True)
b = True
Case "F16"
My.Computer.Keyboard.SendKeys("{F16}", True)
b = True
Case "+"
My.Computer.Keyboard.SendKeys("{ADD}", True)
b = True
Case "-"
My.Computer.Keyboard.SendKeys("{SUBTRACT}", True)
b = True
Case "*"
My.Computer.Keyboard.SendKeys("{MULTIPLY}", True)
b = True
Case "/"
My.Computer.Keyboard.SendKeys("{DIVIDE}", True)
b = True
End Select