有什么办法可以判断执行的PB程序是已经编译好了的exe文件,还是编程时按了run而执行的程序?
有什么办法可以判断执行的PB程序是已经编译好了有exe文件,还是编程时按了run而执行的程序? 问题点数:50、回复次数:4Top
1 楼yinyinyin(白银)回复于 2005-10-31 19:11:00 得分 15
这个问题只要知道一个函数在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取不到信息。
通过这样判断就可以了。
Top
2 楼lzheng2001(1加1)回复于 2005-10-31 19:27:13 得分 25
以下语句更简单
IF Handle(appName) = 0 THEN
pb环境
ELSE
EXE程序
END IF
Top
3 楼lzheng2001(1加1)回复于 2005-10-31 19:29:15 得分 0
或者直接
if Handle(GetApplication()) = 0 then is pb环境Top
4 楼yeqiufeng(叶秋枫)回复于 2005-10-31 21:00:46 得分 10
楼上的算法果然很独到
长见识了 恭喜楼主 得此答案
@_@Top




