Calculatrice Windows

Résolu
jiel2007 Messages postés 17 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 10 septembre 2011 - 9 sept. 2011 à 19:23
jiel2007 Messages postés 17 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 10 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)

Merci à tous.

4 réponses

Utilisateur anonyme
9 sept. 2011 à 20:48
Bonsoir,

Il vaudrait mieux utiliser un splashscreen (écran de démarrage) à ton projet.

Bonne soirée.
3
The Meteorologist Messages postés 232 Date d'inscription jeudi 18 janvier 2007 Statut Membre Dernière intervention 3 novembre 2011 1
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:

SetForegroundWindow(handle)


Cela devrait fonctionner ;)

Simon
3
Utilisateur anonyme
9 sept. 2011 à 21:37
Bonne idée oui, car le splashscreen n'empêche pas la barre des tâches d'apparaitre.
J'ai donc suggéré une bêtise
3
jiel2007 Messages postés 17 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 10 septembre 2011
10 sept. 2011 à 08:00
Merci à tous les deux pour vos conseils.
Je vais essayer cela ce week-end

Jean-Luc
0
Rejoignez-nous