首页
社区
课程
招聘
[讨论]怎样获取程序自身句柄?
发表于: 2006-3-6 10:39 7178

[讨论]怎样获取程序自身句柄?

HSQ 活跃值
8
2006-3-6 10:39
7178
一般情况下,当正在运行的程序要获得自身文件句柄时,却无法用CreateFile打开程序自身的方法得到自身句柄,此时该如何解决?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 233
活跃值: (130)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
没看明白你想问什么
2006-3-6 11:10
0
雪    币: 381
活跃值: (140)
能力值: ( LV13,RANK:330 )
在线值:
发帖
回帖
粉丝
3
sorry,我想说的是获得程序自身程序文件的文件句柄,而不是程序自身模块句柄
2006-3-6 11:31
0
雪    币: 233
活跃值: (130)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
GetModuleFileName
CreateFile
2006-3-6 11:36
0
雪    币: 381
活跃值: (140)
能力值: ( LV13,RANK:330 )
在线值:
发帖
回帖
粉丝
5
           ... ...
	invoke GetModuleFileName,NULL,addr selfname,MAX_PATH

	push   NULL 
	push   FILE_ATTRIBUTE_NORMAL
	push   OPEN_EXISTING 
	push   NULL 
	push   FILE_SHARE_READ+FILE_SHARE_WRITE
	push   GENERIC_READ+GENERIC_WRITE 
	push   offset selfname
	call   CreateFile 
  cmp    eax,INVALID_HANDLE_VALUE
	jz     Err_CreateFile
	mov    [ebx],eax 
	;打开想要映射的文件,返回该文件句柄
	push	offset Text_open_suc
	call	StdOut
	jmp	exit
Err_CreateFile:
	push	offset Text_open_err
	call	StdOut
           ... ....

        我试过,还是不行,打开文件还是出错????
2006-3-6 18:41
0
雪    币: 233
活跃值: (130)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
6
找MSDN查查参数
2006-3-6 18:56
0
雪    币: 381
活跃值: (140)
能力值: ( LV13,RANK:330 )
在线值:
发帖
回帖
粉丝
7
通过跟踪C中的fopen(),已找到出错原因,
将 push   GENERIC_READ+GENERIC_WRITE 该为
   push   GENERIC_READ
程序文件自身不能以写(GENERIC_WRITE)方式打开
不过,还得谢谢"南蛮妈妈"的耐心帮助
2006-3-7 18:34
0
游客
登录 | 注册 方可回帖
返回
//