CreateProcess创建telnet进程提示文件不存在

1. 确保你的系统安装了telnet,具体方法网上搜。

2.对于32位系统,CreateProcess(NULL, "telnet.exe 127.0.0.1 60000", NULL, NULL, TRUE, NULL, NULL, NULL, &stStartInfo,&stProcInfo);

3.对于64位系统,CreateProcess(NULL, "c:\\windows\\sysnative\\telnet.exe 127.0.0.1 60000", NULL, NULL, TRUE, NULL, NULL, NULL, &stStartInfo,&stProcInfo);

在Windows平台上,`CreateProcess`函数是一个非常强大的工具,它允许你在C++中创建一个子进程,并传递命令及其参数。`CreateProcess`的原型通常看起来像这样: ```cpp typedef bool ( WINAPI *CREATE_PROCESS_FUNCTION)(LPCTSTR lpApplicationName, LPCTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCTSTR lpCurrentDirectory, STARTUPINFO* lpStartupInfo, PROCESS_INFORMATION* piProcessInformation); ``` 使用`CreateProcess`的示例代码可能会像下面这样: ```cpp #include <windows.h> #include <tchar.h> STARTUPINFO si = {0}; PROCESS_INFORMATION pi; // 初始化STARTUPINFO结构 si.cb = sizeof(STARTUPINFO); si.dwFlags |= STARTF_USESHOWWINDOW; // 设置窗口模式,如SHOWWindow(SW_HIDE)或SW_SHOW si.wShowWindow = SW_HIDE; // 隐藏窗口 // 指定要执行的命令及参数 TCHAR commandLine[] = _T("cmd.exe /c your_command arg1 arg2"); // 调用CreateProcess if (!CreateProcess(NULL, // 父进程的命令名,NULL表示当前进程 commandLine, // 子进程的命令行字符串 NULL, // 父进程的安全属性,NULL表示继承当前进程的安全属性 NULL, // 子进程的安全属性,NULL表示继承当前进程的安全属性 TRUE, // 是否继承句柄 0, // 创造新进程的标志,默认为0 NULL, // 环境变量,可以指定lpEnvironment NULL, // 当前工作目录,可以指定lpCurrentDirectory &si, // 启动信息 &pi)) { // 进程信息 DWORD exitCode = GetLastError(); // 获取错误代码 // 处理错误... } // 等待子进程完成 WaitForSingleObject(pi.hProcess, INFINITE); // 或设置超时时间 GetExitCodeProcess(pi.hProcess, &exitCode); // 关闭句柄 CloseHandle(pi.hProcess); CloseHandle(pi.hThread); ``` 这个例子中,我们创建了一个新进程,运行的是`cmd.exe`,并且指定了一个命令行参数(这里用`your_command arg1 arg2`代替)。你需要替换`commandLine`变量里的内容为实际需要执行的命令和参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值