VBA 64位API声明语句第009讲

跟我学VBA,我这里专注VBA, 授人以渔。我98年开始,从源码接触VBA已经20余年了,随着年龄的增长,越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友,都来学习VBA,利用VBA,起码可以提高自己的工作效率,可以有时间多陪陪父母,多陪陪家人,何乐而不为呢?我的教程一共九套,从入门开始一直讲到程序的分发,是学习利用VBA的实用教程。这份API资料是随高级教程赠送的.

这讲我们继续学习VBA 64位API声明语句第009讲,这些内容是MS的权威资料,看似枯燥,但对于想学习API函数的朋友是非常有用的。

【分享成果,随喜正能量】132 不谋其前,不虑其后,不恋当今。你內心安适,就会宠辱不惊,俯仰无愧,从一天到一年,从一年到一生,秒秒感受安详,活在至真、至善至美中,这才是人生的最高幸福。。

当学员学习到高级阶段,如果引用API,这个资料可以直接查到64位写法。大多数情况下我们是将低版本的程序文件升级到高版本,这时您就不必为如下的错误提示所困扰了:

' Privilege Set - This is defined for a privilege set of one.

' If more than one privilege is needed, then this structure

' will need to be allocated with more space.

'

' Note: don't change this structure without fixing the INITIAL_PRIVILEGE_SET

' structure (defined in se.h)

'

Type PRIVILEGE_SET

PrivilegeCount As Long

Control As Long

Privilege(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES

End Type

'//

' //

' NT Defined Privileges //

' //

' //

Const SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege"

Const SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege"

Const SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege"

Const SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege"

Const SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege"

Const SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege"

Const SE_TCB_NAME = "SeTcbPrivilege"

Const SE_SECURITY_NAME = "SeSecurityPrivilege"

Const SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege"

Const SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege"

Const SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege"

Const SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege"

Const SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege"

Const SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege"

Const SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege"

Const SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege"

Const SE_BACKUP_NAME = "SeBackupPrivilege"

Const SE_RESTORE_NAME = "SeRestorePrivilege"

Const SE_SHUTDOWN_NAME = "SeShutdownPrivilege"

Const SE_DEBUG_NAME = "SeDebugPrivilege"

Const SE_AUDIT_NAME = "SeAuditPrivilege"

Const SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege"

Const SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege"

Const SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege"

' //

' //

' Security Quality Of Service //

' //

' //

' //

' begin_ntddk begin_nthal begin_ntifs

'

' Impersonation Level

'

' Impersonation level is represented by a pair of bits in Windows.

' If a new impersonation level is added or lowest value is changed from

' 0 to something else, fix the Windows CreateFile call.

'

Const SecurityAnonymous = 1

Const SecurityIdentification = 2

'//

' //

' Registry API Constants //

' //

' //

' Reg Create Type Values...

Const REG_OPTION_RESERVED = 0 ' Parameter is reserved

Const REG_OPTION_NON_VOLATILE = 0 ' Key is preserved when system is rebooted

Const REG_OPTION_VOLATILE = 1 ' Key is not preserved when system is rebooted

Const REG_OPTION_CREATE_LINK = 2 ' Created key is a symbolic link

Const REG_OPTION_BACKUP_RESTORE = 4 ' open for backup or restore

' Reg Data Types...

Const REG_NONE = 0 ' No value type

Const REG_SZ = 1 ' Unicode nul terminated string

Const REG_EXPAND_SZ = 2 ' Unicode nul terminated string

Const REG_BINARY = 3 ' Free form binary

Const REG_DWORD = 4 ' 32-bit number

Const REG_DWORD_LITTLE_ENDIAN = 4 ' 32-bit number (same as REG_DWORD)

Const REG_DWORD_BIG_ENDIAN = 5 ' 32-bit number

Const REG_LINK = 6 ' Symbolic Link (unicode)

Const REG_MULTI_SZ = 7 ' Multiple Unicode strings

Const REG_RESOURCE_LIST = 8 ' Resource list in the resource map

Const REG_FULL_RESOURCE_DESCRIPTOR = 9 ' Resource list in the hardware description

Const REG_RESOURCE_REQUIREMENTS_LIST = 10

Const REG_CREATED_NEW_KEY = &H1 ' New Registry Key created

Const REG_OPENED_EXISTING_KEY = &H2 ' Existing Key opened

Const REG_WHOLE_HIVE_VOLATILE = &H1 ' Restore whole hive volatile

Const REG_REFRESH_HIVE = &H2 ' Unwind changes to last flush

Const REG_NOTIFY_CHANGE_NAME = &H1 ' Create or delete (child)

Const REG_NOTIFY_CHANGE_ATTRIBUTES = &H2

Const REG_NOTIFY_CHANGE_LAST_SET = &H4 ' Time stamp

Const REG_NOTIFY_CHANGE_SECURITY = &H8

Const REG_LEGAL_CHANGE_FILTER = (REG_NOTIFY_CHANGE_NAME Or REG_NOTIFY_CHANGE_ATTRIBUTES Or REG_NOTIFY_CHANGE_LAST_SET Or REG_NOTIFY_CHANGE_SECURITY)

Const REG_LEGAL_OPTION = (REG_OPTION_RESERVED Or REG_OPTION_NON_VOLATILE Or REG_OPTION_VOLATILE Or REG_OPTION_CREATE_LINK Or REG_OPTION_BACKUP_RESTORE)

' Reg Key Security Options

' Const READ_CONTROL = &H20000

Const KEY_QUERY_VALUE = &H1

Const KEY_SET_VALUE = &H2

Const KEY_CREATE_SUB_KEY = &H4

Const KEY_ENUMERATE_SUB_KEYS = &H8

Const KEY_NOTIFY = &H10

Const KEY_CREATE_LINK = &H20

Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE))

