Changer l'espace utilisable du bureau

Résolu
fallenmax Messages postés 33 Date d'inscription samedi 16 décembre 2006 Statut Membre Dernière intervention 6 mars 2007 - 16 déc. 2006 à 17:26
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 - 18 déc. 2006 à 22:42
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

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
17 déc. 2006 à 17:48
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 ++
3
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
16 déc. 2006 à 17:48
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

++
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 déc. 2006 à 17:53
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à ...
0
fallenmax Messages postés 33 Date d'inscription samedi 16 décembre 2006 Statut Membre Dernière intervention 6 mars 2007
16 déc. 2006 à 18:01
Le problème, c'est que je ne sais pas comment utliser la fontion après l'avoir déclarée...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 déc. 2006 à 18:10
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.
0
fallenmax Messages postés 33 Date d'inscription samedi 16 décembre 2006 Statut Membre Dernière intervention 6 mars 2007
16 déc. 2006 à 18:11
Lol, je "buche" depuis 3 jours... je pense que c'est le temps pour moi d'obtenir de l'aide.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 déc. 2006 à 18:12
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 !
0
fallenmax Messages postés 33 Date d'inscription samedi 16 décembre 2006 Statut Membre Dernière intervention 6 mars 2007
16 déc. 2006 à 18:14
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.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 déc. 2006 à 18:19
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.
0
fallenmax Messages postés 33 Date d'inscription samedi 16 décembre 2006 Statut Membre Dernière intervention 6 mars 2007
16 déc. 2006 à 18:21
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.
0
fallenmax Messages postés 33 Date d'inscription samedi 16 décembre 2006 Statut Membre Dernière intervention 6 mars 2007
16 déc. 2006 à 18:27
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)

....
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 déc. 2006 à 20:04
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é.
0
fallenmax Messages postés 33 Date d'inscription samedi 16 décembre 2006 Statut Membre Dernière intervention 6 mars 2007
16 déc. 2006 à 20:07
Lol, ne pogons pas les nerfs. Je veux bien tenter l'option 1, mais il te faudra m'expliquer quoi faire.
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
16 déc. 2006 à 20:12
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.

++
0
fallenmax Messages postés 33 Date d'inscription samedi 16 décembre 2006 Statut Membre Dernière intervention 6 mars 2007
16 déc. 2006 à 20:15
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.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 déc. 2006 à 20:27
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...
0
fallenmax Messages postés 33 Date d'inscription samedi 16 décembre 2006 Statut Membre Dernière intervention 6 mars 2007
16 déc. 2006 à 20:50
Déja, il faudrait que je sache comment faire pour mettre toujours un form au premier plan
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 déc. 2006 à 21:15
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 ?)
0
fallenmax Messages postés 33 Date d'inscription samedi 16 décembre 2006 Statut Membre Dernière intervention 6 mars 2007
16 déc. 2006 à 22:11
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.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
17 déc. 2006 à 09:24
Que veux-tu dire, ami ?
Que VB.Net ne sait pas appeler la fonction SetWindowPos de la librairie user32 ?
0
Rejoignez-nous