当前位置: 首页 > news >正文

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





http://www.xdnf.cn/news/271873.html

相关文章:

  • 2025深圳杯(东三省)数学建模竞赛D题完整分析论文(共36页)(含模型、可运行代码、数据结果)
  • (超2万字数详解)C++学习之类与对象
  • SwiftUI-MLX本地大模型开发(二)
  • 射频指标互调与交调简略
  • ubuntu使用apt安装软件
  • python中的yield关键字用法
  • 数据赋能(209)——质量管理——时效性原则
  • 文献分享:抗体治疗癌症综述
  • EMMC存储性能测试方法
  • FramePack部署(从PyCharm解释器创建和使用开始)保姆级教程
  • 基于SpringBoot的篮球竞赛预约平台设计与实现
  • 数据赋能(210)——质量管理——可靠性原则
  • FastAPI系列13:API的安全防护
  • 经典算法 最小生成树(prim算法)
  • QT6 源(70):阅读与注释按钮类 QPushButton,及各种属性验证,
  • 返回倒数第k个节点题解
  • 学习黑客分析案例
  • 山东大学计算机组成与设计第九、十章习题解析
  • 延时启动windows中程序
  • C++Primerplus编程练习 第五章
  • 继V1.5之后,幻方又发布了 DeepSeek-Prover-V2-671B,参数提升100倍
  • 【AI平台】n8n入门6:调用MCP服务(非社区节点)
  • 构建灵活的配置管理系统:YAML 与 TOML 的应用与热更新实践
  • 生成树、Prime、Kruskal
  • 第40课 常用快捷操作——按“Tab键”即时更改属性
  • 为什么需要启动探针(StartupProb)?
  • neatchat轻量级丝滑的ai模型web客户端
  • python进阶(2)二进制
  • 文件操作-
  • 【今日三题】游游的重组偶数(模拟) / 体操队形(回溯) / 二叉树中的最大路径和(树形dp)