社区
C++ Builder
帖子详情
求救:关于net send,net view或者ipconfig之类命令的
limu810812
2003-08-29 11:13:07
如何调用例如net send,net view或者ipconfig……之类的命令,并且把结果用控件显示?
...全文
77
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 管道
大模型(LLMs)推理面.pdf
大模型(LLMs)推理面.pdf
基于Linux Python Flask的汽车维修系统
这是一个基于Linux Python Flask的汽车维修系统 系统概述 - **后端语言**: Python 3 + Flask框架 - **前端**: HTML + CSS + JavaScript (使用Bootstrap 5) - **数据库**: SQLite(无需安装,轻量级) - **运行环境**: Ubuntu 22.04 功能: 1. **首页展示**: - 显示所有维修记录 - 搜索功能(按车牌、车主、电话) 2. **添加记录**: - 点击"新增记录"按钮 - 填写完整的维修信息表单 3. **编辑记录**: - 点击每条记录后的"编辑"按钮 - 修改信息后保存 4. **删除记录**: - 点击"删除"按钮(有确认提示) 5. **记录状态**: - 三种状态:待处理、维修中、已完成 - 不同状态用不同颜色标识
负荷预测基于Transform-KAN的负荷预测研究(Python代码实现)
【负荷预测】基于Transform-KAN的负荷预测研究(Python代码实现)内容概要:本文介绍了基于Transform-KAN模型的负荷预测研究,结合Transformer的注意力机制与Kolmogorov-Arnold Networks(KAN)的函数逼近能力,构建了一种新型深度学习预测模型,并通过Python代码实现。该方法旨在提升电力系统中负荷预测的精度与时效性,适用于处理复杂的非线性时间序列数据,在实际用电负荷预测场景中展现出较强的建模能力与优化潜力。; 适合人群:具备一定Python编程基础和深度学习理论知识,从事电力系统、能源管理或时序预测相关研究的科研人员及工程技术人员;适合研究生及以上学历或有1-3年相关领域工作经验的技术人员; 使用场景及目标:①应用于电力系统短期/中期负荷预测,支撑电网调度与能源优化决策;②为深度学习模型在能源领域的创新应用提供技术参考;③帮助研究人员掌握Transform-KAN混合架构的设计思路与实现方法,推动高精度预测模型的开发与复现; 阅读建议:建议读者结合提供的Python代码进行实践操作,深入理解模型结构细节与训练流程,同时可对比传统LSTM、GRU或纯Transformer模型的效果差异,进一步优化参数配置与数据预处理策略,以获得更优预测性能。
【两阶段鲁棒微网】不确定性基于关键场景辨别算法的两阶段鲁棒微网优化调度(Matlab代码实现)
【两阶段鲁棒微网】【不确定性】基于关键场景辨别算法的两阶段鲁棒微网优化调度(Matlab代码实现)内容概要:本文介绍了基于关键场景辨别算法的两阶段鲁棒微网优化调度方法,旨在应对微电网中可再生能源出力和负荷需求等不确定性因素带来的挑战。该方法通过构建两阶段鲁棒优化模型,在第一阶段做出预先决策,在第二阶段根据实际观测到的不确定性进行调整,结合关键场景辨识技术有效筛选出对系统影响最大的典型场景,从而提升调度方案的鲁棒性和计算效率。文中提供了完整的Matlab代码实现,便于读者复现和验证算法效果,属于电力系统领域高水平科研成果的再现。; 适合人群:具备电力系统基础知识和Matlab编程能力,从事微电网、能源优化、鲁棒优化等相关研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①
web前端3-5年经验深蓝色简历.doc.docx
web前端3-5年经验深蓝色简历.doc.docx
C++ Builder
13,874
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章