OVH Cloud OVH Cloud

desktop

13 réponses
Avatar
Bonjour

Avec la fonction EnumDesktops, j'obtiens facilement la liste des desktop
(bureau virtuel).
Je souhaiterai récupérer pour chacun d'eux le HDESK nombre fonctionnant
comme un
Handle vers ces bureaux. Comment puis je faire ?

J'ai essayé
EnumThreadWindows
EnumChildWindows
EnumWindows
sans succès.

Merci

3 réponses

1 2
Avatar
"Arnaud Debaene" a écrit dans le message de
news: 41a50c1b$0$32265$
@rennes wrote:
> Merci de ta réponse
>
> Oui, j'ai vu que l'on pouvait faire ainsi, mais ça me semble étrange.
> En effet, on peut créer un desktop, les énumérés, les ouvrir et les
> fermer. Ces derniers points ne rendent rien de visuel.
Non, ca c'est SwitchDesktop.

> Ca signifie que le fait d'ouvrir ou de fermer un desktop ne fait
> qu'allouer ou désallouer un pointeur.
> Le sens de cette fonction n'est pas tellement en rapport avec le nom
> dans ce cas.
Ben oui, c'est cohérent avec le nommage de toute l'API Windows : OpenXXX
ouvre un handle sur un objet de type XXX existant : OpenFile, OpenMutex,
OpenSemaphore, OpenService, OpenWindowStation, etc...

> Question subsidiaire, comment fait on pour fermer un desktop, dans la
> mesure ou le closedesktop ne
> fait pas cela ?
Comme tous les objets Windows, un desktop est détruit quand le dernier
handle qui le référence est fermé. Dans le cas des desktops, j'imagine


qu'il
y a un cas particulier, qui est que le desktop n'est pas détruit s'il est
visible et actif, même si aucune application n'a de handle dessus (mais ca
semble assez évident...). Si tu veux "fermer un desktop" dans le sens le
rendre non visible à l'écran, il suffit de faire un SwitchDesktop vers un
autre desktop (il y a *toujours* un desktop actif par WindowStation).

> D'après ce que j'ai compris, on peut associé un
> desktop à un thread et dans ce cas, le kill du thread tuerai ce
> desktop. Est ce bien cela ?
Pas du tout. Associer un thread avec un desktop défini simplement sur quel
desktop seront affichées les fenêtres créées par le thread.

D'après tes remarques, j'ai l'impression que tu n'as pas saisi un point
important : un desktop est non seulement une surface d'affichage de
fenêtres, c'est aussi une limite de sécurité importante dans le modèle de
sécurité de Windows : En effet, le desktop défini d'une part le
presse-papier, et d'autre part il permet à différentes applications
d'interagir entre elles et de se "piloter" les unes les autres à coup de
message de fenêtre et de hooks. C'est pour cette raison que, par exemple,
WinLogon tourne dans son propre desktop, afin qu'aucune application ne
puisse "jouer" avec. Il faut toujours garder cet aspect à l'esprit lorsque
l'on programme avec les desktops et les WindowStation.

Arnaud
MVP - VC





Merci pour toutes ces informations à la fois claires et instructives.
Avatar
Merci beaucoup.


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

Bonjour,

AMcD® a écrit :

>> Soit.
>>
>> Alors on va commencer par desktop.c, puis je vais chercher une
>> solution pour poster le .ico.
>
> Fais simple, donne juste les codes hexa du .ico.

00 00 01 00 02 00 20 20 10 00 00 00 00 00 E8 02
00 00 26 00 00 00 10 10 10 00 00 00 00 00 28 01
00 00 0E 03 00 00 28 00 00 00 20 00 00 00 40 00
00 00 01 00 04 00 00 00 00 00 80 02 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 80 00 00 80 00 00 00 80 80 00 80 00
00 00 80 00 80 00 80 80 00 00 C0 C0 C0 00 80 80
80 00 00 00 FF 00 00 FF 00 00 00 FF FF 00 FF 00
00 00 FF 00 FF 00 FF FF 00 00 FF FF FF 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 0B 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 0B B0
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BB
00 00 00 00 00 00 B0 00 00 00 00 00 00 00 00 0B
B0 00 00 00 00 00 BB 00 00 00 00 00 00 00 00 00
BB 00 00 00 00 0B BB B0 00 00 00 00 00 00 00 00
0B B0 00 00 00 0B B0 BB 00 00 00 00 00 00 00 00
00 BB 00 00 00 0B B0 0B B0 00 00 00 00 00 00 00
00 0B B0 00 00 0B B0 00 BB 00 00 00 00 00 00 00
00 00 BB 00 00 BB 00 00 0B B0 00 00 00 00 00 00
00 00 0B B0 00 BB 00 00 00 BB 00 00 BB 00 00 00
00 00 00 BB 00 BB 00 00 00 0B B0 00 BB 00 00 00
00 00 00 0B B0 BB 00 00 00 00 BB 00 BB 00 00 00
00 00 00 00 BB BB 00 00 00 00 0B B0 BB 00 00 00
00 00 00 00 0B BB 00 00 00 00 00 BB BB 00 00 00
00 00 00 00 00 BB 00 00 00 0B BB BB BB 00 00 00
00 00 00 00 00 00 00 00 00 0B BB BB BB 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF BF FF FF FF 9F FF
FF FF CF FF 7F FF E7 FF 3F FF F3 FE 1F FF F9 FE
4F FF FC FE 67 FF FE 7E 73 FF FF 3C F9 FF FF 9C
FC F3 FF CC FE 73 FF E4 FF 33 FF F0 FF 93 FF F8
FF C3 FF FC FE 03 FF FF FE 03 FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF 28 00
00 00 10 00 00 00 20 00 00 00 01 00 04 00 00 00
00 00 C0 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 80
00 00 00 80 80 00 80 00 00 00 80 00 80 00 80 80
00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF
00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF
00 00 FF FF FF 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 0B 00 00 00 00 00 00 00 0B 00
00 00 B0 00 00 00 00 B0 00 00 B0 00 00 00 00 B0
00 00 BB 00 00 00 00 0B 00 00 BB 00 00 00 00 00
B0 00 B0 B0 00 00 00 00 B0 0B 00 0B 00 00 00 00
0B 0B 00 0B 00 B0 00 00 0B 0B 00 00 B0 B0 00 00
00 BB 00 00 B0 B0 00 00 00 0B 00 00 0B B0 00 00
00 0B 00 00 BB B0 00 00 00 00 00 00 BB B0 00 00
00 00 00 00 00 00 FF FF 00 00 FF FF 00 00 BF FF
00 00 BF 7F 00 00 DF 7F 00 00 DF 3F 00 00 EF 3F
00 00 F7 5F 00 00 F6 EF 00 00 FA ED 00 00 FA F5
00 00 FC F5 00 00 FE F9 00 00 FE F1 00 00 FF F1
00 00 FF FF 00 00

--
« Always look at the bright side of the life... »


Avatar
"Thierry" a écrit dans le message de news:

Bonjour,

@rennes a écrit :

> J'ai pas trouvé sur msdn, sinon j'aurai pas posé la question.
> Tu peux donner une url ?

Dans ta bal.

> Sinon, l'appli que tu décris, y'en a des dizaines de ce type.
> google : "virtual desktop"

T'en connais un bien et gratos ?

--
« Always look at the bright side of the life... »



Ben j'en ai essayé plusieurs, mais voici à la fois le plus simple et le plus
simple :
www.free-soft.ro
code source en delphi, simple service nt&co
1 2