loudo21
Messages postés5Date d'inscriptionmercredi 28 février 2007StatutMembreDernière intervention 3 mars 2008
-
3 mars 2008 à 20:32
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 2012
-
3 mars 2008 à 23:33
Bonjour.
J'ai un PC avec deux cartes graphiques qui chacune peut avoir deux ecran en mode etendue. J'aimerai pourvoir changer une fenetre d'ecran. J'arrive deja a recuperr son handle et à l'agrandir mais cela ne se fait que sur l'ecran sur lequel la fenetre se trouve. Il faudrait que je puisse specifier l'ecran auquel la fenetre apaprtient ou alors la deplacer en lui specifiant sa location en 2048;0 (si les ecrans sont en 1024*768).
[ DllImport( "user32.dll", SetLastError = true ) ]
private static extern bool SetWindowPos
(
IntPtr hWnd,
IntPtr hWndInsertAfter,
int X,
int Y,
int cx,
int cy,
uint uFlags
);
private void OpenAndMoveNotepad( int x, int y )
{
// Cherche si un nouvelle fenêtre de notepad est déja ouverte.
IntPtr hWnd = FindWindow( null, WINDOW_NAME );
// Ouvre une nouvelle fenêtre de notepad.
if ( hWnd == IntPtr.Zero )
{
Process p = Process.Start( "notepad.exe" );
p.WaitForInputIdle( 2000 );
hWnd = p.MainWindowHandle;
p.Close( );
p = null;
}
// Récupère le screen via le handle !
Screen screen = Screen.FromHandle( hWnd );
MessageBox.Show( screen.DeviceName );
loudo21
Messages postés5Date d'inscriptionmercredi 28 février 2007StatutMembreDernière intervention 3 mars 2008 3 mars 2008 à 21:48
Slt Lutinore.
En fait je n'ai pas regarder la classe System.Windows.Forms.Screen car je passe par les API Windows puisque je veux changer d'ecran des fenetres dont je n'ai pas le code source. Du genre tu prend Notepad et tu le mets en plein ecran sur un autre ecran.