OVH Cloud OVH Cloud

Barre de tâche

15 réponses
Avatar
bahn po
Hello repetita

La barre de tâche étant amovible et de hauteur variable, comment savoir
si elle est visible ou pas ? Je voudrais placer une barre au dessus de
celle-ci, mais comme sa taille est variable... voir sa position.

Merci.

5 réponses

1 2
Avatar
Jacques93
bahn po a écrit :
Le 14/03/2009, Jacques93 a supposé :
Bonjour bahn po,
bahn po a écrit :
Hello repetita

La barre de tâche étant amovible et de hauteur variable, comment
savoir si elle est visible ou pas ? Je voudrais placer une barre au
dessus de celle-ci, mais comme sa taille est variable... voir sa
position.








Petits compléments :

Tout d'abord, la classe "Shell-TrayWnd" est opérationnelle sur W2K, XP,
Vista, Seven (je viens de vérifier pour Seven)...

On peux aussi utiliser d'autres APIs, comme :

SystemParametersInfos

<http://msdn.microsoft.com/en-us/library/ms724947(VS.85).aspx>

GetSystemMetrics

<http://msdn.microsoft.com/en-us/library/ms724385(VS.85).aspx>

' Module
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Public Const SPI_GETWORKAREA = 48
Public Const SM_CXSCREEN = 0
Public Const SM_CYSCREEN = 1

