DSiWin32 17.slon
Delphi  
requires:
Version 1.57
   
used in:
  2010-06-18
 
 
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.


 
Last update: 2010-06-29
Google
Search:WWW17slon.com17slon.net