2010-05-07 7 views
2

Je lance IE en tant que processus, puis je voudrais changer les propriétés suivantes d'une application.changer le style des fenêtres de l'application

  1. supprimer la barre de titre, barre d'outils d'une application (si IE)
  2. set top, emplacement gauche et la taille à C#
  3. empêchent processus de minimisation, i ont utilisé le code suivant mais n'a pas eu de chance (trouver la poignée du processus et de passer ensuite au-dessous de fonction)

    public void SetFormOnDesktop(int hwnd) 
    { 
        int hwndf = hwnd; 
        IntPtr hwndParent = FindWindow("ProgMan", null); 
        SetParent(hwndf, hwndParent); 
    } 
    

EDIT 1:
Est-il possible d'éviter le menu contextuel IE et l'empêcher de montrer sur la barre des tâches

+1

Tous ces éléments ne sont pas des propriétés d'un * processus *, mais d'une * fenêtre *. Cela pourrait vous aider à mieux chercher des réponses. – Thomas

+0

Je sais que tous ces éléments ne sont pas des propriétés d'un processus. est-il possible de définir/modifier les propriétés via Win api –

+0

Je ne sais pas si cela peut être fait en tirant parti de quelque chose dans le cadre, mais il peut être fait en piratant le handle de fenêtre IE de l'API Win32 et en le manipulant .T recommandons de lire http://stackoverflow.com/questions/2328931/how-do-i-find-the-window-handle-for-a-running-process –

Répondre

1

supprimer la barre de titre, barre d'outils d'un processus (si IE)

La terminologie n'est pas tout à fait juste ici. Une barre de titre ou une barre d'outils appartient à une fenêtre, pas un processus. Et une fenêtre "appartient" à un processus, dans le sens où un processus peut appeler CreateWindow.

Maintenant, pour supprimer la barre de titre supprimer le style WS_CAPTION de la fenêtre, pour ce faire, vous pouvez appeler SetWindowLong avec le drapeau GWL_STYLE et utiliser l'opérateur tilde pour le supprimer:

SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd) & ~WS_CAPTION); 

set top , l'emplacement et la taille gauche à C#

SetWindowPos peut faire les deux

éviter processus de minimiser ...

fenêtre, non processus, vous ne pouvez pas, eh bien, vous pouvez sorte de supprimer les commandes de la barre de titre, mais qui enlève maximiser et fermer ainsi, si vous Je veux juste voir WS_SYSMENU

2

On dirait que vous voulez utiliser Internet Explorer's Kiosk Mode, qui fournit un plein écran, toolbarless, fenêtre non minimizable.

S'il vous plaît vérifier le lien pour plus d'informations précédente et, euh, moi :) Voter

+0

grâce à @mark. comment changer l'emplacement et la taille –

+0

vous ne pouvez pas, en mode kiosque la fenêtre est maximisée! peut-être devriez-vous accorder plus d'attention à une réponse en premier? –

1

Voici un SO answer j'ai donné à changer le style d'une fenêtre. (Il est en VB.NET donc vous devrez traduire, mais il devrait vous aider à obtenir l'idée.)

1

Juste une idée: cela aiderait-il si vous ne démarrez pas IE en tant que processus séparé (essentiellement: ouvrir un navigateur et le libérer totalement de votre contrôle), mais utilisez un formulaire dans votre application C# que vous contrôlez - taille, emplacement, pas de barre de titre, pas de réduction autorisée - avec (juste?) un contrôle WebBrowser dessus? Le WebBrowser est fondamentalement juste IE de toute façon mais ensuite comme un contrôle sur votre formulaire, que vous avez un contrôle (presque) total sur.

+0

J'aime votre idée mais déjà je l'ai essayé. mon application consomme trop de mémoire pour rendre un site web. donc j'ai essayé avec une application externe –

Questions connexes