Rendre le processus de fenêtre visible/Invisible dans .NET
J'ai mon application, dans lequel je suis en train de créer un nouveau processus. Mais j'ai besoin de redimensionner la fenêtre dans le processus d'ajustement dans mon exigence. Mais d'abord, le processus ouvre la fenêtre en taille normale et puis j'ai la redimensionner à la taille. Il est bizarre. Je peux donc commencer le processus avec le winodw en mode invisible, puis la redimensionner, puis de le rendre visible?
ProcessStartInfo startInfo = new ProcessStartInfo("myApp.exe");
MyApp = Process.Start(startInfo);
Thread.Sleep(2000);
MoveWindow(MyApp.MainWindowHandle, 0, 380, 2040, 1150, true);
- Parlez-vous une Windows form ou un service windows ? Vous dire le service toutefois, les services ne contiennent généralement pas d'INTERFACE utilisateur.
- il serait peut-être même mieux à faire myApp.exe prenez la ligne de commande arguments et de les redimensionner lui-même - pas d'attente, pas bizarre
- Sur une note de côté
Thread.Sleep(2000)
me fait grincer des dents. Est-il un moyen que vous pouvez tester si la fenêtre est chargé et boucle jusqu'à ce qu'il se passe? - Je l'ai dit processus. C'est juste un exe comme dire IE ou le bloc-notes
- Pas possible. Comme je n'ai pas le code source pour le fichier exe
- Le sommeil est coz il faut du temps pour que la Fenêtre de chargement. J'ai essayé sans et ça ne fonctionne pas.
- Je comprends, mais comment pouvez-vous garantir que le programme va se charger en moins de 2 secondes? Peu importe, c'est une question distincte et je suis hors sujet.
Vous devez vous connecter pour publier un commentaire.
Essayé
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
avant .Start() appel à cacher? Et ensuite utiliser votre code pour l'afficher?Comme ceci:
Pour afficher la fenêtre d'importation de cette méthode:
Ensuite l'appeler après MoveWindow fonction:
ShowWindow(MyApp.MainWindowHandle, 1);
Cela devrait fonctionner pour les fenêtres qui sont présentées pour la première fois... Heres le reste de la nCmdShow valeurs, essayer quelques-uns: msdn.microsoft.com/en-us/library/ms633548(v=vs. 85).aspxShowWindowAsync
pour Windows vous n'avez pas à éviter les résultats irréguliersSelon http://msdn.microsoft.com/en-us/library/ms633548%28v=vs.85%29.aspx vous devez utiliser ShowWindowAsync pour Windows vous n'avez pas à éviter les résultats irréguliers.
considérant que vous êtes en utilisant un panneau où votre processus de chargement..
vous pouvez utiliser cette ligne de code