三个SDK函数 winexec, shellexecute,createprocess可以使用。
WinExec最简单,两个参数,前一个指定路径,后一个指定显示方式.
CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL代替,它可以
指定进程的安全属性,继承信息,类的优先级等等.来看个很简单的 Example:
STARTUPINFO stinfo; //启动窗口的信息
PROCESSINFO procinfo; //进程的信息
CreateProcess(NULL,_T("notepad.exe"),NULL,NULL.FALSE, NORMAL_PRIORITY_
CLASS,NULL,NULL, &stinfo,&procinfo);
ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),并对外部程序有一定的控制。
有几个API函数都可以实现这些功能,但是在大多数情况下ShellExecute是更多的被使用的,同时它并不是太复杂。下面举例说明它的用法。
ShellExecute(Handle, ''open'', PChar(''c:/test/app.exe''), nil, nil, SW_SHOW);
ShellExecute(Handle, ''open'', PChar(''notepad''), PChar(''c:/test/readme.txt''), nil, SW_SHOW);
ShellExecute(this->m_hWnd,"open","notepad.exe","log.txt","",SW_SHOW );
ShellExecute(Handle, ''print'', PChar(''c:/test/test.doc''), nil, nil, SW_SHOW);
注意:可能你会看到word暂时的被打开,但它会自动关闭。
ShellExecute(Handle, ''open'', PChar(''http://www.festra.com/''), nil, nil, SW_SHOW);
ShellExecute(Handle, ''open'', PChar(''c:/test/readme.txt''), nil, nil, SW_SHOW);
ShellExecute(Handle, ''explore'', PChar(''c:/windows)'', nil, nil, SW_SHOW);
ShellExecute(Handle, ''open'', PChar(''command.com''), PChar(''/c copy file1.txt file2.txt''), nil, SW_SHOW);
ShellExecute(Handle, ''open'', PChar(''command.com''), PChar(''/k dir''), nil, SW_SHOW);