Public Declare Function SystemParametersInfo Lib "user32" Alias
"SystemParametersInfoA" _
(ByVal uAction As Long, ByVal uParam As Long, _
ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long

Public Declare Function GetSystemMetrics Lib "user32" _
(ByVal nIndex As Long) As Long

' Feuille
Private Sub Command2_Click()
Dim lResult As Long
Dim cx As Long, cy As Long
Dim rc As RECT

cx = GetSystemMetrics(SM_CXSCREEN)
cy = GetSystemMetrics(SM_CYSCREEN)
lResult = SystemParametersInfo(SPI_GETWORKAREA, 0&, rc, 0&)
Debug.Print "Résolution écran : " & _
cx & "x" & cy
Debug.Print "Zone de travail : " & _
"(" & rc.Left & "," & rc.Top & ")-(" & _
rc.Right & "," & rc.Bottom & ")"
End Sub
' --------------------------------------------------------------

On peut obtenir la même chose avec le composant 'Microsoft Sysinfo
Control 6.0' (Sysinfo.ocx) :

Private Sub Command3_Click()
With Screen
Debug.Print "Résolution écran : " & _
.Width / .TwipsPerPixelX & "x" & _
.Height / .TwipsPerPixelY
End With

With SysInfo1
Debug.Print "Zone de travail : (" & _
.WorkAreaLeft / Screen.TwipsPerPixelX & "," & _
.WorkAreaTop / Screen.TwipsPerPixelY & ")-(" & _
.WorkAreaWidth / Screen.TwipsPerPixelX & "," & _
.WorkAreaHeight / Screen.TwipsPerPixelY & ")"
End With
End Sub

' --------------------------------------------------------------------
Ce contrôle présente l'intérêt de détecter un changement de résolution
écran grâce à l'événement :

SysInfo1_DisplayChanged()

et, également, un déplacement de la barre de tâche avec :

SysInfo1_SettingChanged(ByVal Item As Integer)


Et, une API spécifique (que je n'ai jamais utilisé) :

<http://msdn.microsoft.com/en-us/library/bb762108(VS.85).aspx>

Bonne journée :-)
--

Cordialement,

Jacques.
Avatar
Jacques93
Alexis a écrit :
Jean-marc wrote:

Comme il ne faut pas perdre une occasion de donner une
info utile, voici comment on fait (avec les API, s'il vous
plait!!):



Achète l'Appleman et le Petzold, car il y a effectivement du boulot....



Je ne parlerai que de ce que je connais, les cactus :

<http://fr.wikipedia.org/wiki/Peyotl>

et franchement, c'est pas fatiguant, voire même hilarant ...

--

Cordialement,

Jacques.
Avatar
Driss HANIB
Salut Jacques

merci pour tes infos. come toujours très complètes
je vais étudier tout cela.

Comme tu vois toujours des Pro de VB , surtout spécialistes du YAKAFOKON..
(peut être des vrais d'ailleurs).

Par contre pour fournir un exemple : zéro pointé.
Heureusement que JM , toi et d'autres font avancer le débat.
je crois que je vais les "klonguer"

A bientot

Cordialement

Driss



"Jacques93" a écrit dans le message de news:
uz4JN$
bahn po a écrit :
Le 14/03/2009, Jacques93 a supposé :
Bonjour bahn po,
bahn po a écrit :
Hello repetita

La barre de tâche étant amovible et de hauteur variable, comment savoir
si elle est visible ou pas ? Je voudrais placer une barre au dessus de
celle-ci, mais comme sa taille est variable... voir sa position.








Petits compléments :

Tout d'abord, la classe "Shell-TrayWnd" est opérationnelle sur W2K, XP,
Vista, Seven (je viens de vérifier pour Seven)...

On peux aussi utiliser d'autres APIs, comme :

SystemParametersInfos

<http://msdn.microsoft.com/en-us/library/ms724947(VS.85).aspx>

GetSystemMetrics

<http://msdn.microsoft.com/en-us/library/ms724385(VS.85).aspx>

' Module
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Public Const SPI_GETWORKAREA = 48
Public Const SM_CXSCREEN = 0
Public Const SM_CYSCREEN = 1

Public Declare Function SystemParametersInfo Lib "user32" Alias
"SystemParametersInfoA" _
(ByVal uAction As Long, ByVal uParam As Long, _
ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long

Public Declare Function GetSystemMetrics Lib "user32" _
(ByVal nIndex As Long) As Long

' Feuille
Private Sub Command2_Click()
Dim lResult As Long
Dim cx As Long, cy As Long
Dim rc As RECT

cx = GetSystemMetrics(SM_CXSCREEN)
cy = GetSystemMetrics(SM_CYSCREEN)
lResult = SystemParametersInfo(SPI_GETWORKAREA, 0&, rc, 0&)
Debug.Print "Résolution écran : " & _
cx & "x" & cy
Debug.Print "Zone de travail : " & _
"(" & rc.Left & "," & rc.Top & ")-(" & _
rc.Right & "," & rc.Bottom & ")"
End Sub
' --------------------------------------------------------------

On peut obtenir la même chose avec le composant 'Microsoft Sysinfo Control
6.0' (Sysinfo.ocx) :

Private Sub Command3_Click()
With Screen
Debug.Print "Résolution écran : " & _
.Width / .TwipsPerPixelX & "x" & _
.Height / .TwipsPerPixelY
End With

With SysInfo1
Debug.Print "Zone de travail : (" & _
.WorkAreaLeft / Screen.TwipsPerPixelX & "," & _
.WorkAreaTop / Screen.TwipsPerPixelY & ")-(" & _
.WorkAreaWidth / Screen.TwipsPerPixelX & "," & _
.WorkAreaHeight / Screen.TwipsPerPixelY & ")"
End With
End Sub

' --------------------------------------------------------------------
Ce contrôle présente l'intérêt de détecter un changement de résolution
écran grâce à l'événement :

SysInfo1_DisplayChanged()

et, également, un déplacement de la barre de tâche avec :

SysInfo1_SettingChanged(ByVal Item As Integer)


Et, une API spécifique (que je n'ai jamais utilisé) :

<http://msdn.microsoft.com/en-us/library/bb762108(VS.85).aspx>

Bonne journée :-)
--

Cordialement,

Jacques.


Avatar
Jacques93
Bonjour Driss,
Driss HANIB a écrit :
Salut Jacques

merci pour tes infos. come toujours très complètes



Merci :-)

je vais étudier tout cela.

Comme tu vois toujours des Pro de VB , surtout spécialistes du YAKAFOKON..
(peut être des vrais d'ailleurs).

Par contre pour fournir un exemple : zéro pointé.
Heureusement que JM , toi et d'autres font avancer le débat.
je crois que je vais les "klonguer"



Euh, 'Plonker' non ? ;-)

<http://dictionnaire.phpmyvisites.net/definition-Plonker-9926.htm>


C'est vrai qu'ils rendent le forum un peu moins agréable à consulter :-(
Ils se lasseront peut être ...


--

Cordialement,

Jacques.
Avatar
Driss HANIB
Oups

il ya bien longtemps que je ne l'ai pas fait alors j'ai oublié le terme : le
me suis souvenu seulement et vaguement de la phonétique :o(
mais "le coeur y était !"
Driss

"Jacques93" a écrit dans le message de news:

Bonjour Driss,
Driss HANIB a écrit :
Salut Jacques

merci pour tes infos. come toujours très complètes



Merci :-)

je vais étudier tout cela.

Comme tu vois toujours des Pro de VB , surtout spécialistes du
YAKAFOKON.. (peut être des vrais d'ailleurs).

Par contre pour fournir un exemple : zéro pointé.
Heureusement que JM , toi et d'autres font avancer le débat.
je crois que je vais les "klonguer"



Euh, 'Plonker' non ? ;-)

<http://dictionnaire.phpmyvisites.net/definition-Plonker-9926.htm>


C'est vrai qu'ils rendent le forum un peu moins agréable à consulter :-(
Ils se lasseront peut être ...


--

Cordialement,

Jacques.


1 2