Ciao rooks,
Prova un po questo, ha quanche difetto e non sono sicuro che funzioni con qualsiasi eseguibile, giusto per provare:
Imports System.IO
Imports System.Threading
Public Class Form1
Public Declare Function MoveWindow Lib "user32.dll" (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
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim filePath As String = Application.StartupPath + "\cartellaUNO\FILE1.exe"
Dim psi As ProcessStartInfo = New ProcessStartInfo(filePath)
psi.WorkingDirectory = Path.GetDirectoryName(filePath)
Dim myProcess As Process = Process.Start(psi)
Dim result As Boolean = myProcess.WaitForInputIdle()
Thread.Sleep(1000) ' con questa funziona ma è una schifezza :)
Dim hWnd As IntPtr = myProcess.MainWindowHandle
result = MoveWindow(hWnd, 100, 100, 400, 400, True)
End Sub
End Class
Ho dovuto mettere uno Sleep altrimenti myProcess.MainWindowHandle mi ritorna zero, pensavo bastasse il myProcess.WaitForInputIdle().
L' effetto è che la finestra appare e dopo un poco viene spostata, ho provato a ridurre lo Sleep a 100 e funziona ancora e l' effetto è accettabile (magari prova pure a toglierlo del tutto, io ho usato per prova un exe fatto col Net Framework magari col tuo exe questo problema dello Sleep non c' è).