调用可执行文件?????????????

xitsing 2003-01-15 01:05:59
如何在程序中直接调用一个可执行文件?调用时需要加入哪些库文件吗?
打印报表时,若列宽小于所有的字符长度如何处理可以让它自动跳行?
(希望举例说明)
...全文
29 点赞 收藏 12
写回复
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
痞子酷 2003-01-21
system
winexec
ShellExecute
ShellExecuteEx
CreateProcess
回复
oak72 2003-01-21
问个问题?
如果调用的外部程序是个带参数的控制台程序,那么参数对应关系如何?
如:用的函数是execv("CHILD.EXE", argv);
那么被调控制台程序中的argv[1]对应哪个参数?
在命令行下为argv[0],agrv[1],...那么agrv[1]就是第二个。
而在erecv中的第二个参数是"CHILD.EXE"+arg[1]+...
在execl中的第二个参数仍然为argv[0]。
不知我有没有说清这个问题。

回复
zywx 2003-01-20
ShellExecute(Handle,0,"calc.exe",0,0,0);

WinExec("calc.exe",SW_SHOW);
两个都能启动计算器
回复
oak72 2003-01-20
用system(char *command)好象也行啊
回复
halibut 2003-01-20
UP!
回复
xt_nibin 2003-01-20
最好用CreateProcess();这是微软的建议,另用这函数还可以实现一些特殊的目的,如主程序可以控制被调程序等!
回复
oak72 2003-01-20
请问Winprocs的类(或结构)是在哪个库中定义的,谢了!
回复
cscer 2003-01-20
查找窗口名称为“窗体名”的窗口,

获取它的句柄,

向该窗口发送关闭消息
回复
oak72 2003-01-20
请问如何再把此外部程序关闭?
下面的api函数有谁知道含义,帮帮忙了。

HWnd HWndCalculator;
HWndCalculator = Winprocs->FindWindow(nil, "窗体名");
// close the exist procdure
if (HWndCalculator)
SendMessage(HWndCalculator, WM_CLOSE, 0, 0);
回复
lifehxh 2003-01-15
当然还有如:WinExec(charname ,SW_RESTORE);CreateProcess();等等你去查一查还会有其它的
回复
lifehxh 2003-01-15
函数名: execl
功 能: 装入并运行其它程序的函数
用 法: int execl(char *pathname, char *arg0, arg1, ..., argn, NULL);
int execle(char *pathname, char *arg0, arg1, ..., argn, NULL,
char *envp[]);
int execlp(char *pathname, char *arg0, arg1, .., NULL);
int execple(char *pathname, char *arg0, arg1, ..., NULL,
char *envp[]);
int execv(char *pathname, char *argv[]);
int execve(char *pathname, char *argv[], char *envp[]);
int execvp(char *pathname, char *argv[]);
int execvpe(char *pathname, char *argv[], char *envp[]);
程序例:

/* execv example */
#include <process.h>
#include <stdio.h>
#include <errno.h>

void main(int argc, char *argv[])
{
int i;

printf("Command line arguments:\n");
for (i=0; i<argc; i++)
printf("[%2d] : %s\n", i, argv[i]);

printf("About to exec child with arg1 arg2 ...\n");
execv("CHILD.EXE", argv);

perror("exec error");

exit(1);
}


回复
l_clove 2003-01-15
用这个函数可以调用可执行文件
HINSTANCE ShellExecute(

HWND hwnd, // handle to parent window
LPCTSTR lpOperation, // pointer to string that specifies operation to perform
LPCTSTR lpFile, // pointer to filename or folder name string
LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters
LPCTSTR lpDirectory, // pointer to string that specifies default directory
INT nShowCmd // whether file is shown when opened
);
回复
发动态
发帖子
Windows SDK/API
创建于2007-08-02

1202

社区成员

C++ Builder Windows SDK/API
申请成为版主
社区公告
暂无公告