Skip to content

Ciantic/VirtualDesktopAccessor

Repository files navigation

VirtualDesktopAccessor.dll

DLL for accessing Windows 11 (requires at least 24H2 26100.2605, tested with 25H2 OS Build 26200.7171) Virtual Desktop features from e.g. AutoHotkey. MIT Licensed, see LICENSE © Jari Pennanen, 2015-2024

This repository also contains Rust library winvd for accessing the Virtual Desktop via Rust bindings.

AutoHotkey example here:

Download from releases:

Download the DLL from releases ⬇️

Reference of exported DLL functions

All functions return -1 in case of error.

fn GetCurrentDesktopNumber() -> i32 fn GetDesktopCount() -> i32 fn GetDesktopIdByNumber(number: i32) -> GUID // Untested fn GetDesktopNumberById(desktop_id: GUID) -> i32 // Untested fn GetWindowDesktopId(hwnd: HWND) -> GUID fn GetWindowDesktopNumber(hwnd: HWND) -> i32 fn IsWindowOnCurrentVirtualDesktop(hwnd: HWND) -> i32 fn MoveWindowToDesktopNumber(hwnd: HWND, desktop_number: i32) -> i32 fn GoToDesktopNumber(desktop_number: i32) -> i32 fn SetDesktopName(desktop_number: i32, in_name_ptr: *const i8) -> i32 // Win11 only fn GetDesktopName(desktop_number: i32, out_utf8_ptr: *mut u8, out_utf8_len: usize) -> i32 // Win11 only fn RegisterPostMessageHook(listener_hwnd: HWND, message_offset: u32) -> i32 fn UnregisterPostMessageHook(listener_hwnd: HWND) -> i32 fn IsPinnedWindow(hwnd: HWND) -> i32 fn PinWindow(hwnd: HWND) -> i32 fn UnPinWindow(hwnd: HWND) -> i32 fn IsPinnedApp(hwnd: HWND) -> i32 fn PinApp(hwnd: HWND) -> i32 fn UnPinApp(hwnd: HWND) -> i32 fn IsWindowOnDesktopNumber(hwnd: HWND, desktop_number: i32) -> i32 fn CreateDesktop() -> i32 // Win11 only fn RemoveDesktop(remove_desktop_number: i32, fallback_desktop_number: i32) -> i32 // Win11 only

About

DLL for accessing Windows 11/10 Virtual Desktop features from e.g. AutoHotkey

Resources

License

Stars

Watchers

Forks

Packages