首页
社区
课程
招聘
[求助]程序中的debug,不懂判断文件是否存在,即使不存在,也显示出来
发表于: 2006-8-17 22:32 4221

[求助]程序中的debug,不懂判断文件是否存在,即使不存在,也显示出来

2006-8-17 22:32
4221
.386
.Model Flat,stdcall
Option CaseMap:None
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include user32.inc
include kernel32.inc
include comdlg32.inc

includelib user32.lib
includelib kernel32.lib
includelib comdlg32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data
ofn OPENFILENAME <0>      ;打开对话框要用到的函数结构
szFileName db 256 dup(0)  
szFilterString db '选择要打开的文件(*.*)',0,'*.*',0 ;只查找所有文件
szMyTitle db '选择你要打开的文件',0
szMessageTitle db '文件',0
szNoFoud db '你没有选择文件',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
.code
GetFileNameFromDialog proc         
   mov ofn.lStructSize,sizeof ofn
        mov ofn.lpstrFilter,offset szFilterString
        mov ofn.lpstrFile,offset szFileName
        mov ofn.nMaxFile,265
        mov ofn.lpstrTitle,offset szMyTitle
        invoke GetOpenFileName,addr ofn
        ret
GetFileNameFromDialog endp   
start:
        call GetFileNameFromDialog  
        .if eax!=NULL  ;如果eax值不为空
           invoke MessageBox,NULL,addr szFileName,addr szMessageTitle,NULL
        invoke ExitProcess,NULL
      .endif
      invoke MessageBox,NULL,addr szNoFoud,addr szMessageTitle,NULL
      invoke ExitProcess,NULL
end start

类似于一个选择文件的对话框,选择了,就显示出来,
没选择,就提示:"没有选择文件"

问题在于,如不选择文件,而是随便输入字符,

它没有检测是否存在这个,也显示出来

请问怎么样做才能先判断是否存在这个文件,然后选择,然后显示?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 196
活跃值: (135)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
2
可以试试这样的:
当点打开按钮时就会得到含有路径和文件名信息的字符串,然后用CreateFile函数并传递OPEN_EXISTING作为参数,如果成功则返回文件句柄,如失败请去参考MSDN中的说明,
最后不用时别忘了关闭。
2006-8-17 22:55
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
.if eax!=NULL  ;如果eax值不为空

;在这里加上查询该文件是否存在的语句就行了吧?

           invoke MessageBox,NULL,addr szFileName,addr szMessageTitle,NULL

查询文件是否存在的函数很多,比如CreateFile,FindFirstFile等等,参数设置请参照MSDN
2006-8-18 10:40
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
4
恩 我查了 这个函数有几个参数,我这就修改看看去.....
2006-8-18 20:14
0
游客
登录 | 注册 方可回帖
返回
//