社区
VB基础类
帖子详情
送分:关于调用外部程序!
loypen
2002-06-27 12:51:02
本人开发了一个小系统,其中要调用一个其他语言(Fortran)编写的计算程序.但一调用就出错,而试着调用notepad则“百发百中”。具体程序:
-------------------------------------------------------
taskId = Shell(App.Path & "\main.exe /file.txt", 1)
-------------------------------------------------------
...全文
69
27
打赏
收藏
送分:关于调用外部程序!
本人开发了一个小系统,其中要调用一个其他语言(Fortran)编写的计算程序.但一调用就出错,而试着调用notepad则“百发百中”。具体程序: ------------------------------------------------------- taskId = Shell(App.Path & "\main.exe /file.txt", 1) -------------------------------------------------------
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
27 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dengwei007
2002-07-07
打赏
举报
回复
使用vba中的shell确实是有些问题的,我以前用它调用大型游戏都会有问题,
最好用
ShellExecute 0,"open","main.exe","\file.txt","main.exe所在目录",SW_SHOWNORMAL
VB声明
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
AWolfBoy
2002-07-07
打赏
举报
回复
從調用說是沒有問題的﹐我覺得的可能是你的main.exe程序的原因﹐
你應該從main.exe中找原因。
你的main.exe是不是什么條件識別之類的語句呢﹗
AWolfBoy
2002-07-07
打赏
举报
回复
從調用說是沒有問題的﹐我覺得的可能是你的main.exe程序的原因﹐
你應該從main.exe中找原因。
你的main.exe是不是什么條件識別之類的語句呢﹗
loypen
2002-07-07
打赏
举报
回复
对了,我是在win2k pro上运行的。
不知道为什么有时候能运行main.exe,有时又不行,请高手指点!
Dim taskId
taskId = Shell(App.Path & "\calcu.exe /file.txt",1)
loypen
2002-07-03
打赏
举报
回复
兄台所说的仍旧不能解决我的问题呀!
qbilbo
2002-06-30
打赏
举报
回复
如果不行再试一下:
taskId = Shell(App.Path & "\main.exe" & " " & """" & app.path & "\file.txt" & """", 1)
请确保程序所在目录不是根目录。
再给你一个用shell同步打开的例子吧,如果上面的方法还不行,你再试试这个。
Dim wshShell,rCode
set wshShell = CreateObject( "wscript.shell")
rCode = wshShell.Run ("C:\WINDOWS\CALC.EXE", 8, True)
qbilbo
2002-06-30
打赏
举报
回复
试一下
taskId = Shell(App.Path & "\main.exe " & """" & "/" & app.path & "\file.txt" & """", 1)
loypen
2002-06-29
打赏
举报
回复
谁能解决的话可以再加分!
loypen
2002-06-29
打赏
举报
回复
我的main.exe是没有错误的。只要我手动执行的话就能得到结果。
问题是我用shell调用是就不行,注意不是路径问题!
ShellExecute具体该怎么用?我以前用过,结果也是出现shell函数一样的错误。我不知道是不是我用错ShellExecute,但shell函数我真的很了解了,他无法完成我的任务。
hebeiheweiwei
2002-06-29
打赏
举报
回复
Shell 函数
执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。
语法
Shell(pathname[,windowstyle])
Shell 函数的语法含有下面这些命名参数:
部分 描述
pathname 必要参数。Variant (String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。
Windowstyle 可选参数。Variant (Integer),表示在程序运行时窗口的样式。如果 windowstyle 省略,则程序是以具有焦点的最小化窗口来执行的。
windowstyle 命名参数有以下这些值:
常量 值 描述
vbHide 0 窗口被隐藏,且焦点会移到隐式窗口。
VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。
VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示。
VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。
VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。
VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。
说明
如果 Shell 函数成功地执行了所要执行的文件,则它会返回程序的任务 ID。任务 ID 是一个唯一的数值,用来指明正在运行的程序。如果 Shell 函数不能打开命名的程序,则会产生错误。
注意 缺省情况下,Shell 函数是以异步方式来执行其它程序的。也就是说,用 Shell 启动的程序可能还没有完成执行过程,就已经执行到 Shell 函数之后的语句。
hebeiheweiwei
2002-06-29
打赏
举报
回复
ShellExecute
VB声明
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
说明
查找与指定文件关联在一起的程序的文件名
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hwnd Long,指定一个窗口的句柄,有时候,windows程序有必要在创建自己的主窗口前显示一个消息框
lpOperation String,指定字串“open”来打开lpFlie文档,或指定“Print”来打印它
lpFile String,想用关联程序打印或打开一个程序名或文件名
lpParameters String,如lpszFlie是可执行文件,则这个字串包含传递给执行程序的参数
lpDirectory String,想使用的完整路径
nShowCmd Long,定义了如何显示启动程序的常数值。
SW_HIDE 隐藏窗口,活动状态给令一个窗口
SW_MINIMIZE 最小化窗口,活动状态给令一个窗口
SW_RESTORE 用原来的大小和位置显示一个窗口,同时令其进入活动状态
SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态
SW_SHOWMAXIMIZED 最大化窗口,并将其激活
SW_SHOWMINIMIZED 最小化窗口,并将其激活
SW_SHOWMINNOACTIVE 最小化一个窗口,同时不改变活动窗口
SW_SHOWNA 用当前的大小和位置显示一个窗口,不改变活动窗口
SW_SHOWNOACTIVATE 用最近的大小和位置显示一个窗口,同时不改变活动窗口
SW_SHOWNORMAL 与SW_RESTORE相同
vica
2002-06-29
打赏
举报
回复
你确定MAIN没错?
loypen
2002-06-28
打赏
举报
回复
高手看过来!
高手看过来!
help me.
help me.
xxlroad
2002-06-27
打赏
举报
回复
请问:
你要达到什么效果??
loypen
2002-06-27
打赏
举报
回复
我检查过n次了,应该不是路径问题。
griefforyou
2002-06-27
打赏
举报
回复
如果程序放在根目录下App.Path的值为 C:\ D:\这样的
如果不是根目录下则为 C:\Windows D:\Winnt 这样的,没有\
loypen
2002-06-27
打赏
举报
回复
帮忙!!!
loypen
2002-06-27
打赏
举报
回复
我是用vb编写输入有限元计算的数据,然后调用fortran程序计算。
关键一步是在vb里调用该有限元程序时出错!!
网络咖啡
2002-06-27
打赏
举报
回复
学习
loypen
2002-06-27
打赏
举报
回复
参数应该不会有错,是不是要先给该外部程序申请一个进程?
据说vc可以产生进程,执行像我这样的外部程序就没问题。
有谁知道vb里怎么做吗?
cornerxu(面)困的话就明天再打扰了。
加载更多回复(7)
调用
外部
程序
的几种方法
有详细介绍的博客: C++执行
外部
程序
(
调用
外部
exe
程序
) - JavaShuo C++
调用
外部
应用
程序
的方法的整理总结(常用) (shuzhiduo.com) 我这里主要总结下几种方法的优缺点 前面三种方法,相对简单,但是使用也有局限,方法四相对复杂,但是灵活性高,能满足多种需求。System、ShellExecute和WinExec命令用于简单的作业。如果要完全控制一个新进程,就必须
调用
CreateProcess。 方法1. WinExec WinExec()函数的作⽤是执⾏指定的
程序
。
VB.NET
调用
外部
程序
总结
本次总结一下VB.NET
调用
外部
程序
的方法,在总结代码之前,先讲述一下,电脑快捷键
调用
外部
程序
方法。下一篇详细讲述一下,VB,NET
调用
外部
程序
的方法, 1、电脑win+R
调用
外部
程序
方法: 键盘快捷键输入win+R,然后输入CMD,如下图1,然后如果想
调用
其它盘里的
程序
,就可需要先转的相对应的盘,然后输入目标
程序
的.exe路径,以图2为例。输入后回车既可以
调用
外部
程序
。这种方法的原理是直接
调用
可执行
程序
的.exe
程序
来
调用
,这是第一种方法,但这种方法有个弊端,如果.exe文件需要其他的配套文件,则可能出现
[QT]QProcess
调用
外部
程序
以及一些小坑
需要在一个页面上快捷
调用
其他
程序
并且保持状态,需要解决的只有两点。 1、如何
调用
外部
程序
2、
调用
完
程序
后如何保持
程序
状态 当前环境:QT 5.9.9 windows10 1、
调用
外部
程序
使用QProcess
调用
外部
程序
目录 前言 一、QProcess基本介绍 总结 前言 在实际的项目开发中往往会有
调用
外部
程序
的需求。 例如:主
程序
中添加
调用
记事本的快捷方式 一、QProcess基本介绍 QProcess是Qt专门用于
外部
程序
启动并与之通信的类。启动
外部
程序
主要分为两种方式。 一体式(将随主
程序
的退出而退出): void start(QIODevice::OpenMode mode = ReadWrite) voidstart(const QString &program, const .
python
调用
外部
程序
打开指定文件_Python
调用
外部
程序
1、os模块的execl方法Python的execl系统方法同Unix的exec系统
调用
是一致的。这些方法适用于在子进程中
调用
外部
程序
的情况,因为
外部
程序
会替换当前进程的代码,不会返回。也就是说,这个shell进程被占领,将执行第一个execl的命令
程序
而不再返回。2、使用os模块的system方法system方法会创建子进程运行
外部
程序
,方法只返回
外部
程序
的运行结果。这个方法比较适用于
外部
程序
没...
VB基础类
7,765
社区成员
197,605
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章