易语言设置文件所有者源码
系统结构:changeFileOwnership,API_GetCurrentProcess,API_GetFileSecurity,API_InitializeSecurityDescriptor,API_LookupAccountName,API_OpenProcessToken,API_SetFileSecurity,API_SetSecurityDescriptorOwner,API_LookupPrivilegeValue,API_AdjustTokenPrivileges,API_HeapAlloc,API_GetProcessHeap,API_GetTokenInformation,API_GetLengthSid,API_CopySid,API_RtlMoveMemory,API_HeapFree,API_CloseHandle,API_WNetGetUser,
======窗口程序集_启动窗口
| |
| |------ _选择框1_被单击
| |
| |------ _按钮2_被单击
| |
| |------ _按钮1_被单击
| |
| |------ __启动窗口_创建完毕
| |
| |
======UTIL
| |
| |------ changeFileOwnership
| |
| |------ _enablePrivilege
| |
| |------ _disablePrivilege
| |
| |------ _modifyPrivilegeState
| |
| |------ _getLogonSID
| |
| |
======调用的Dll
| |
| |---[dll]------ API_GetCurrentProcess
| |
| |---[dll]------ API_GetFileSecurity
| |
| |---[dll]------ API_InitializeSecurityDescriptor
| |
| |---[dll]------ API_LookupAccountName
| |
| |---[dll]------ API_OpenProcessToken
| |
| |---[dll]------ API_SetFileSecurity
| |
| |---[dll]------ API_SetSecurityDescriptorOwner
| |
| |---[dll]------ API_LookupPrivilegeValue
| |
| |---[dll]------ API_AdjustTokenPrivileges
| |
| |---[dll]------ API_HeapAlloc
| |
| |---[dll]------ API_GetProcessHeap
| |
| |---[dll]------ API_GetTokenInformation
| |
| |---[dll]------ API_GetLengthSid
| |
| |---[dll]------ API_CopySid
| |
| |---[dll]------ API_RtlMoveMemory
| |
| |---[dll]------ API_HeapFree
| |
| |---[dll]------ API_CloseHandle
| |
| |---[dll]------ API_WNetGetUser
调用的DLL命令:
.DLL命令 API_GetCurrentProcess, 整数型, "kernel32", "GetCurrentProcess", , 获取当前进程的一个伪句柄 当前进程的伪句柄
.DLL命令 API_GetFileSecurity, 整数型, "advapi32.dll", "GetFileSecurityA", , 获取文件或目录security信息
.参数 lpFileName, 文本型
.参数 RequestedInformation, 整数型
.参数 pSecurityDescriptor, 整数型
.参数 nLength, 整数型
.参数 lpnLengthNeeded, 整数型, 传址
.DLL命令 API_InitializeSecurityDescriptor, 整数型, "advapi32.dll", "InitializeSecurityDescriptor", , 初始化security描述
.参数 pSecurityDescriptor, SECURITY_DESCRIPTOR, 传址
.参数 dwRevision, 整数型
.DLL命令 API_LookupAccountName, 整数型, "advapi32.dll", "LookupAccountNameA", , 把帐户名转为SID
.参数 lpSystemName, 整数型
.参数 lpAccountName, 文本型
.参数 pSid, 整数型
.参数 cbSid, 整数型, 传址
.参数 ReferencedDomainName, 文本型
.参数 cbReferencedDomainName, 整数型, 传址
.参数 peUse, 短整数型, 传址
.DLL命令 API_OpenProcessToken, 整数型, "advapi32.dll", "OpenProcessToken", , 打开过程令牌对象
.参数 ProcessHandle, 整数型
.参数 DesiredAccess, 整数型
.参数 TokenHandle, 整数型, 传址
.DLL命令 API_SetFileSecurity, 整数型, "advapi32.dll", "SetFileSecurityA", , 设置文件或目录security属性
.参数 lpFileName, 文本型
.参数 SecurityInformation, 整数型
.参数 pSecurityDescriptor, SECURITY_DESCRIPTOR, 传址
.DLL命令 API_SetSecurityDescriptorOwner, 整数型, "advapi32.dll", "SetSecurityDescriptorOwner", , 设置SD所有者
.参数 pSecurityDescriptor, SECURITY_DESCRIPTOR, 传址
.参数 pOwner, 整数型
.参数 bOwnerDefaulted, 整数型
.DLL命令 API_LookupPrivilegeValue, 整数型, "advapi32.dll", "LookupPrivilegeValueA", , 返回特权名LUID
.参数 lpSystemName, 整数型
.参数 lpName, 文本型
.参数 lpLuid, LUID
.DLL命令 API_AdjustTokenPrivileges, 整数型, "advapi32.dll", "AdjustTokenPrivileges", , 使能/取消令牌特权
.参数 TokenHandle, 整数型
.参数 DisableAllPrivileges, 整数型
.参数 NewState, TOKEN_PRIVILEGES
.参数 BufferLength, 整数型
.参数 PreviousState, 整数型
.参数 ReturnLength, 整数型
.DLL命令 API_HeapAlloc, 整数型, "kernel32", "HeapAlloc", , 从堆中分配内存
.参数 hHeap, 整数型
.参数 dwFlags, 整数型
.参数 dwBytes, 整数型
.DLL命令 API_GetProcessHeap, 整数型, "kernel32", "GetProcessHeap", , 获取调用过程堆句柄
.DLL命令 API_GetTokenInformation, 整数型, "advapi32.dll", "GetTokenInformation", , 返回指定令牌信息
.参数 TokenHandle, 整数型
.参数 TokenInformationClass, 短整数型
.参数 TokenInformation, 整数型
.参数 TokenInformationLength, 整数型
.参数 ReturnLength, 整数型, 传址
.DLL命令 API_GetLengthSid, 整数型, "advapi32.dll", "GetLengthSid", , 返回SID长度
.参数 pSid, 整数型
.DLL命令 API_CopySid, 整数型, "advapi32.dll", "CopySid", , 将SID复制到缓冲区中
.参数 nDestinationSidLength, 整数型
.参数 pDestinationSid, 整数型
.参数 pSourceSid, 整数型
.DLL命令 API_RtlMoveMemory, , "kernel32.dll", "RtlMoveMemory"
.参数 Destination, 整数型
.参数 Source, 整数型, 传址
.参数 Length, 整数型
.DLL命令 API_HeapFree, 整数型, "kernel32", "HeapFree", , 释放从堆中分配的内存
.参数 hHeap, 整数型
.参数 dwFlags, 整数型
.参数 lpMem, 整数型
.DLL命令 API_CloseHandle, 整数型, "kernel32", "CloseHandle", , 关闭一个内核对象。其中包括文件、文件映射、进程、线程、security和同步对象等。涉及文件处理时,这个函数通常与vb的close命令相似。应尽可能的使用close,因为它支持vb的差错控制。注意这个函数使用的文件句柄与vb的文件编号是完全不同的 非零表示成功,零表示失败。会设置GetLastError
.参数 对象句柄, 整数型, , 欲关闭的一个对象的句柄
.DLL命令 API_WNetGetUser, 整数型, "mpr", "WNetGetUserA", , 获取一个网络资源用以连接的名字 零表示成功。会设置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,则可用WNetGetLastError取得额外的错误信息
.参数 lpName, 文本型, , 指定已连接资源的远程名称或本地名称。用vbNull获取当前用户的名字
.参数 lpUserName, 文本型, , 用于装载用户名的一个字串缓冲区
.参数 lpnLength, 整数型, 传址, lpUserName缓冲区的长度。如缓冲区不够大,则自动设为需要的缓冲区长度
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。