VBA 64位API声明语句第014讲

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

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

【分享成果,随喜正能量】282升米恩,斗米仇。不要成为一个没有原则的滥好人,否则你帮助过的人不会感谢你,你没帮助到的人会怨恨你。我想起了有一个笑话,某个乞丐在街上祈祷,A路过后天天给了他10块钱,B看乞丐好欺负,天天打他一顿。某天A突然忘带零钱了,乞丐问他说你今天怎么不给我钱!某天B忘记打了乞丐,乞丐却感激涕零觉得B内心其实是一个好人。虽然是个笑话,不过对我们理解道理有所帮助。

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

Declare PtrSafe Function GetThreadContext Lib "kernel32" Alias "GetThreadContext" (ByVal hThread As LongPtr, lpContext As CONTEXT) As Long

Declare PtrSafe Function SetThreadContext Lib "kernel32" Alias "SetThreadContext" (ByVal hThread As LongPtr, lpContext As CONTEXT) As Long

Declare PtrSafe Function SuspendThread Lib "kernel32" Alias "SuspendThread" (ByVal hThread As LongPtr) As Long

Declare PtrSafe Function ResumeThread Lib "kernel32" Alias "ResumeThread" (ByVal hThread As LongPtr) As Long

Declare PtrSafe Function FindResource Lib "kernel32" Alias "FindResourceA" (ByVal hInstance As LongPtr, ByVal lpName As String, ByVal lpType As String) As LongPtr

Declare PtrSafe Function FindResourceEx Lib "kernel32" Alias "FindResourceExA" (ByVal hModule As LongPtr, ByVal lpType As String, ByVal lpName As String, ByVal wLanguage As Long) As LongPtr

Declare PtrSafe Function BeginUpdateResource Lib "kernel32" Alias "BeginUpdateResourceA" (ByVal pFileName As String, ByVal bDeleteExistingResources As Long) As LongPtr

Declare PtrSafe Function UpdateResource Lib "kernel32" Alias "UpdateResourceA" (ByVal hUpdate As LongPtr, ByVal lpType As String, ByVal lpName As String, ByVal wLanguage As Long, lpData As Any, ByVal cbData As Long) As Long

Declare PtrSafe Function EndUpdateResource Lib "kernel32" Alias "EndUpdateResourceA" (ByVal hUpdate As LongPtr, ByVal fDiscard As Long) As Long

Declare PtrSafe Function LoadResource Lib "kernel32" Alias "LoadResource" (ByVal hInstance As LongPtr, ByVal hResInfo As LongPtr) As LongPtr

Declare PtrSafe Function LockResource Lib "kernel32" Alias "LockResource" (ByVal hResData As LongPtr) As LongPtr

Declare PtrSafe Function SizeofResource Lib "kernel32" Alias "SizeofResource" (ByVal hInstance As LongPtr, ByVal hResInfo As LongPtr) As Long

' Predefined Resource Types

Const RT_CURSOR = 1&

Const RT_BITMAP = 2&

Const RT_ICON = 3&

Const RT_MENU = 4&

Const RT_DIALOG = 5&

Const RT_STRING = 6&

Const RT_FONTDIR = 7&

Const RT_FONT = 8&

Const RT_ACCELERATOR = 9&

Const RT_RCDATA = 10&

Declare PtrSafe Function InitAtomTable Lib "kernel32" Alias "InitAtomTable" (ByVal nSize As Long) As Long

Declare PtrSafe Function GlobalAddAtom Lib "kernel32" Alias "GlobalAddAtomA" (ByVal lpString As String) As Integer

Declare PtrSafe Function GlobalDeleteAtom Lib "kernel32" Alias "GlobalDeleteAtom" (ByVal nAtom As Integer) As Integer

Declare PtrSafe Function GlobalFindAtom Lib "kernel32" Alias "GlobalFindAtomA" (ByVal lpString As String) As Integer

Declare PtrSafe Function GlobalGetAtomName Lib "kernel32" Alias "GlobalGetAtomNameA" (ByVal nAtom As Integer, ByVal lpBuffer As String, ByVal nSize As Long) As Long

' User Profile Routines

' NOTE: The lpKeyName argument for GetProfileString, WriteProfileString,

' GetPrivateProfileString, and WritePrivateProfileString can be either

' a string or NULL. This is why the argument is defined as "As Any".

' For example, to pass a string specify ByVal "wallpaper"

' To pass NULL specify ByVal 0&

' You can also pass NULL for the lpString argument for WriteProfileString

' and WritePrivateProfileString

Declare PtrSafe Function GetProfileInt Lib "kernel32" Alias "GetProfileIntA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal nDefault As Long) As Long

Declare PtrSafe Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long

Declare PtrSafe Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long

Declare PtrSafe Function GetProfileSection Lib "kernel32" Alias "GetProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long

Declare PtrSafe Function WriteProfileSection Lib "kernel32" Alias "WriteProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String) As Long

Declare PtrSafe Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long

Declare PtrSafe Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Declare PtrSafe Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

Declare PtrSafe Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Declare PtrSafe Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Long

Declare PtrSafe Function Get『Windows』Directory Lib "kernel32" Alias "Get『Windows』DirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Declare PtrSafe Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Declare PtrSafe Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

Declare PtrSafe Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long

Declare PtrSafe Function GetCurrentDirectory Lib "kernel32" Alias "GetCurrentDirectory" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

Declare PtrSafe Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) As Long

Declare PtrSafe Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long

Declare PtrSafe Function CreateDirectoryEx Lib "kernel32" Alias "CreateDirectoryExA" (ByVal lpTemplateDirectory As String, ByVal lpNewDirectory As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long

Declare PtrSafe Function RemoveDirectory Lib "kernel32" Alias "RemoveDirectoryA" (ByVal lpPathName As String) As Long

Declare PtrSafe Function GetFullPathName Lib "kernel32" Alias "GetFullPathNameA" (ByVal lpFileName As String, ByVal nBufferLength As Long, ByVal lpBuffer As String, ByVal lpFilePart As String) As Long

Const DDD_RAW_TARGET_PATH = &H1

Const DDD_REMOVE_DEFINITION = &H2

Const DDD_EXACT_MATCH_ON_REMOVE = &H4

Declare PtrSafe Function DefineDosDevice Lib "kernel32" Alias "DefineDosDeviceA" (ByVal dwFlags As Long, ByVal lpDeviceName As String, ByVal lpTargetPath As String) As Long

Declare PtrSafe Function QueryDosDevice Lib "kernel32" Alias "QueryDosDeviceA" (ByVal lpDeviceName As String, ByVal lpTargetPath As String, ByVal ucchMax As Long) As Long

Declare PtrSafe Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As LongPtr) As LongPtr

Declare PtrSafe Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long

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

特别声明:[VBA 64位API声明语句第014讲] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

『章子怡』参加《百花迎春》!面部浮肿变化大,与『李雪健』坐在同一桌(『章子怡』出席活动视频)

甚至有网友评价,光凭她的状态,说她才30多岁似乎都不为过。回想起以往的『章子怡』,脸如削玉,轮廓分明,颧骨微微显现,给人一种天生的冷艳与气场,走在人群中总是让人忍不住多看一眼。 早在1月中旬,『章子怡』就曾…

『章子怡』参加《<strong>百花迎春</strong>》!面部浮肿变化大,与『李雪健』坐在同一桌(『章子怡』出席活动视频)

58岁周涛再拿话筒,离开央视多年依然站在舞台,状态在线气质不减引热议(51岁周涛)

端庄和典雅,像是她对自己的长期要求,而不是临时选择。 现在的公开信息显示,她已担任保利演出有限公司董事长,这一身份变化,本身就很有分量。或许这也是大家愿意停下来讨论她的原因。 在喧闹的娱乐环境里,这样的存…

58岁周涛再拿话筒,离开央视多年依然站在舞台,状态在线气质不减引热议(51岁周涛)

全球人工智能技术应用洞察报告(全球人工智能技术排名)

核心演进体现在三个层面:一是多模态大模型(如Llama 4、Gemma 3)实现感知-决策-执行的端到端闭环;二是决策式AI与生成式AI深度耦合,后者为前者提供高质量数据与信息输入,显著提升可解释性与可靠性;…

全球人工智能技术应用洞察报告(全球人工智能技术排名)

脸疼不疼?事业巅峰远赴美国的郑绪岚,被老外玩腻晚年回国(如果脸疼怎么办)

不久之后,郑女士顺利拿到了签证,带着对未来的美好憧憬,她与爱德华一起出国,甚至将自己的国籍更改为美国籍。 尽管人生充满坎坷,郑女士依旧没有放弃音乐,仍在坚持唱歌,最近她在自己的『社交平台』上发布了一张照…

脸疼不疼?事业巅峰远赴美国的郑绪岚,被老外玩腻晚年回国(如果脸疼怎么办)

烟瘾大、谈顶流,爆火的京圈公主向涵之,身上标签到底哪个是真的(烟瘾非常大)

她身上的标签太多了,什么“京圈公主”“资源咖”“『吴磊』绯闻女友”,每个标签都让人费解。 要说清楚向涵之,得先了解什么是“京圈”。这和她在剧里清纯可爱的形象反差太大了。 但真正的“大瓜”是在『吴磊』的一次直播中掉…

烟瘾大、谈顶流,爆火的京圈公主向涵之,身上标签到底哪个是真的(烟瘾非常大)