我做了一个自定义控件,如果我想在控件中获得程序所在目录怎么办呢,例如我的控件放在c:/system32下,我的程序放在d:\progoram\soft下,现在我要在控件中获得程序地址:即d:\progoram\soft 。怎么获得呢,如果直接用app.path获得的是c:/system32,也就是控件所在目录
解决方案 »
- 关于HOOK
- 能否不声明函数原型就调用外部DLL的函数?
- 有关F1Book1控件加载错误问题..........比较急的,关注者皆有分哦
- {问!!!』如何让一个EXE程序在运行时把自己扶植到指定的地方?回帖有分!!
- 请问这样的分类表的内容,怎样才能按我的要求显示出来 select 语句怎么写。。给个提示。。。
- 客户端的ocx中adodc与sql常常连接不上,为啥?请高手赐教,多谢!
- Visual Basic 6.0和com的有关书籍
- 向Girl1983 (长发女生) 和 大家道歉,没有想到一块小石头激起了千层浪
- VB Winsock 多线程怎样的思路,请教
- 请问在VB6.0中怎样把ADO产生的recordset保存为txt文件
- 如何在vb中设置打印机的各种属性?在线急等。
- 写入注册表失败:字符串自动截断了。哪位大虾帮忙解决
然后再通过进程句柄获得进程的文件地址,结果就可以出来了。说明:绝对父窗口
比如你的ActiveX控件被放入窗口的如下位置:
Form1>Picture1>Picture2>你的控件
这时,因为你的控件处于Picture2的容器中,所以获取的父窗口句柄将是
Picture2.hwnd,而你想取得的是Form1的句柄,所以必须用 Do...Loop While ...
来找出Form1的句柄,当判断父窗口为0的句柄时,那个句柄就是你要的绝对父窗口
的窗口句柄。然后你就可以通过这个句柄获得进程及进程文件地址了。
如果要使用"人类"的方案,则获得绝对父窗口句柄个人认为没那么复杂,使用UserControl.Parent.hWnd 就是了,而UserControl.ContainerHwnd才是控件容器的句柄,要用循环向上找,没必要。