Bonjour,
Je tente depuis ce matin de trouver une solution pour ouvrir des documents avec ShellExecute (ça c'est ok).
Mais je souhaiterais que le document s'ouvre sur mon écran secondaire (affichage étendu).
Est-ce possible?
Merci
Bonjour,
Je tente depuis ce matin de trouver une solution pour ouvrir des documents avec ShellExecute (ça c'est ok).
Mais je souhaiterais que le document s'ouvre sur mon écran secondaire (affichage étendu).
Est-ce possible?
Merci
Xavier
Salut Asdorve
Regardes mes intervention dans cette discution Affichage aléatoire d'une fenêtre d'exécution d'un shell (fonction ExecCmd) sous VBA 6.......
le document s'ouvre sur mon écran secondaire (affichage étendu).
A partir du post 7, je propose une solution pour récupérer le Hwnd d'un programme externe lancé avec un simple Shell.
2 méthodes, récupérer le Hwnd suivant le titre du programme ou bien par son nom de Class.
Si l'une des 2 méthodes te permet de récupérer le Hwnd , le positionnement du programme externe pourra être fait à l'aide de la fonction MoveWindow.
Pour calculer le left pour le deuxième écran, il faut lui ajouter le Screen.Width de l'écran 1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Option Explicit '.... '.... Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long Dim RectanglE As RECT Dim HwndWindow As Long Private Declare Function MoveWindow Lib "user32" ( _ ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, _ ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long '-------------------------------------------------------------------------------------------------- Private Sub DeplacerProgExter() Dim TheLeft As Long, TheTop As Long, TheWidth As Long, TheHeight As Long GetWindowRect HwndWindow, RectanglE 'position et dimensions du programme lancé avec le Shell TheLeft = ScaleX(Screen.Width, vbTwips, vbPixels) '= bord gauche de l'écran 2 TheTop = 0 TheWidth = RectanglE.Right - RectanglE.Left 'Mémo de la largeur du programme lancé TheHeight = RectanglE.Bottom - RectanglE.Top 'Mémo de la hauteur du programme lancé 'deplacement du programme lancé sur l'écran N°2 MoveWindow HwndWindow, TheLeft, TheTop, TheWidth, TheHeight, True End Sub '--------------------------------------------------------------------------------------------------
Soyez sympa, pensez -y
Balises[CODE]...[/CODE]
Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
Balises[C]...[/C] code intégré dans une phrase.
Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
👉 → → Ma page perso sur DVP ← ← 👈
Merci beaucoup.
ça correspond à ce que je recherche.
A bientôt
Xavier
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager