社区
C++ Builder
帖子详情
如何调用其他应用程序传递两个参数过去?
mmfeng
2011-01-28 09:29:27
我看到公司的ERP程序,登录后它有一个主程序,主程序中可调用相应的其他程序,如:主界面中有“跟单系统”、“物料系统”等图标,当点击“跟单系统”图标后,就会调用跟单系统的可执行程序,它能检测出用户名和密码,并根据用户所在的组给予相应的权限。如果没有登录直接双击硬盘的跟单系统可执行程序,则会提示“没有登录。。。。,请登录后操作”的提示。
我想做出这个效果,请问如何调用并传递参数过去,被调用的程序如何能接收到这些参数?
...全文
116
5
打赏
收藏
如何调用其他应用程序传递两个参数过去?
我看到公司的ERP程序,登录后它有一个主程序,主程序中可调用相应的其他程序,如:主界面中有“跟单系统”、“物料系统”等图标,当点击“跟单系统”图标后,就会调用跟单系统的可执行程序,它能检测出用户名和密码,并根据用户所在的组给予相应的权限。如果没有登录直接双击硬盘的跟单系统可执行程序,则会提示“没有登录。。。。,请登录后操作”的提示。 我想做出这个效果,请问如何调用并传递参数过去,被调用的程序如何能接收到这些参数?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mmfeng
2011-01-29
打赏
举报
回复
谢谢RedProgramer,按你的方法做出来了,结贴。
RedProgramer
2011-01-29
打赏
举报
回复
我上面说的是VC的,下面是C++Builder的
技巧1:首先,也许是最简单的方法是调用VCL ParaStr()函数。你可使用ParamCount()函数来确定到底有多少个命令行参数传递给了应用程序。
ParamStr需要一个整数参数并且返回一个AnsiString对象。若参数为0, ParamStr 将返回可执行文件的全称路径。若参数为1,将返回程序名及第一个命令行参数。若参数为2,将返回第二个参数,等等。作为一个实践,开启一个新的项目,在主窗口上放置5个Label,将下面的代码添加到窗口的构造函数中:
Label1-> Caption = ParamStr(0);
Label2-> Caption = ParamStr(1);
Label3-> Caption = ParamStr(2);
Label4-> Caption = ParamStr(3);
Label5-> Caption = ParamStr(4);
再运行程序。一般应能看到类似字符串: E:\CBUILDER\PROJECTS\PROJECT1.EXE如果没传递参数到程序,那么Label2到Label5是空字符串。关闭程序,从C++Builder菜单中选择 Run | Parameters。输入几个参数(-debug -testing -param)再次运行程序。你将看到: E:\CBUILDER\PROJECTS\PROJECT1.EXE
-debug
-testing
-param
提示: ParamStr 对目录中的空格能智能判断。为证实这点,把生成的EXE文件拷贝到Program Files目录下再运行它,你将会看到ParamStr(0)返回全路径,并包含空格。
技巧2:第二个方法就是调用GetCommandLine API函数。GetCommandLine不需要参数,并且返回一个C风格的char *,包含全部的命令行参数。你将不得不分解字符串以取得相关参数。
Label5-> Caption = AnsiString(GetCommandLine());运行后,Label5将为: "E:\CBuilder\Projects\Project1.exe " -debug -testing -param
RedProgramer
2011-01-29
打赏
举报
回复
Argv[1] 是第一个参数,Argv[0]为程序名自身
RedProgramer
2011-01-29
打赏
举报
回复
DWORD Argc;
LPTSTR * Argv;
#ifdef UNICODE
Argv = CommandLineToArgvW(GetCommandLineW(), &Argc );
#else
Argc = (DWORD) __argc;
Argv = __argv;
#endif
if(Argc<2)
{
AfxMessageBox("ûÓÐÃüÁîÐвÎÊý");
return FALSE;
}
Argv 中就是命令行参数
mmfeng
2011-01-29
打赏
举报
回复
例如我有一个主程序的窗口 fmMain,另有一个要调用的可执行程序:test.exe,用这个能调用到它
String str;
str= "username/pw ";
::ShellExecute(0, 0, "test.exe", str.t_str(), "E:\\c_program\\TimeClock\\Debug",SW_SHOW);
但是怎么在 test.ext 中能收到它的参数呢?要怎么写法?
VB脚本
调用
exe
应用程序
并
传递
参数
VB脚本
调用
应用程序
,并
传递
参数
给exe
应用程序
; Private Sub CommandButton1_Click() Dim a a = Shell("D:\\ExperimentLineWO.exe 123 abc", 1) End Sub 测试发现Winform接收到的 第一个
参数
是 D:\\...
C#/WPF
应用程序
A
调用
WPF编写的
应用程序
B的exe时,
参数
传递
问题
WPF中,
应用程序
A
调用
WPF编写的
应用程序
B的exe,
参数
传递
给B的 主要方法: 1、在App.xaml.cs中的App类中,重载“OnStartup”函数 public partial class App : Application { protected override void On...
c51 语言指针与数组 函数
调用
,C51中函数
调用
时
参数
是怎么
传递
的?
先说一下首先问一个问题,C51 中函数
调用
时
参数
是怎么
传递
的?你肯定会说是通过堆栈把实参压栈
传递
的对吧?不对哦,8051 单片机内存十分有限,没有软件堆栈,函数
调用
不通过堆栈来
传递
形参,而硬件堆栈空间也十分...
浏览器中
调用
外部程序并
传递
参数
比如我们想在浏览器中
调用
本机的记事本程序 1.在注册表里面新增如下并修改值 添加修改注册表以下地方: 当然是安装程序后直接可以注册表注入了,比如迅雷 qq等 HKEY_CLASSES_ROOT\senssic\shell\open...
使用Unity向其他程序
传递
参数
,
两个
程序之间如何进行通信
使用Unity想起他程序
传递
参数
暂时没有什么事情做来玩啦。
C++ Builder
13,826
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章