社区
C++ Builder
帖子详情
求救:关于net send,net view或者ipconfig之类命令的
limu810812
2003-08-29 11:13:07
如何调用例如net send,net view或者ipconfig……之类的命令,并且把结果用控件显示?
...全文
52
8
打赏
收藏
求救:关于net send,net view或者ipconfig之类命令的
如何调用例如net send,net view或者ipconfig……之类的命令,并且把结果用控件显示?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
limu810812
2003-08-30
打赏
举报
回复
谢谢各位了!
不好意思分数少了点,以后再提问的时候会注意的。
今天晚上来结帖
jingrunx
2003-08-30
打赏
举报
回复
RedirectOutput(NULL, edtCommandLine->Text.c_str(),
OutputMemo->Lines, ErrorMemo->Lines,
cbxShowWindow->Checked ? SW_SHOW : SW_HIDE);
不过你给的分太少了
jingrunx
2003-08-30
打赏
举报
回复
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <algorithm>
using namespace std;
#include "RedirectThread.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
__fastcall TRedirectThread::TRedirectThread(bool CreateSuspended, HANDLE hHandle, TStrings* Strings)
: TThread(CreateSuspended), hRedirect(hHandle), OutputWindow(Strings)
{
FreeOnTerminate = true;
}
//---------------------------------------------------------------------------
void __fastcall TRedirectThread::Execute()
{
char lpszBuf[256];
char *firstp, *lastp, *curp;
DWORD nNumOfBytes, nReadBytes, nLineBytes;
__try {
try {
firstp = lpszBuf;
nNumOfBytes = sizeof(lpszBuf);
while(!Terminated && ::ReadFile(hRedirect, lpszBuf, nNumOfBytes, &nReadBytes, NULL)) {
strBuffer.append(lpszBuf, nReadBytes);
int spos = 0, epos;
while(true) {
epos = strBuffer.find(lpszEnterFlag, spos);
if(epos == -1) break;
strLine.assign(strBuffer, spos, epos-spos);
Synchronize(Update);
spos = epos + strlen(lpszEnterFlag);
}
strBuffer.assign(strBuffer, spos, strBuffer.size()-spos);
}
} catch(EOSError& E) {
}
} __finally {
::CloseHandle(hRedirect);
}
}
//---------------------------------------------------------------------------
void __fastcall TRedirectThread::Update(void)
{
OutputWindow->Add(strLine.c_str());
}
//---------------------------------------------------------------------------
void __stdcall RedirectOutput(
LPTSTR pApplicationName, LPTSTR lpCommandLine,
TStrings* StdOutputStrings, TStrings* StdErrorStrings, WORD swShow)
{
HANDLE hStdOutput, hStdError;
GetCreatedProcessOutHandle(pApplicationName, lpCommandLine, swShow,
&hStdOutput, &hStdError);
if(StdOutputStrings) {
new TRedirectThread(false, hStdOutput, StdOutputStrings);
}
if(StdErrorStrings) {
new TRedirectThread(false, hStdError, StdErrorStrings);
}
}
//---------------------------------------------------------------------------
HANDLE __stdcall GetCreatedProcessOutHandle(
LPTSTR pApplicationName, LPTSTR lpCommandLine, WORD swShow,
PHANDLE hStdOutput, PHANDLE hStdError)
{
HANDLE hStdOutputRead, hStdOutputWrite;
HANDLE hStdErrorRead, hStdErrorWrite;
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
Win32Check(::CreatePipe(&hStdOutputRead, &hStdOutputWrite, &sa, 0));
Win32Check(::CreatePipe(&hStdErrorRead, &hStdErrorWrite, &sa, 0));
STARTUPINFO si;
PROCESS_INFORMATION pi;
si.cb = sizeof(si);
::GetStartupInfo(&si);
si.dwFlags |= STARTF_USESHOWWINDOW;
si.wShowWindow = swShow;
si.dwFlags |= STARTF_USESTDHANDLES;
si.hStdOutput = hStdOutputWrite;
si.hStdError = hStdErrorWrite;
Win32Check(::CreateProcess(pApplicationName, lpCommandLine,
NULL, NULL, TRUE, DETACHED_PROCESS, NULL, NULL, &si, &pi));
Win32Check(::CloseHandle(hStdOutputWrite));
Win32Check(::CloseHandle(hStdErrorWrite));
if(hStdOutput) *hStdOutput = hStdOutputRead;
if(hStdError) *hStdError = hStdErrorRead;
return hStdOutputRead;
}
//---------------------------------------------------------------------------
jingrunx
2003-08-30
打赏
举报
回复
//---------------------------------------------------------------------------
#ifndef RedirectThreadH
#define RedirectThreadH
//---------------------------------------------------------------------------
#include <string>
using namespace std;
#include <Classes.hpp>
//---------------------------------------------------------------------------
void __stdcall RedirectOutput(
LPTSTR pApplicationName, LPTSTR lpCommandLine,
TStrings* StdOutputStrings, TStrings* StdErrorStrings,
WORD swShowWindow = SW_HIDE);
HANDLE __stdcall GetCreatedProcessOutHandle(
LPTSTR pApplicationName, LPTSTR lpCommandLine,
WORD swShowWindow,
PHANDLE hStdOutput, PHANDLE hStdError);
//---------------------------------------------------------------------------
class TRedirectThread : public TThread
{
static const char* lpszEnterFlag;
private:
HANDLE hRedirect;
string strBuffer, strLine;
TStrings* OutputWindow;
protected:
void __fastcall Execute();
void __fastcall Update(void);
public:
__fastcall TRedirectThread(bool CreateSuspended, HANDLE hHandle, TStrings* Strings);
};
const char* TRedirectThread::lpszEnterFlag = "\r\n";
//---------------------------------------------------------------------------
#endif
sprewellkobe
2003-08-29
打赏
举报
回复
PIPE
limu810812
2003-08-29
打赏
举报
回复
能不能具体点,举个例证 谢谢!
nuaacims
2003-08-29
打赏
举报
回复
用ShellExecute方式调用这些命令,然后用管道pipe把结果输出到一个memo之类的文本控件中
FallenAngel
2003-08-29
打赏
举报
回复
你自己搜一下吧
关键字可以是
Pipe 管道
ipc
onfig
:未找到
命令
ipc
onfig
: 未找到
命令
解决: Centos7.x 中查看网络的
命令
是:ip addr 如果需要使用 ifc
onfig
,请先安装 net-tools yum install net-tools
linux下
ipc
onfig
命令
报:command not found 解决方法
-bash:
ipc
onfig
: command not found 解决办法:
ipc
onfig
找不到那说明没有将
ipc
onfig
命令
配置到环境变量。 需要配置 1.查看/sbin 是否在PATH 2.使用管理员权限 运行vi /etc/profile 在文件末加入以下语句: ...
命令
行计算机
ipc
onfig
,
ipc
onfig
命令
,教您
ipc
onfig
命令
怎么使用
在平时的工作中,我们常常会使用
命令
提示符,而在
命令
提示符中我们最常使用的
命令
要数
ipc
onfig
了。很多用户不知道
ipc
onfig
命令
怎么使用,这就尴尬了。下面,小编跟大家讲解
ipc
onfig
命令
的使用方法。在电脑中通过
命令
...
常用的网络
命令
五:net
命令
六:at
命令
七:tracert
命令
八:rote
命令
九:nbtstat
命令
常见的网络
命令
有:ping
命令
,
ipc
onfig
命令
,netstat
命令
,arp
命令
,net
命令
,at
命令
,tracert
命令
,rote
命令
,nbtstat
命令
等。下面简单...
ipc
onfig
命令
详细图解
一 操作实例 不带参数; all参数; /release和/renew displaydns参数就是显示本地DNS内容;相当多; 看下,上了会网,缓存的DNS很多; ...二
ipc
onfig
命
C++ Builder
13,826
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章