有什么办法可以判断执行的PB程序是已经编译好了的exe文件,还是编程时按了run而执行的程序?

da21 2005-10-31 06:54:55
有什么办法可以判断执行的PB程序是已经编译好了有exe文件,还是编程时按了run而执行的程序?
...全文
165 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2005-10-31
  • 打赏
  • 举报
回复
楼上的算法果然很独到

长见识了 恭喜楼主 得此答案

@_@
lzheng2001 2005-10-31
  • 打赏
  • 举报
回复
或者直接
if Handle(GetApplication()) = 0 then is pb环境
lzheng2001 2005-10-31
  • 打赏
  • 举报
回复
以下语句更简单
IF Handle(appName) = 0 THEN
pb环境
ELSE
EXE程序
END IF
yinyinyin 2005-10-31
  • 打赏
  • 举报
回复
这个问题只要知道一个函数在run时和在编译后执行有不同结果的话,就可以了。
例如:
API函数
Function uInt GetModuleFileNameA(ulong hModule, ref string lpFilename, ulong nSize) Library "kernel32.dll"

String ls_buffer = Space(255)
IF Handle(GetApplication()) <> 0 THEN
GetModuleFileNameA(Handle(GetApplication()), ls_buffer, 255)
END IF

然后研究一下,返回的ls_buffer。
在编译后的程序中执行,ls_buffer是应用程序的路径;
在PB环境中执行,ls_buffer取不到信息。

通过这样判断就可以了。

743

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