VBA 64位API声明语句第009讲

360影视 动漫周边 2025-05-03 19:07 3

摘要:跟我学VBA,我这里专注VBA, 授人以渔。我98年开始,从源码接触VBA已经20余年了,随着年龄的增长,越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友,都来学习VBA,利用VBA,起码可以提高自己的工作效率,可以有时间多陪

跟我学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

lpImageName As LongPtr

fUnicode As Integer

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

来源:VBA语言专业教育

相关推荐