📄 jwawinuser.pas
字号:
pt: POINT;
hwnd: HWND;
wHitTestCode: UINT;
dwExtraInfo: ULONG_PTR;
end;
{$EXTERNALSYM tagMOUSEHOOKSTRUCT}
MOUSEHOOKSTRUCT = tagMOUSEHOOKSTRUCT;
{$EXTERNALSYM MOUSEHOOKSTRUCT}
TMouseHookStruct = MOUSEHOOKSTRUCT;
PMouseHookStruct = LPMOUSEHOOKSTRUCT;
LPMOUSEHOOKSTRUCTEX = ^MOUSEHOOKSTRUCTEX;
{$EXTERNALSYM LPMOUSEHOOKSTRUCTEX}
tagMOUSEHOOKSTRUCTEX = record
mhs: MOUSEHOOKSTRUCT;
mouseData: DWORD;
end;
{$EXTERNALSYM tagMOUSEHOOKSTRUCTEX}
MOUSEHOOKSTRUCTEX = tagMOUSEHOOKSTRUCTEX;
{$EXTERNALSYM MOUSEHOOKSTRUCTEX}
TMouseHookStructEx = MOUSEHOOKSTRUCTEX;
PMouseHookStructEx = LPMOUSEHOOKSTRUCTEX;
//
// Structure used by WH_HARDWARE
//
LPHARDWAREHOOKSTRUCT = ^HARDWAREHOOKSTRUCT;
{$EXTERNALSYM LPHARDWAREHOOKSTRUCT}
tagHARDWAREHOOKSTRUCT = record
hwnd: HWND;
message: UINT;
wParam: WPARAM;
lParam: LPARAM;
end;
{$EXTERNALSYM tagHARDWAREHOOKSTRUCT}
HARDWAREHOOKSTRUCT = tagHARDWAREHOOKSTRUCT;
{$EXTERNALSYM HARDWAREHOOKSTRUCT}
THardwareHookStruct = HARDWAREHOOKSTRUCT;
PHardwareHookStruct = LPHARDWAREHOOKSTRUCT;
//
// Keyboard Layout API
//
const
HKL_PREV = 0;
{$EXTERNALSYM HKL_PREV}
HKL_NEXT = 1;
{$EXTERNALSYM HKL_NEXT}
KLF_ACTIVATE = $00000001;
{$EXTERNALSYM KLF_ACTIVATE}
KLF_SUBSTITUTE_OK = $00000002;
{$EXTERNALSYM KLF_SUBSTITUTE_OK}
KLF_REORDER = $00000008;
{$EXTERNALSYM KLF_REORDER}
KLF_REPLACELANG = $00000010;
{$EXTERNALSYM KLF_REPLACELANG}
KLF_NOTELLSHELL = $00000080;
{$EXTERNALSYM KLF_NOTELLSHELL}
KLF_SETFORPROCESS = $00000100;
{$EXTERNALSYM KLF_SETFORPROCESS}
KLF_SHIFTLOCK = $00010000;
{$EXTERNALSYM KLF_SHIFTLOCK}
KLF_RESET = $40000000;
{$EXTERNALSYM KLF_RESET}
//
// Bits in wParam of WM_INPUTLANGCHANGEREQUEST message
//
INPUTLANGCHANGE_SYSCHARSET = $0001;
{$EXTERNALSYM INPUTLANGCHANGE_SYSCHARSET}
INPUTLANGCHANGE_FORWARD = $0002;
{$EXTERNALSYM INPUTLANGCHANGE_FORWARD}
INPUTLANGCHANGE_BACKWARD = $0004;
{$EXTERNALSYM INPUTLANGCHANGE_BACKWARD}
//
// Size of KeyboardLayoutName (number of characters), including nul terminator
//
KL_NAMELENGTH = 9;
{$EXTERNALSYM KL_NAMELENGTH}
function LoadKeyboardLayoutA(pwszKLID: LPCSTR; Flags: UINT): HKL; stdcall;
{$EXTERNALSYM LoadKeyboardLayoutA}
function LoadKeyboardLayoutW(pwszKLID: LPCWSTR; Flags: UINT): HKL; stdcall;
{$EXTERNALSYM LoadKeyboardLayoutW}
{$IFDEF UNICODE}
function LoadKeyboardLayout(pwszKLID: LPCWSTR; Flags: UINT): HKL; stdcall;
{$EXTERNALSYM LoadKeyboardLayout}
{$ELSE}
function LoadKeyboardLayout(pwszKLID: LPCSTR; Flags: UINT): HKL; stdcall;
{$EXTERNALSYM LoadKeyboardLayout}
{$ENDIF}
{$IFDEF WINVER_0400_GREATER}
function ActivateKeyboardLayout(hkl: HKL; Flags: UINT): HKL; stdcall;
{$EXTERNALSYM ActivateKeyboardLayout}
{$ELSE}
function ActivateKeyboardLayout(hkl: HKL; Flags: UINT): BOOL; stdcall;
{$EXTERNALSYM ActivateKeyboardLayout}
{$ENDIF}
function ToUnicodeEx(wVirtKey, wScanCode: UINT; lpKeyState: PBYTE;
pwszBuff: LPWSTR; cchBuff: Integer; wFlags: UINT; dwhkl: HKL): Integer; stdcall;
{$EXTERNALSYM ToUnicodeEx}
function UnloadKeyboardLayout(hkl: HKL): BOOL; stdcall;
{$EXTERNALSYM UnloadKeyboardLayout}
function GetKeyboardLayoutNameA(pwszKLID: LPSTR): BOOL; stdcall;
{$EXTERNALSYM GetKeyboardLayoutNameA}
function GetKeyboardLayoutNameW(pwszKLID: LPWSTR): BOOL; stdcall;
{$EXTERNALSYM GetKeyboardLayoutNameW}
{$IFDEF UNICODE}
function GetKeyboardLayoutName(pwszKLID: LPWSTR): BOOL; stdcall;
{$EXTERNALSYM GetKeyboardLayoutName}
{$ELSE}
function GetKeyboardLayoutName(pwszKLID: LPSTR): BOOL; stdcall;
{$EXTERNALSYM GetKeyboardLayoutName}
{$ENDIF}
function GetKeyboardLayoutList(nBuff: Integer; lpList: PHKL): Integer; stdcall;
{$EXTERNALSYM GetKeyboardLayoutList}
function GetKeyboardLayout(idThread: DWORD): HKL; stdcall;
{$EXTERNALSYM GetKeyboardLayout}
type
LPMOUSEMOVEPOINT = ^MOUSEMOVEPOINT;
{$EXTERNALSYM LPMOUSEMOVEPOINT}
tagMOUSEMOVEPOINT = record
x: Integer;
y: Integer;
time: DWORD;
dwExtraInfo: ULONG_PTR;
end;
{$EXTERNALSYM tagMOUSEMOVEPOINT}
MOUSEMOVEPOINT = tagMOUSEMOVEPOINT;
{$EXTERNALSYM MOUSEMOVEPOINT}
TMouseMovePoint = MOUSEMOVEPOINT;
PMouseMovePoint = LPMOUSEMOVEPOINT;
//
// Values for resolution parameter of GetMouseMovePointsEx
//
const
GMMP_USE_DISPLAY_POINTS = 1;
{$EXTERNALSYM GMMP_USE_DISPLAY_POINTS}
GMMP_USE_HIGH_RESOLUTION_POINTS = 2;
{$EXTERNALSYM GMMP_USE_HIGH_RESOLUTION_POINTS}
function GetMouseMovePointsEx(cbSize: UINT; lppt, lpptBuf: LPMOUSEMOVEPOINT;
nBufPoints: Integer; resolution: DWORD): Integer; stdcall;
{$EXTERNALSYM GetMouseMovePointsEx}
//
// Desktop-specific access flags
//
const
DESKTOP_READOBJECTS = $0001;
{$EXTERNALSYM DESKTOP_READOBJECTS}
DESKTOP_CREATEWINDOW = $0002;
{$EXTERNALSYM DESKTOP_CREATEWINDOW}
DESKTOP_CREATEMENU = $0004;
{$EXTERNALSYM DESKTOP_CREATEMENU}
DESKTOP_HOOKCONTROL = $0008;
{$EXTERNALSYM DESKTOP_HOOKCONTROL}
DESKTOP_JOURNALRECORD = $0010;
{$EXTERNALSYM DESKTOP_JOURNALRECORD}
DESKTOP_JOURNALPLAYBACK = $0020;
{$EXTERNALSYM DESKTOP_JOURNALPLAYBACK}
DESKTOP_ENUMERATE = $0040;
{$EXTERNALSYM DESKTOP_ENUMERATE}
DESKTOP_WRITEOBJECTS = $0080;
{$EXTERNALSYM DESKTOP_WRITEOBJECTS}
DESKTOP_SWITCHDESKTOP = $0100;
{$EXTERNALSYM DESKTOP_SWITCHDESKTOP}
//
// Desktop-specific control flags
//
DF_ALLOWOTHERACCOUNTHOOK = $0001;
{$EXTERNALSYM DF_ALLOWOTHERACCOUNTHOOK}
function CreateDesktopA(lpszDesktop, lpszDevice: LPCSTR; pDevmode: LPDEVMODEA;
dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
{$EXTERNALSYM CreateDesktopA}
function CreateDesktopW(lpszDesktop, lpszDevice: LPCWSTR; pDevmode: LPDEVMODEW;
dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
{$EXTERNALSYM CreateDesktopW}
{$IFDEF UNICODE}
function CreateDesktop(lpszDesktop, lpszDevice: LPCWSTR; pDevmode: LPDEVMODEW;
dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
{$EXTERNALSYM CreateDesktop}
{$ELSE}
function CreateDesktop(lpszDesktop, lpszDevice: LPCSTR; pDevmode: LPDEVMODEA;
dwFlags: DWORD; dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HDESK; stdcall;
{$EXTERNALSYM CreateDesktop}
{$ENDIF}
function OpenDesktopA(lpszDesktop: LPCSTR; dwFlags: DWORD; fInherit: BOOL;
dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
{$EXTERNALSYM OpenDesktopA}
function OpenDesktopW(lpszDesktop: LPCWSTR; dwFlags: DWORD; fInherit: BOOL;
dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
{$EXTERNALSYM OpenDesktopW}
{$IFDEF UNICODE}
function OpenDesktop(lpszDesktop: LPCWSTR; dwFlags: DWORD; fInherit: BOOL;
dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
{$EXTERNALSYM OpenDesktop}
{$ELSE}
function OpenDesktop(lpszDesktop: LPCSTR; dwFlags: DWORD; fInherit: BOOL;
dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
{$EXTERNALSYM OpenDesktop}
{$ENDIF}
function OpenInputDesktop(dwFlags: DWORD; fInherit: BOOL;
dwDesiredAccess: ACCESS_MASK): HDESK; stdcall;
{$EXTERNALSYM OpenInputDesktop}
function EnumDesktopsA(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCA;
lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumDesktopsA}
function EnumDesktopsW(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCW;
lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumDesktopsW}
{$IFDEF UNICODE}
function EnumDesktops(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCW;
lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumDesktops}
{$ELSE}
function EnumDesktops(hwinsta: HWINSTA; lpEnumFunc: DESKTOPENUMPROCA;
lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumDesktops}
{$ENDIF}
function EnumDesktopWindows(hDesktop: HDESK; lpfn: WNDENUMPROC; lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumDesktopWindows}
function SwitchDesktop(hDesktop: HDESK): BOOL; stdcall;
{$EXTERNALSYM SwitchDesktop}
function SetThreadDesktop(hDesktop: HDESK): BOOL; stdcall;
{$EXTERNALSYM SetThreadDesktop}
function CloseDesktop(hDesktop: HDESK): BOOL; stdcall;
{$EXTERNALSYM CloseDesktop}
function GetThreadDesktop(dwThreadId: DWORD): HDESK; stdcall;
{$EXTERNALSYM GetThreadDesktop}
//
// Windowstation-specific access flags
//
const
WINSTA_ENUMDESKTOPS = $0001;
{$EXTERNALSYM WINSTA_ENUMDESKTOPS}
WINSTA_READATTRIBUTES = $0002;
{$EXTERNALSYM WINSTA_READATTRIBUTES}
WINSTA_ACCESSCLIPBOARD = $0004;
{$EXTERNALSYM WINSTA_ACCESSCLIPBOARD}
WINSTA_CREATEDESKTOP = $0008;
{$EXTERNALSYM WINSTA_CREATEDESKTOP}
WINSTA_WRITEATTRIBUTES = $0010;
{$EXTERNALSYM WINSTA_WRITEATTRIBUTES}
WINSTA_ACCESSGLOBALATOMS = $0020;
{$EXTERNALSYM WINSTA_ACCESSGLOBALATOMS}
WINSTA_EXITWINDOWS = $0040;
{$EXTERNALSYM WINSTA_EXITWINDOWS}
WINSTA_ENUMERATE = $0100;
{$EXTERNALSYM WINSTA_ENUMERATE}
WINSTA_READSCREEN = $0200;
{$EXTERNALSYM WINSTA_READSCREEN}
WINSTA_ALL_ACCESS = (WINSTA_ENUMDESKTOPS or WINSTA_READATTRIBUTES or WINSTA_ACCESSCLIPBOARD or
WINSTA_CREATEDESKTOP or WINSTA_WRITEATTRIBUTES or WINSTA_ACCESSGLOBALATOMS or
WINSTA_EXITWINDOWS or WINSTA_ENUMERATE or WINSTA_READSCREEN);
{$EXTERNALSYM WINSTA_ALL_ACCESS}
//
// Windowstation-specific attribute flags
//
WSF_VISIBLE = $0001;
{$EXTERNALSYM WSF_VISIBLE}
function CreateWindowStationA(lpwinsta: LPCSTR; dwReserved: DWORD;
dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
{$EXTERNALSYM CreateWindowStationA}
function CreateWindowStationW(lpwinsta: LPCWSTR; dwReserved: DWORD;
dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
{$EXTERNALSYM CreateWindowStationW}
{$IFDEF UNICODE}
function CreateWindowStation(lpwinsta: LPCWSTR; dwReserved: DWORD;
dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
{$EXTERNALSYM CreateWindowStation}
{$ELSE}
function CreateWindowStation(lpwinsta: LPCSTR; dwReserved: DWORD;
dwDesiredAccess: ACCESS_MASK; lpsa: LPSECURITY_ATTRIBUTES): HWINSTA; stdcall;
{$EXTERNALSYM CreateWindowStation}
{$ENDIF}
function OpenWindowStationA(lpszWinSta: LPCSTR; fInherit: BOOL;
dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
{$EXTERNALSYM OpenWindowStationA}
function OpenWindowStationW(lpszWinSta: LPCWSTR; fInherit: BOOL;
dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
{$EXTERNALSYM OpenWindowStationW}
{$IFDEF UNICODE}
function OpenWindowStation(lpszWinSta: LPCWSTR; fInherit: BOOL;
dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
{$EXTERNALSYM OpenWindowStation}
{$ELSE}
function OpenWindowStation(lpszWinSta: LPCSTR; fInherit: BOOL;
dwDesiredAccess: ACCESS_MASK): HWINSTA; stdcall;
{$EXTERNALSYM OpenWindowStation}
{$ENDIF}
function EnumWindowStationsA(lpEnumFunc: WINSTAENUMPROCA; lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumWindowStationsA}
function EnumWindowStationsW(lpEnumFunc: WINSTAENUMPROCW; lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumWindowStationsW}
{$IFDEF UNICODE}
function EnumWindowStations(lpEnumFunc: WINSTAENUMPROCW; lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumWindowStations}
{$ELSE}
function EnumWindowStations(lpEnumFunc: WINSTAENUMPROCA; lParam: LPARAM): BOOL; stdcall;
{$EXTERNALSYM EnumWindowStations}
{$ENDIF}
function CloseWindowStation(hWinSta: HWINSTA): BOOL; stdcall;
{$EXTERNALSYM CloseWindowStation}
function SetProcessWindowStation(hWinSta: HWINSTA): BOOL; stdcall;
{$EXTERNALSYM SetProcessWindowStation}
function GetProcessWindowStation: HWINSTA; stdcall;
{$EXTERNALSYM GetProcessWindowStation}
function SetUserObjectSecurity(hObj: HANDLE; var pSIRequested: SECURITY_INFORMATION;
pSID: PSECURITY_DESCRIPTOR): BOOL; stdcall;
{$EXTERNALSYM SetUserObjectSecurity}
function GetUserObjectSecurity(hObj: HANDLE; var pSIRequested: SECURITY_INFORMATION;
pSID: PSECURITY_DESCRIPTOR; nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUserObjectSecurity}
const
UOI_FLAGS = 1;
{$EXTERNALSYM UOI_FLAGS}
UOI_NAME = 2;
{$EXTERNALSYM UOI_NAME}
UOI_TYPE = 3;
{$EXTERNALSYM UOI_TYPE}
UOI_USER_SID = 4;
{$EXTERNALSYM UOI_USER_SID}
type
PUSEROBJECTFLAGS = ^USEROBJECTFLAGS;
tagUSEROBJECTFLAGS = record
fInherit: BOOL;
fReserved: BOOL;
dwFlags: DWORD;
end;
{$EXTERNALSYM tagUSEROBJECTFLAGS}
USEROBJECTFLAGS = tagUSEROBJECTFLAGS;
{$EXTERNALSYM USEROBJECTFLAGS}
TUserObjectFlags = USEROBJECTFLAGS;
function GetUserObjectInformationA(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUserObjectInformationA}
function GetUserObjectInformationW(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUserObjectInformationW}
{$IFDEF UNICODE}
function GetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUserObjectInformation}
{$ELSE}
function GetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
nLength: DWORD; var lpnLengthNeeded: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUserObjectInformation}
{$ENDIF}
function SetUserObjectInformationA(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
nLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetUserObjectInformationA}
function SetUserObjectInformationW(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
nLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetUserObjectInformationW}
{$IFDEF UNICODE}
function SetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
nLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetUserObjectInformation}
{$ELSE}
function SetUserObjectInformation(hObj: HANDLE; nIndex: Integer; pvInfo: PVOID;
nLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetUserObjectInformation}
{$ENDIF}
type
LPWNDCLASSEXA = ^WNDCLASSEXA;
{$EXTERNALSYM LPWNDCLASSEXA}
tagWNDCLASSEXA = record
cbSize: UINT;
// Win 3.x
style: UINT;
lpfnWndProc: WNDPROC;
cbClsExtra: Integer;
cbWndExtra: Integer;
hInstance: HINSTANCE;
hIcon: HICON;
hCursor: HCURSOR;
hbrBackground: HBRUSH;
lpszMenuName: LPCSTR;
lpszClassName: LPCSTR;
// Win 4.0
hIconSm: HICON;
end;
{$EXTERNALSYM tagWNDCLASSEXA}
WNDCLASSEXA = tagWNDCLASSEXA;
{$EXTERNALSYM WNDCLASSEXA}
NPWNDCLASSEXA = ^WNDCLASSEXA;
{$EXTERNALSYM NPWNDCLASSEXA}
TWndClassExA = WNDCLASSEXA;
PWndClassExA = LPWNDCLASSEXA;
LPWNDCLASSEXW = ^WNDCLASSEXW;
{$EXTERNALSYM LPWNDCLASSEXW}
tagWNDCLASSEXW = record
cbSize: UINT;
// Win 3.x
style: UINT;
lpfnWndProc: WNDPROC;
cbClsExtra: Integer;
cbWndExtra: Integer;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -