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实践经验,全部浓缩在下面的各个教程中:

相关推荐
MuMuMu12231 天前
存量改造项目终端选型:越华环保集团碳惠小屋工程架构与全生命周期成本解析
边缘计算
高升说1 天前
智能相机的工程解剖:算力进机身之后,系统怎么设计
嵌入式·边缘计算·机器视觉·智能相机
容器魔方1 天前
基于 KubeEdge 为云边协同 AI 流数据分析提供基础设施
大数据·云原生·容器·开源·边缘计算
Zenova EdgeOS1 天前
工业网关任务编排:从 DAG 到 Workflow 的工程实战
边缘计算·workflow·工业网关
szxinmai主板定制专家2 天前
【嵌入式实战】RK3588+GMSL多路相机采集方案|SerDes长距离低延时视频流落地教程
人工智能·单片机·机器人·边缘计算·zynq
星野云联AIoT技术洞察3 天前
RK3588 边缘 AI 盒子适合什么工业视觉场景
计算机视觉·边缘计算·rk3588·语音识别·图像识别·边缘网关·边缘计算盒子
ishangy3 天前
海思 2T 算力|泵吸式四合一气体 AI 布控球技术方案解析
边缘计算·gb28181·ai视觉·气体检测·布控球·有限空间
Rocktech_ruixun3 天前
机器人集群调度方案硬件如何选型?瑞迅科技RK3588/3576/3568分级方案解析
人工智能·嵌入式硬件·机器人·边缘计算
荆棘鸟智能5 天前
AI算法持续学习与迭代怎么做?从数据闭环到灰度发布的MLOps工程实践
人工智能·算法·架构·边缘计算
土星云SaturnCloud5 天前
ResNet-50 图像分类算法在边缘微服务器上的部署与性能评测
服务器·人工智能·算法·边缘计算·resnet-50