jiel2007
Messages postés17Date d'inscriptionmercredi 2 mars 2011StatutMembreDernière intervention10 septembre 2011
-
9 sept. 2011 à 19:23
jiel2007
Messages postés17Date d'inscriptionmercredi 2 mars 2011StatutMembreDernière intervention10 septembre 2011
-
10 sept. 2011 à 08:00
Bonjour,
J'ai un petit souci avec Visual basic 2008 express
Je suis sous XP pro SP3
J'ai réalisé un programme et, pour ne pas avoir le bandeau Windows affiché dans le bas de l'écran, j'ai déclaré pour Form1 que Top Most = True. Cela fonctionne bien et le bandeau est bien masqué.
Par contre, quand j'essaie d'afficher la calculatrice Windows, cette dernière reste invisible?
La calculatrice s'affiche derrière mon Form1 car quand je ferme mon programme, elle est bien présente sur l'écran.
Si je remets Pour Form1 Top Most = False, ma calculatrice apparaît bien au dessus de mon programme mais à ce moment là, le bandeau du bas d'écran est visible.
Comment faire pour afficher la calculatrice au dessus de mon Form1 avec Top Most = True ?
Voici le code que j'utilise actuellement dans le Button pour afficher la calculatrice :
Dim Affiche As Diagnostics.Process
Affiche Diagnostics.Process.Start("C:\Documents and Settings\All Users\Menu Démarrer\Programmes\Accessoires\calculatrice", Top Most True)
The Meteorologist
Messages postés232Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention 3 novembre 20111 9 sept. 2011 à 21:18
Bonsoir jiel2007,
Il faut donc définir la fenêtre de la calculatrice en topmost également
L'API SetForegroundWindow permet justement de faire cela, voici comment la déclarer :
DllImport["user32.dll"]
Public Shared Boolean SetForegroundWindow(IntPtr hWnd)
La fonction prend en paramètre le "Handle" de la fenêtre, voici par exemple comment tu pourrais le récupérer :
For Each p As Process In Process.GetProcessesByName("calc")
IntPtr handle = p.MainWindowHandle
Next
Ensuite il ne te reste plus qu'à appeller SetForegroundWindow avec le handle en paramètre: