随笔分类 -  Delphi Windows - API使用

【Windows核心编程】如何知道程序运行中当前操作的内存地址范围,自己实现一个文件映射类
摘要:大部分人穷极一生都止步于自己的“陷阱”里,所以古人才有了破而后立的感悟! 问题来源 此问题源于对文件映射FileMapping的改造需求。我们知道FileMapping的便利性,但可能在某个很小的开发范围内,会发现FileMapping的局限性!那就是只能对内核支持的文件对象进行映射,而内核文件对象 阅读全文

posted @ 2022-05-09 11:55 峋山隐修会 阅读(403) 评论(0) 推荐(0)

如何解决:登录桌面时自动运行的EXE提示“该程序没有与之关联来执行操作”,之后出现蓝屏代码0xc000021a
摘要:问题描述 软件中有个模块在开机自动运行,并且会启动另外一个EXE(其中会获取一些硬件信息,用户信息,网络信息等)。 系统新建一个用户后,在登录新用户时,首次登录系统会创建用户目录,初始化桌面,outlook信息,IE信息等,在此过程中开机自动运行模块就启动了另外一个EXE,此时报错并弹出提示框“该程 阅读全文

posted @ 2018-07-28 12:55 峋山隐修会 阅读(1394) 评论(0) 推荐(0)

Delphi 编译出来的程序被小红伞报病毒 TR/Spy.Banker.Gen4 [trojan]
摘要:今天碰到非常奇怪的问题,正常开发的单元代码,在A程序编译出来没有问题,将相同的单元引用到B程序编译出来就被小红伞报病毒TR/Spy.Banker.Gen4 [trojan],自动隔离删除。 今时今日的防病毒软件,实在是让人纠结不已,今天一个下午的排查代码,最后发现问题居然是出现在调用Windows 阅读全文

posted @ 2016-09-02 18:57 峋山隐修会 阅读(1435) 评论(0) 推荐(0)

使用ExitProcess退出时为什么还会报运行时错误
摘要:通常情况下会以为ExitProcess就是直接结束并退出进程,其实不然,根据MSDN说明,调用ExitProcess至少在用户态下有这些动作 1)除了调用ExitProcess的线程之外,其他线程均被结束,但线程使用的DLL不会接收到DLL_THREAD_DETACH事件(正常结束线程或释放DLL则 阅读全文

posted @ 2016-08-24 00:30 峋山隐修会 阅读(2888) 评论(0) 推荐(0)

如何解决R6034错误,实现在WIN7以上版本通过LoadLibrary加载msvcr90.dll等DLL
摘要:为什么VC编译的程序在不同系统上运行经常报错? 在XP(SP2 ?)以前,安装VC运行时库时,安装包只会将各种DLL释放到system32目录并注册相关信息到注册表,这样LoadLibrary时加载这些DLL也不会出错,因为对于应用程序来说,当前只有一个对应的运行时库被注册到系统中,不存在多个不同版 阅读全文

posted @ 2016-01-14 15:30 峋山隐修会 阅读(4720) 评论(0) 推荐(0)

如何解决加载动态链接库DLL失败,返回0,GetLastError返回错误码126
摘要:通常情况下使用LoadLibrary加载DLL都可以成功,但是当被加载的DLL内部依赖其他DLL无法被找到时,该函数会返回126(ERROR_MOD_NOT_FOUND)错误。 解决办法有2种: 1)使用depends查看DLL的依赖项,查看有警告的即为不存在的,这时候可以通过查找下载等方式补齐 2 阅读全文

posted @ 2014-11-07 10:32 峋山隐修会 阅读(2663) 评论(0) 推荐(0)

如何实现点击激活窗体同时窗体不跑到最前覆盖其他窗体
摘要:正常情况下,点击一个窗体,窗体就会被激活,激活后窗体就跑到最前面,将其他窗体覆盖掉,有时候我们只想激活窗体,但又不想让窗体跑到最前面,改如何实现呢? 在delphi中实现起来会比较简单,使用 Form的PopupParent属性即可;设置后Form会始终在PopupParent的前面,即使激活Pop 阅读全文

posted @ 2014-11-04 09:38 峋山隐修会 阅读(493) 评论(0) 推荐(1)

【Windows】如何判断当前鼠标是否按下左键或右键
摘要:在delphi中,很多窗体和控件的鼠标事件里面已经将鼠标按键状态封装好传给响应事件的函数,所以这种情况直接使用就可以,但在某些时候,我们没有这些事件可以处理时,想判断鼠标按键是否按下的状态,就需要借助API或者消息了,使用API和消息可分别应对2种不同情形: 1)使用API: GetAsyncKey 阅读全文

posted @ 2014-11-04 09:08 峋山隐修会 阅读(8879) 评论(0) 推荐(0)

使用Win API 获取文件大小(可获取正在使用的文件,包括独占方式打开的文件GetFileSize)
摘要:function GetSysFileSizeEx(AbsFileName:string):int64;var Handle: Windows.THandle; FindData: Windows.TWin32FindData;begin Handle := Windows.FindFirstFil 阅读全文

posted @ 2011-04-20 21:35 峋山隐修会 阅读(593) 评论(0) 推荐(0)

导航