Const KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE))

Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))

'Const STANDARD_RIGHTS_READ = (READ_CONTROL)

'Const STANDARD_RIGHTS_WRITE = (READ_CONTROL)

Const KEY_EXECUTE = ((KEY_READ) And (Not SYNCHRONIZE))

' end winnt.txt

' Debug APIs

Const EXCEPTION_DEBUG_EVENT = 1

Const CREATE_THREAD_DEBUG_EVENT = 2

Const CREATE_PROCESS_DEBUG_EVENT = 3

Const EXIT_THREAD_DEBUG_EVENT = 4

Const EXIT_PROCESS_DEBUG_EVENT = 5

Const LOAD_DLL_DEBUG_EVENT = 6

Const UNLOAD_DLL_DEBUG_EVENT = 7

Const OUTPUT_DEBUG_STRING_EVENT = 8

Const RIP_EVENT = 9

Const EXCEPTION_MAXIMUM_PARAMETERS = 15

Type EXCEPTION_RECORD

ExceptionCode As Long

ExceptionFlags As Long

pExceptionRecord As LongPtr ' Pointer to an EXCEPTION_RECORD structure

ExceptionAddress As LongPtr

NumberParameters As Long

ExceptionInformation(0 To EXCEPTION_MAXIMUM_PARAMETERS - 1) As LongPtr

End Type

Type EXCEPTION_DEBUG_INFO

pExceptionRecord As EXCEPTION_RECORD

dwFirstChance As Long

End Type

Type CREATE_THREAD_DEBUG_INFO

hThread As LongPtr

lpThreadLocalBase As LongPtr

lpStartAddress As LongPtr

End Type

Type CREATE_PROCESS_DEBUG_INFO

hFile As LongPtr

hProcess As LongPtr

hThread As LongPtr

lpBaseOfImage As LongPtr

dwDebugInfoFileOffset As Long

nDebugInfoSize As Long

lpThreadLocalBase As LongPtr

lpStartAddress As LongPtr

lpImageName As LongPtr

fUnicode As Integer

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

相关推荐
鲁邦通物联网9 小时前
厂内数据采集系统如何选边缘计算网关:从负载估算到性能验收的完整方法
边缘计算·工业网关·边缘计算网关·边缘计算盒子·工业级边缘计算网关·plc数采·厂内数采
ishangy19 小时前
井下变电硐室杂物堆放识别,规范机电场所管理标准
边缘计算·智慧矿山·煤矿安全·ai视觉识别·变电硐室·井下智能监测
ishangy2 天前
井下烟雾明火 AI 识别算法,机电硐室消防监测标配
边缘计算·智慧矿山·ai视觉识别·矿山安全·防爆监控·机电硐室·井下火灾
头发够用的程序员3 天前
TensorRT 自定义算子插件实战(三):手搓 2×2 最大池化 customMaxpool
人工智能·pytorch·python·深度学习·神经网络·边缘计算·jetson
杭州领祺科技5 天前
27 号令横向隔离落地清单:储能边缘计算网关 ≠ 电力专用网闸,算电协同中心安全分区/纵向加密/SPDnet 怎么配
人工智能·安全·网络安全·边缘计算·储能·电力·电力监控
这张生成的图像能检测吗8 天前
(综述)边缘计算 × IoT:从机器信号处理到低时延故障诊断
边缘计算·信号处理·故障诊断
悟天特斯8 天前
边缘计算:让智慧园区的治理能力“下沉“到最后一公里
人工智能·边缘计算
ishangy8 天前
智慧矿山井下风机运行状态视觉识别,通风系统智能监测场景
人工智能·边缘计算·智慧矿山·ai视觉识别·煤矿智能化
头发够用的程序员9 天前
TensorRT 自定义算子插件实战(一):从零手写 customScaledTanh
c++·人工智能·pytorch·python·深度学习·边缘计算·jetson
鲁邦通物联网9 天前
生产线数据采集升级怎么做?边缘计算网关部署与数据架构设计
边缘计算·边缘网关·工业网关·边缘计算网关·物联网网关·plc数采·厂内数采