J'ai écrit une application de sécurité de pilote WinForms pour une tablette Windows qui va vider l'écran (afficher une fenêtre en haut de l'écran plein vide) quand il détecte que la voiture se déplace à plus de 15km/h (en utilisant les tablettes GPS).Windows 8 .NET problème de mise en forme form.activate a un comportement différent lors de l'exécution avec débogueur
Le logiciel a bien fonctionné sous Windows 7, mais j'ai un peu de mal à le faire fonctionner sous Windows 8. Mon premier défi est d'afficher l'écran vide lorsque le menu de démarrage Metro est actuellement affiché. Donc, si l'utilisateur a le menu Démarrer de Metro affiché et que la voiture commence à rouler> 15 km/h, mon écran vide devrait s'afficher ... Je dois voler l'accent de l'interface de métro et afficher ma fenêtre vide sur le bureau.
Pour tester cela, j'ai écrit une simple application vb.net en 2010. Il avait une forme avec un tir de minuterie toutes les 3 secondes. En cas Tick j'avais le code:
Beep()
Me.Activate()
Quand je courais cela avec le débogueur et appuyé sur la touche Windows pour afficher le menu Démarrer Metro, cela a fonctionné ... L'accent rétablissait sur le bureau (et mon fenêtre). Cependant, lorsque j'ai lancé le programme sans le débogueur et que j'ai fait la même chose, j'ai entendu les bips, mais l'accent n'a jamais été rétabli sur le bureau.
Des idées pour lesquelles le comportement serait différent? Des idées sur la façon dont je réplique le même comportement que lorsque le débogueur est attaché?
J'ai essayé quelques choses comme AppActivate, en définissant le formulaire TopMost, BringToFront mais malheureusement cela n'a pas fonctionné.
La seule solution que j'ai trouvée est d'envoyer une frappe sur un bouton Windows mais cela a d'autres problèmes.
Merci Rob pour votre explication. Je ne pense pas qu'il existe un moyen de tromper Windows en pensant qu'un débogueur est attaché? – searcher