Changer l'espace utilisable du bureau [Résolu]

Signaler
Messages postés
33
Date d'inscription
samedi 16 décembre 2006
Statut
Membre
Dernière intervention
6 mars 2007
-
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
-
Bonjour,

Je cherche à modifier l'espace utilisable du bureau, c'est à dire l'espace maximale que peut occuper une fenêtre. J'ai besoin de le faire afin d'ajouter une barre juste au dessus de la barre démarrer.

Cela fait une éternitée que je cherche partout, mais je ne trouve rien.

Donc si quelqu'un a une solution VB 2005 ou simplement une façon de le faire autre que par programmation...

Merci.

FallenMax

39 réponses

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Je viens de déposer un exemple de ce que tu recherches....rien de compliqué en sommes.http://www.vbfrance.com/code.aspx?ID=40760

A toi de jouer maintenant.....
Bon courage ++
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Salut,
Voici peut-être une piste:
SystemParametersInfo http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/systemparametersinfo.asp
Et plus particulièrement le paramètre SPI_SETWORKAREA. (Const SPI_SETWORKAREA = 47)

Déclaration de cette fonction de l'api en vb.net ainsi que la structure RECT dont tu auras besoin.
http://www.pinvoke.net/default.aspx/user32/SystemParametersInfo.html
http://www.pinvoke.net/default.aspx/Structures/RECT.html

++
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Essaye avec la fonction GetSystemMetrics de la librairie "user32"
paramètre nIndex (le seul d'ailleurs)
Flags SM_CXFULLSCREEN, SM_CYFULLSCREEN

" Width and height of the client area for a full-screen window. To get the coordinates of the portion of the screen not obscured by the tray, call the SystemParametersInfo function with the SPI_GETWORKAREA value."

Je n'ai pas essayyé, mais pense que c'est celà ...
Messages postés
33
Date d'inscription
samedi 16 décembre 2006
Statut
Membre
Dernière intervention
6 mars 2007

Le problème, c'est que je ne sais pas comment utliser la fontion après l'avoir déclarée...
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Il te faut certes toujours "bûcher" un peu pour mériter les choses.

Maintenant : si ta gêne est simplement la barre de tâches, il te suffit de la paramétrer (avec windows) pour la rendre escamotable quand ton curseur ne survole pas l'endroit où elle est.
Messages postés
33
Date d'inscription
samedi 16 décembre 2006
Statut
Membre
Dernière intervention
6 mars 2007

Lol, je "buche" depuis 3 jours... je pense que c'est le temps pour moi d'obtenir de l'aide.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Et cette façon de procéder t'évitera de modifier (de façon figée) les paramètres de Windows ou de tout remodifier à chaque fois que tu modifies ta barre !
Messages postés
33
Date d'inscription
samedi 16 décembre 2006
Statut
Membre
Dernière intervention
6 mars 2007

Non ce que je veux, c'est pas du tout masquer la barre, mais en ajouter une autre coder par moi-même. Seulement, ne voulant pas que cette barre cache les fenetres ou soit cach.ées par elles, je dois modifier la taille maximale que les fenetres peuvent prendre.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Il te faut certes toujours "bûcher" un peu pour mériter les choses.

Maintenant : si ta gêne est simplement la barre de tâches, il te suffit de la paramétrer (avec windows) pour la rendre escamotable quand ton curseur ne survole pas l'endroit où elle est.
Messages postés
33
Date d'inscription
samedi 16 décembre 2006
Statut
Membre
Dernière intervention
6 mars 2007

Ca ne sert à rien de me répeter quelquechose que je viens de te dire que je ne veux pas faire.

Je ne veux pas changer la barre de tâches pour la mienne, mais bien mettre la mienne au dessus (pas PAR dessus) de celle-ci.
Messages postés
33
Date d'inscription
samedi 16 décembre 2006
Statut
Membre
Dernière intervention
6 mars 2007

J'essai, mais ca me dit toujours : La valeur n'est pas comprise dans la plage attendue.

Voici mon code:

  Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Integer, _

      ByVal uParam As Object, ByVal lpvParam As Object, _

      ByVal fuWinIni As Integer) As Integer

    Public Structure RECT

        Public Left As Integer

        Public Top As Integer

        Public Right As Integer

        Public Bottom As Integer

        Public Sub New(ByVal pLeft As Integer, ByVal pTop As Integer, ByVal pRight As Integer, ByVal pBottom As Integer)

        Left = pLeft

        Top = pTop

        Right = pRight

        Bottom = pBottom

        End Sub

        Public ReadOnly Property Height() As Integer

        Get

            Return Bottom - Top

        End Get

        End Property

        Public ReadOnly Property Width() As Integer

        Get

            Return Right - Left

        End Get

        End Property

        Public ReadOnly Property Location() As Point

        Get

            Return New Point(Left, Top)

        End Get

        End Property

        Public ReadOnly Property Size() As Size

        Get

            Return New Size(Width, Height)

        End Get

        End Property

        Public Function ToRectangle() As Rectangle

        Return Rectangle.FromLTRB(Me.Left, Me.Top, Me.Right, Me.Bottom)

        End Function

        Public Shared Function ToRectangle(ByVal sourceRect As RECT) As Rectangle

        Return Rectangle.FromLTRB(sourceRect.Left, sourceRect.Top, sourceRect.Right, sourceRect.Bottom)

        End Function

        Public Shared Function FromRectangle(ByVal r As Rectangle) As RECT

        Return New RECT(r.Left, r.Top, r.Right, r.Bottom)

        End Function

    End Structure

  Private Sub frmPrincipal_Load(ByVal sender As Object, _

                                ByVal e As System.EventArgs) _

                                Handles Me.Load

    Dim BureauRECT As New RECT(0, 0, 1280, 900)

    SystemParametersInfo(47, 0, BureauRECT, 0)

