C++ 编写一个WIN32程序,向CMD传递参数
C++编写一个win32程序,向CMD传递参数可以参考以下.net程序,希望能详细说明p=newProcess();p.StartInfo.FileName="cmd.e...
C++ 编写一个win32程序,向CMD传递参数
可以参考以下.net程序,希望能详细说明
p = new Process();
p.StartInfo.FileName = "cmd.exe ";
// 这里是关键点,不用Shell启动/重定向输入/重定向输出/不显示窗口
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
p.StandardInput.WriteLine( "ping 127.0.0.1 ");// 向cmd.exe输入command
p.StandardInput.WriteLine( "exit ");
p.WaitForExit(60000);
string s = p.StandardOutput.ReadToEnd();// 得到cmd.exe的输出
p.Close();
下面的方法也可以参考
#include<stdlib.h>/*头文件包含*/
int main()
{
system("在这里写参数");
}
但每传递一个参数就要产生一个窗体。会产生很多窗体的,不好。然后,我想telnet一个机子,不知怎么传递密码,用户。。。。。 展开
可以参考以下.net程序,希望能详细说明
p = new Process();
p.StartInfo.FileName = "cmd.exe ";
// 这里是关键点,不用Shell启动/重定向输入/重定向输出/不显示窗口
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
p.StandardInput.WriteLine( "ping 127.0.0.1 ");// 向cmd.exe输入command
p.StandardInput.WriteLine( "exit ");
p.WaitForExit(60000);
string s = p.StandardOutput.ReadToEnd();// 得到cmd.exe的输出
p.Close();
下面的方法也可以参考
#include<stdlib.h>/*头文件包含*/
int main()
{
system("在这里写参数");
}
但每传递一个参数就要产生一个窗体。会产生很多窗体的,不好。然后,我想telnet一个机子,不知怎么传递密码,用户。。。。。 展开
1个回答
展开全部
首先传递多个参数可以用&,例如下面的命令使cmd.exe执行ping之后再执行dir命令:
cmd /c ping 127.0.0.1>ping.txt & dir >dir.txt
再次,启动cmd有很多种方法,system这就是其中一种
还有WinExec函数,如:WinExec("cmd.exe /c dir>ping.txt", 0);
再有ShellExecute函数,如ShellExecute(NULL,"open","cmd.exe","/c dir>ping.txt",NULL, SW_HIDE );
当然还有CreateProcess函数了。
所有示例如下:
#include <stdio.h>
#include <windows.h>
// win32程序的入口函数
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// int a = WinExec("cmd.exe /c dir>ping.txt", 0);
// ShellExecute(0, "open", "http://www.neu.edu.cn/default.htm",NULL,NULL,SW_SHOWNORMAL);
// ShellExecute(NULL,"open","cmd.exe","/c dir>ping.txt",NULL, SW_HIDE );
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
TCHAR szCommandLine[] = TEXT("cmd.exe /c dir>ping.txt");
CreateProcess(NULL,szCommandLine,NULL,NULL,
FALSE,0,NULL,NULL,&si, &pi);
return 0;
}
cmd /c ping 127.0.0.1>ping.txt & dir >dir.txt
再次,启动cmd有很多种方法,system这就是其中一种
还有WinExec函数,如:WinExec("cmd.exe /c dir>ping.txt", 0);
再有ShellExecute函数,如ShellExecute(NULL,"open","cmd.exe","/c dir>ping.txt",NULL, SW_HIDE );
当然还有CreateProcess函数了。
所有示例如下:
#include <stdio.h>
#include <windows.h>
// win32程序的入口函数
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// int a = WinExec("cmd.exe /c dir>ping.txt", 0);
// ShellExecute(0, "open", "http://www.neu.edu.cn/default.htm",NULL,NULL,SW_SHOWNORMAL);
// ShellExecute(NULL,"open","cmd.exe","/c dir>ping.txt",NULL, SW_HIDE );
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
TCHAR szCommandLine[] = TEXT("cmd.exe /c dir>ping.txt");
CreateProcess(NULL,szCommandLine,NULL,NULL,
FALSE,0,NULL,NULL,&si, &pi);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询