Private Const HWND_TOP As Int32 = 0 Private Const SWP_SHOWWINDOW As Int32 = &H40
<DllImport("user32.dll", SetLastError:=True)> _ Private Function SetWindowPos(ByVal hwnd As IntPtr, _ ByVal hWndInsertAfter As Int32, _ ByVal x As Int32, _ ByVal y As Int32, _ ByVal cx As Int32, _ ByVal cy As Int32, _ ByVal wFlags As Int32) As Int32 ' End Function
Public Sub Main()
Dim p As Process = Process.Start("iexplore")
' Ici on positionne la fenêtre au point (100, 100) avec une taille de (100, 100) ' La fonction renvoit 0 si elle plante, ' on renvoit donc une Win32Exception afin de récupérer l'erreur survenue ' Le paramètre SetLastError de l'attribute DLLImport, doit être initialiser à True si on veut que Marshal.GetLastWin32Error() ' nous renvoit le numéro de l'erreur Win32. If (SetWindowPos(p.MainWindowHandle, HWND_TOP, 100, 100, 100, 100, SWP_SHOWWINDOW) = 0) Then Throw New Win32Exception(Marshal.GetLastWin32Error()) End If
End Sub
End Module '***
-- Cordialement Yanick MVP pour Visual Basic
Salut Thierry!
Comment lancer une appli en précisant la taille et la position précise de
la
fenêtre ainsi ouverte ?
Je ne sais pas s'il existe une méthode entièrement .NET, mais tu peux
employer l'API SetWindowPos() pour parvenir à cette fin.
L'exemple suivant démarre IE, le positionne et le redimensionne :
'***
Option Explicit On
Private Const HWND_TOP As Int32 = 0
Private Const SWP_SHOWWINDOW As Int32 = &H40
<DllImport("user32.dll", SetLastError:=True)> _
Private Function SetWindowPos(ByVal hwnd As IntPtr, _
ByVal hWndInsertAfter As Int32, _
ByVal x As Int32, _
ByVal y As Int32, _
ByVal cx As Int32, _
ByVal cy As Int32, _
ByVal wFlags As Int32) As Int32
'
End Function
Public Sub Main()
Dim p As Process = Process.Start("iexplore")
' Ici on positionne la fenêtre au point (100, 100) avec une taille
de (100, 100)
' La fonction renvoit 0 si elle plante,
' on renvoit donc une Win32Exception afin de récupérer l'erreur
survenue
' Le paramètre SetLastError de l'attribute DLLImport, doit être
initialiser à True si on veut que Marshal.GetLastWin32Error()
' nous renvoit le numéro de l'erreur Win32.
If (SetWindowPos(p.MainWindowHandle, HWND_TOP, 100, 100, 100, 100,
SWP_SHOWWINDOW) = 0) Then
Throw New Win32Exception(Marshal.GetLastWin32Error())
End If
Private Const HWND_TOP As Int32 = 0 Private Const SWP_SHOWWINDOW As Int32 = &H40
<DllImport("user32.dll", SetLastError:=True)> _ Private Function SetWindowPos(ByVal hwnd As IntPtr, _ ByVal hWndInsertAfter As Int32, _ ByVal x As Int32, _ ByVal y As Int32, _ ByVal cx As Int32, _ ByVal cy As Int32, _ ByVal wFlags As Int32) As Int32 ' End Function
Public Sub Main()
Dim p As Process = Process.Start("iexplore")
' Ici on positionne la fenêtre au point (100, 100) avec une taille de (100, 100) ' La fonction renvoit 0 si elle plante, ' on renvoit donc une Win32Exception afin de récupérer l'erreur survenue ' Le paramètre SetLastError de l'attribute DLLImport, doit être initialiser à True si on veut que Marshal.GetLastWin32Error() ' nous renvoit le numéro de l'erreur Win32. If (SetWindowPos(p.MainWindowHandle, HWND_TOP, 100, 100, 100, 100, SWP_SHOWWINDOW) = 0) Then Throw New Win32Exception(Marshal.GetLastWin32Error()) End If
End Sub
End Module '***
-- Cordialement Yanick MVP pour Visual Basic
Zoury
naa! mauvais groupe.
voici le même exemple en C# pour les non-initiés à VB.NET //*** using System; using System.ComponentModel; using System.Diagnostics; using System.Runtime.InteropServices;
namespace SetWindowPosProject { public class MyApp {
[STAThread] static void Main() { Process p = Process.Start("iexplore"); // ici on positionne la fenêtre au point (100, 100) // avec une taille de (100, 100) // la fonction renvoit 0 si elle plante, on renvoit // donc une Win32Exception afin de récupérer l'erreur survenue // le paramètre SetLastError de l'attribute DLLImport, doit être // initialiser à True si on veut que Marshal.GetLastWin32Error() // nous renvoit le numéro de l'erreur Win32. if (SetWindowPos(p.MainWindowHandle, HWND_TOP, 100, 100, 100, 100, SWP_SHOWWINDOW) == 0) throw new Win32Exception(Marshal.GetLastWin32Error()); } } } //***
-- Cordialement Yanick MVP pour Visual Basic "Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news:%23k4P$8$
Salut Thierry!
> Comment lancer une appli en précisant la taille et la position précise
de
la > fenêtre ainsi ouverte ?
Je ne sais pas s'il existe une méthode entièrement .NET, mais tu peux employer l'API SetWindowPos() pour parvenir à cette fin.
L'exemple suivant démarre IE, le positionne et le redimensionne : '*** Option Explicit On
Private Const HWND_TOP As Int32 = 0 Private Const SWP_SHOWWINDOW As Int32 = &H40
<DllImport("user32.dll", SetLastError:=True)> _ Private Function SetWindowPos(ByVal hwnd As IntPtr, _ ByVal hWndInsertAfter As Int32, _ ByVal x As Int32, _ ByVal y As Int32, _ ByVal cx As Int32, _ ByVal cy As Int32, _ ByVal wFlags As Int32) As Int32 ' End Function
Public Sub Main()
Dim p As Process = Process.Start("iexplore")
' Ici on positionne la fenêtre au point (100, 100) avec une taille de (100, 100) ' La fonction renvoit 0 si elle plante, ' on renvoit donc une Win32Exception afin de récupérer l'erreur survenue ' Le paramètre SetLastError de l'attribute DLLImport, doit être initialiser à True si on veut que Marshal.GetLastWin32Error() ' nous renvoit le numéro de l'erreur Win32. If (SetWindowPos(p.MainWindowHandle, HWND_TOP, 100, 100, 100, 100, SWP_SHOWWINDOW) = 0) Then Throw New Win32Exception(Marshal.GetLastWin32Error()) End If
End Sub
End Module '***
-- Cordialement Yanick MVP pour Visual Basic
naa! mauvais groupe.
voici le même exemple en C# pour les non-initiés à VB.NET
//***
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace SetWindowPosProject
{
public class MyApp
{
[STAThread]
static void Main()
{
Process p = Process.Start("iexplore");
// ici on positionne la fenêtre au point (100, 100)
// avec une taille de (100, 100)
// la fonction renvoit 0 si elle plante, on renvoit
// donc une Win32Exception afin de récupérer l'erreur survenue
// le paramètre SetLastError de l'attribute DLLImport, doit être
// initialiser à True si on veut que Marshal.GetLastWin32Error()
// nous renvoit le numéro de l'erreur Win32.
if (SetWindowPos(p.MainWindowHandle, HWND_TOP, 100, 100, 100, 100,
SWP_SHOWWINDOW) == 0)
throw new Win32Exception(Marshal.GetLastWin32Error());
}
}
}
//***
--
Cordialement
Yanick
MVP pour Visual Basic
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:%23k4P$8$HFHA.2656@TK2MSFTNGP09.phx.gbl...
Salut Thierry!
> Comment lancer une appli en précisant la taille et la position précise
de
la
> fenêtre ainsi ouverte ?
Je ne sais pas s'il existe une méthode entièrement .NET, mais tu peux
employer l'API SetWindowPos() pour parvenir à cette fin.
L'exemple suivant démarre IE, le positionne et le redimensionne :
'***
Option Explicit On
Private Const HWND_TOP As Int32 = 0
Private Const SWP_SHOWWINDOW As Int32 = &H40
<DllImport("user32.dll", SetLastError:=True)> _
Private Function SetWindowPos(ByVal hwnd As IntPtr, _
ByVal hWndInsertAfter As Int32, _
ByVal x As Int32, _
ByVal y As Int32, _
ByVal cx As Int32, _
ByVal cy As Int32, _
ByVal wFlags As Int32) As Int32
'
End Function
Public Sub Main()
Dim p As Process = Process.Start("iexplore")
' Ici on positionne la fenêtre au point (100, 100) avec une taille
de (100, 100)
' La fonction renvoit 0 si elle plante,
' on renvoit donc une Win32Exception afin de récupérer l'erreur
survenue
' Le paramètre SetLastError de l'attribute DLLImport, doit être
initialiser à True si on veut que Marshal.GetLastWin32Error()
' nous renvoit le numéro de l'erreur Win32.
If (SetWindowPos(p.MainWindowHandle, HWND_TOP, 100, 100, 100, 100,
SWP_SHOWWINDOW) = 0) Then
Throw New Win32Exception(Marshal.GetLastWin32Error())
End If
voici le même exemple en C# pour les non-initiés à VB.NET //*** using System; using System.ComponentModel; using System.Diagnostics; using System.Runtime.InteropServices;
namespace SetWindowPosProject { public class MyApp {
[STAThread] static void Main() { Process p = Process.Start("iexplore"); // ici on positionne la fenêtre au point (100, 100) // avec une taille de (100, 100) // la fonction renvoit 0 si elle plante, on renvoit // donc une Win32Exception afin de récupérer l'erreur survenue // le paramètre SetLastError de l'attribute DLLImport, doit être // initialiser à True si on veut que Marshal.GetLastWin32Error() // nous renvoit le numéro de l'erreur Win32. if (SetWindowPos(p.MainWindowHandle, HWND_TOP, 100, 100, 100, 100, SWP_SHOWWINDOW) == 0) throw new Win32Exception(Marshal.GetLastWin32Error()); } } } //***
-- Cordialement Yanick MVP pour Visual Basic "Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news:%23k4P$8$
Salut Thierry!
> Comment lancer une appli en précisant la taille et la position précise
de
la > fenêtre ainsi ouverte ?
Je ne sais pas s'il existe une méthode entièrement .NET, mais tu peux employer l'API SetWindowPos() pour parvenir à cette fin.
L'exemple suivant démarre IE, le positionne et le redimensionne : '*** Option Explicit On
Private Const HWND_TOP As Int32 = 0 Private Const SWP_SHOWWINDOW As Int32 = &H40
<DllImport("user32.dll", SetLastError:=True)> _ Private Function SetWindowPos(ByVal hwnd As IntPtr, _ ByVal hWndInsertAfter As Int32, _ ByVal x As Int32, _ ByVal y As Int32, _ ByVal cx As Int32, _ ByVal cy As Int32, _ ByVal wFlags As Int32) As Int32 ' End Function
Public Sub Main()
Dim p As Process = Process.Start("iexplore")
' Ici on positionne la fenêtre au point (100, 100) avec une taille de (100, 100) ' La fonction renvoit 0 si elle plante, ' on renvoit donc une Win32Exception afin de récupérer l'erreur survenue ' Le paramètre SetLastError de l'attribute DLLImport, doit être initialiser à True si on veut que Marshal.GetLastWin32Error() ' nous renvoit le numéro de l'erreur Win32. If (SetWindowPos(p.MainWindowHandle, HWND_TOP, 100, 100, 100, 100, SWP_SHOWWINDOW) = 0) Then Throw New Win32Exception(Marshal.GetLastWin32Error()) End If