急!PB中获得当前应用程序路径的函数?

康斯坦汀 2000-04-05 04:18:00
别告诉我调PFC中的.
...全文
361 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
康斯坦汀 2000-04-07
  • 打赏
  • 举报
回复
lyxinfo的正确,提出问题后我自己就解决了,就用的GetCurrentDirectoryA(得到)
和SetCurrentDirectoryA(设定)
929 2000-04-06
  • 打赏
  • 举报
回复
用API:
LONG GetWindowLong(

HWND hWnd, // handle of window
int nIndex // offset of value to retrieve
);用此函数加GWL_HINSTANCE ,来得到当前进程的句柄

DWORD GetModuleFileName(

HMODULE hModule, // handle to module to find filename for
LPTSTR lpFilename, // pointer to buffer for module path
DWORD nSize // size of buffer, in characters
);
它们在PB中是这样用的:
先声明EXTERNAL FUNCTION,可在全局也可在局部:
function ulong GetModuleFileName(ulong hModule,ref string lpFilename,ulong nsize) Library "kernel32.dll" Alias for "GetModuleFileNameA"

function long GetWindowLong(ulong hWnd,int nIndex) library "user32.dll" Alias for "GetWindowLongA"
然后可在一个窗口的某一按钮单击事件中完成调用。
string strapp
ulong hmodule
strapp=space(50)
hmodule=GetWindowLong(handle(this),-6)
GetModuleFileName(hmodule,strapp,49)
messagebox("APPLICATION NAME",strapp)
得到这个STRAPP后,用字符串符数把应用程序名去掉就是目录名了。

不过要注意,我在调试过程中发现只有在编译成EXE以后,才能获得实际应用程序目录名,如果在集成环境中执行,得到的是PB60。EXE的路径。
lyxinfo 2000-04-06
  • 打赏
  • 举报
回复
使用WINAPI函数Function long GetCurrentDirectoryA(long nBufferLength,ref char lpBuffer[256] ) Library"kernel32.dll",可以得到程序运行时的当前路径
Lin 2000-04-05
  • 打赏
  • 举报
回复
DWORD GetModuleFileName(
HMODULE hModule, // handle to module to find filename for
LPTSTR lpFilename, // pointer to buffer for module path
DWORD nSize // size of buffer, in characters
);
xrh 2000-04-05
  • 打赏
  • 举报
回复
只能用windows API函数

1,076

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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