UDF > WinAPIEx > System > Station & Desktop >


_WinAPI_CloseDesktop

Ferme le handle ouvert d'un objet Desktop (bureau Windows)

#include <WinAPISys.au3>
_WinAPI_CloseDesktop ( $hDesktop )

Paramètre

$hDesktop Handle du bureau à fermer.

Valeur de retour

Succès: Retourne True.
Échec: Retourne False, appelez _WinAPI_GetLastError() pour obtenir des informations sur l'erreur.

Remarque

La fonction _WinAPI_CloseDesktop() échouera si un thread du processus appelant utilise le handle de bureau spécifiée ou si le handle se réfère au bureau initial du processus appelant.

Voir aussi

Consultez CloseDesktop dans la librairie MSDN.

Exemple

#include <APIProcConstants.au3>
#include <APISysConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIMem.au3>
#include <WinAPIProc.au3>
#include <WinAPISys.au3>

; Récupére le handle du bureau actuel et crée un nouveau bureau nommé "MyDesktop"
Local $hPrev = _WinAPI_GetThreadDesktop(_WinAPI_GetCurrentThreadId())
Local $hDesktop = _WinAPI_CreateDesktop('MyDesktop', BitOR($DESKTOP_CREATEWINDOW, $DESKTOP_SWITCHDESKTOP))
If Not $hDesktop Then
    MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Error', 'Unable to create desktop.')
    Exit
EndIf

; Bascule sur le bureau nouvellement créé
_WinAPI_SwitchDesktop($hDesktop)

; Exécute "calc.exe" sur "MyDesktop" et attend jusqu'à ce qu'un processus soit fermé par l'utilisateur
Local $pText = _WinAPI_CreateString('MyDesktop')
Local $tProcess = DllStructCreate($tagPROCESS_INFORMATION)
Local $tStartup = DllStructCreate($tagSTARTUPINFO)
DllStructSetData($tStartup, 'Size', DllStructGetSize($tStartup))
DllStructSetData($tStartup, 'Desktop', $pText)
If _WinAPI_CreateProcess('', @SystemDir & '\calc.exe', 0, 0, 0, $CREATE_NEW_PROCESS_GROUP, 0, 0, DllStructGetPtr($tStartup), DllStructGetPtr($tProcess)) Then
    ProcessWaitClose(DllStructGetData($tProcess, 'ProcessID'))
EndIf

; Bascule sur le bureau précédent et ferme "MyDesktop"
_WinAPI_SwitchDesktop($hPrev)
_WinAPI_CloseDesktop($hDesktop)

; Libère la mémoire allouée pour une chaîne
_WinAPI_FreeMemory($pText)