| Collection of routines designed to simplify work with Win32 API. |
|
DSiWin32 is a joint effort of the Delphi-SI community.
It contains more than 100 functions and procedures, some documented and some not. You can always read the source (and most of them are trivial to understand).
Freeware.
Articles
Files
Last modifications
1.57:
2010-06-18
- DSiExecuteAsUser now calls CreateProcessWithLogonW if
CreateProcessAsUser fails with
ERROR_PRIVILEGE_NOT_HELD (1314). Windows error code is now returned in
a parameter. Window station and desktop
process-specific ACEs are removed in a
background thread when child process exits (thanks to Christian
Wimmer to pointing out this problem).
If the username is not set, DSiExecuteAsUser still sets up
ACEs for window station/desktop access but ends calling
CreateProcess and does not remove ACEs at
the end.
- Two overloaded versions of DSiExecuteAsUser are implemented. One
is backwards compatible and another
introduces two parameters - out processInfo:
TProcessInformation and startInfo: PStartupInfo (default: nil).
If the latter is assigned, it will be used instead of the
internally generated TStartupInfo. This
version does not close process and thread handle returned
in the TProcessInformation if 'wait' is False.
- Implemented DSiRemoveAceFromWindowStation and
DSiRemoveAceFromDesktop.
- Added dynamically loaded API forwarders
DSiCreateProcessWithLogonW,
DSiCreateEnvironmentBlock, DSiDestroyEnvironmentBlock and
DSiGetUserProfileDirectoryW.
- DSiAddAceTo[WindowStation|Desktop] will not add SID if it already
exists in the ACL.
- [Mitja] Clear the last error if CreateProcess succeeds in
DSiExecuteAndCapture (found a test case
where CreateProcess succeeded but last error was 126).
- [Christian Wimmer] In Unicode Delphis, DSiOpenSCManager,
DSiGetLongPathName, DSiGetModuleFileNameEx,
DSiGetProcessImageFileName, DSiSetDllDirectory, and
DSiSHEmptyRecycleBin were linking to the wrong verison of the
API.
- [Christian Wimmer] DSiCreateProcessAsUser must make a local copy
of the commandLine parameter when using
Unicode API because the API may modify the
contents of this parameter.
- Implemented DSiGetLogonSID, DSiAddAceToWindowStation and
DSiAddAceToDesktop.
1.55: 2010-04-12
- Implemented DSiHasElapsed64 and DSiElapsedTime64.
- Implemented DSiLogonAs and DSiVerifyPassword.
- DSiGetProcAddress made public.
|