....
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Ecoute, ami,

Je ne t'aiderai pas à faire cette bêtise-là, car elle aurait pour conséquence de figer ainsi les paramètres de Windows jusqu'à ce que tu en décides autrement (et que tu te rapelles ce qu'il y a à faire et les valeurs à modifier) !

Voyons un peu la chose ensemble :

1) s'il s'agit de faire en sorte qu'une application VB ne soit pas gênée, on peut s'y prendre autrement, pour cette application-là

2) s'il s'agit d'utiliser VB pour aller modifier les paramètres des fenêtres de Windows : je ne serai pas là le "complice", même amical, de ce machin dont, de surcroît, rien ne m'assurera jamais qu'il ne sera pas un jour inclus dans une application qui (hé oui) irait modifier les paramètres d'une autre machine.
Je t'ai signalé une fonction. Une autre t'a également été signalée. Si tu veux jouer avec ces fonctions, tu joueras sans moi. Désolé.
Messages postés
33
Date d'inscription
samedi 16 décembre 2006
Statut
Membre
Dernière intervention
6 mars 2007

Lol, ne pogons pas les nerfs. Je veux bien tenter l'option 1, mais il te faudra m'expliquer quoi faire.
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Ont peut jouer sans les fonctions api données dans nos réponses précédentes. Il te suffit de mettre ta feuille toujours au premier plan et d'empecher de la redimensionner ou de la déplacer et basta c'est réglé tu as ta barre perso. Le tout peut-être fait dans les propriétés de ta feuille. Je suis plutôt d'accord avec Jmfmarques.

++
Messages postés
33
Date d'inscription
samedi 16 décembre 2006
Statut
Membre
Dernière intervention
6 mars 2007

Est-ce que le fait de la mettre au premier plan empêchera les autres fenêtres de se situer en dessous? J'ai comme un doute,lol.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Dans le doute, 2 méthodes :
1) on essaye, on voit... et on adapte à sa sauce, au besoin.
2) on s'abstient

A toi de décider si tu essayes (sans aucun danger) ou préfère t'abstenir, donc...
Messages postés
33
Date d'inscription
samedi 16 décembre 2006
Statut
Membre
Dernière intervention
6 mars 2007

Déja, il faudrait que je sache comment faire pour mettre toujours un form au premier plan
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Déjà, bien sur...

Et, toujours "déjà", tu pourrais lire le règlement... puis faire une petite recherche... puis lire... ma foi !

Bon ! Tu es nouveau... mais quand-même ... voilà ce qui m'a "coûté" moins de 20 secondes, (entre autres) :

http://files.codes-sources.com/fichier.aspx?id=261&f=form1.Frm


S'il te plait : fais au moins comme chacun... (c'est moins compliqué que développer, çà , non ?)
Messages postés
33
Date d'inscription
samedi 16 décembre 2006
Statut
Membre
Dernière intervention
6 mars 2007

De un, j'ai chercher pendant 3 jours quelquechose que tu dis être une bêtise, alors épargne moi le ton que tu utilise.

De deux, tu savais quoi chercher alors que je ne savais même pas de quoi vous parliez.

De trois, le code que tu m'envoi ah beau avoir été trouvé en 20 secs... et bien il semble qu'il ne marche pas version 2005. On me dit que hwnd n'est pas un membre de mon formulaire.

Alors s'il-vous-plaît cesse de me traiter comme un moins que rien. Merci.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Que veux-tu dire, ami ?
Que VB.Net ne sait pas appeler la fonction SetWindowPos de la librairie user32 ?