| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 551 人关注过本帖
标题:急!VB中,CommonDialog1与Call Shell会冲突?
收藏  订阅  推荐  打印 
fantasy_spz
Rank: 2
等级:注册会员
帖子:47
积分:622
注册:2006-8-21
急!VB中,CommonDialog1与Call Shell会冲突?

请教高人,我在VB中使用Call Shell调用C语言生成的.exe文件,点击按钮使.exe文件执行,但是现在发生了一个问题,就是我同时用到了CommonDialog1控件来打开文本文件,但是我每次点击过使用这个控件的按钮打开文件之后,再去点击执行.exe文件的按钮,.exe文件执行后,该应用程序找不参数文件,无法顺利运行,请高人指点!项目中,急!!!!
先谢过!!!!!!!!!!!!!
源代码
Private Sub Command2_Click()
    Dim fstr As String
    CommonDialog1.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"
    CommonDialog1.ShowOpen
    fstr = CommonDialog1.FileName
        If fstr <> "" Then
        Text5.Text = fstr
    End If
End Sub

Private Sub Command5_Click()
Call Shell(App.Path + "\windowpick.exe", vbNormalFocus)
End Sub
搜索更多相关主题的帖子: VB中  Shell  Call  源代码  文件  
2008-7-11 16:25
cbean
Rank: 2
等级:注册会员
帖子:44
积分:570
注册:2008-7-11

为何我调试没问题??
2008-7-15 21:50
niugongjie
Rank: 1
等级:新手上路
帖子:1
积分:110
注册:2008-8-18

你好!!呵呵,我也遇到这个问题了,要执行的文件是个fortran生成的exe文件,在没打开commondialogue之前是好的,但是大之后,shell函数就不管用了。
但我用其他的exe文件试过了,没问题。真是怪了!
两种情况shell都返回进程ID,说明程序调用成功,但是fortran编的那个exe文件在打开commondialogue之后怎么就不能处理数据了呢!!?
请问楼上的兄弟解决了吗????
2008-8-18 18:11
Joforn
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:20
帖子:1206
积分:12764
注册:2007-1-2

运行路径的问题
2008-8-20 17:23
fantasy_spz
Rank: 2
等级:注册会员
帖子:47
积分:622
注册:2006-8-21

前面的问题依然没有解决,实在不知道怎么办才好?
请哪个好心的高人帮我解决一下,小弟跪谢了!!!!
2008-9-22 10:36
fantasy_spz
Rank: 2
等级:注册会员
帖子:47
积分:622
注册:2006-8-21

我又遇到了一个新的问题,也不知道是什么原因?
我利用C语言生成了一个.exe文件,该文件的作用是:当该文件运行的时候,要去读取一个参数文件,然后通过读进来的参数运行程序。
可是我利用VB做的界面,点击按钮去执行该.exe文件,却发生打开参数文件时出错,而如果我单纯地去双击该.exe文件,该程序可以成功运行,可是我一点击按钮去调用时,却发生打开参数文件时出错!
我不知道是什么原因?
下面是VB执行.exe文件的代码,不知道哪里有问题,请高人指教!
补充一下:路径肯定是没有问题的。因为我改写调用其它现有的.exe时,是可以顺利执行的!
(“\waveextract”是当前路径下的一个文件夹,而“windowpick.exe”位于该文件夹下)
Private Sub Command2_Click()
Call Shell(App.Path + "\waveextract\windowpick.exe", vbNormalFocus)
End Sub
2008-9-22 11:11
三断笛
Rank: 12Rank: 12Rank: 12
等级:版主
威望:9
帖子:928
积分:10263
注册:2007-5-24

会不会是VB的程序导致C语言不能正确读取你的参数文件呢?
换一个不用读取其他文件的C语言程序看看,如果能正常运行,那就是C程序读取文件出错了,很可能是参数文件路径问题.

滚滚红尘中的白痴..........
2008-9-22 11:30
Joforn
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:20
帖子:1206
积分:12764
注册:2007-1-2

fantasy_spz 在 2008-9-22 11:11 的发言:

我又遇到了一个新的问题,也不知道是什么原因?
我利用C语言生成了一个.exe文件,该文件的作用是:当该文件运行的时候,要去读取一个参数文件,然后通过读进来的参数运行程序。
可是我利用VB做的界面,点击按钮去执 ...
我说的路径问题不是指你的EXE文件路径问题,而是你EXE中调用参数文件时的路径,因为你双击打开一个EXE时,当前路径就是这个EXE文件所在的目录,而你用VB中的Shell调用时,默认的是VB程序所在目录。而这时如果你的被VB调用的C程序在打开文件时只是简单指明了文件名(没指定详细路径)的话那就有可能造成你的C程序打开文件时找不到文件。
2008-9-22 12:25
fantasy_spz
Rank: 2
等级:注册会员
帖子:47
积分:622
注册:2006-8-21

谢谢楼上的指点,我发现了问题,跟楼上所说情况基本一致,非常感谢!
2008-9-22 15:18
fantasy_spz
Rank: 2
等级:注册会员
帖子:47
积分:622
注册:2006-8-21

Joforn兄弟说的非常对,请问如何能解决此类问题?一直没找到合适的处理方法。
2008-9-28 09:18
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.053351 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved