bool __fastcall TForm1::RunCmd( AnsiString cmd,TStringList *
stringlist )
{
TMemoryStream *memstream=
new TMemoryStream();
AnsiString rn=
"\r\n";
PROCESS_INFORMATION proc;
STARTUPINFO start;
SECURITY_ATTRIBUTES sa;
long ret;
unsigned long lngBytesread;
HANDLE hReadPipe,hWritePipe;
char *strBuff=(
char *)
malloc(
256);
if(strBuff==
NULL)
{
return false;
}
sa.nLength =
sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle=
true;
sa.lpSecurityDescriptor=
NULL;
ret=CreatePipe(hReadPipe,hWritePipe,sa,
0);
if(ret==
0)
{
//创建管道失败
return false;
}
memset(start,0x00,
sizeof(STARTUPINFO));
start.cb=
sizeof(STARTUPINFO);
start.dwFlags=STARTF_USESTDHANDLES |
STARTF_USESHOWWINDOW;
start.hStdOutput=
hWritePipe;
start.hStdError=
hWritePipe;
bool retc=CreateProcess(NULL,cmd.c_str(),NULL,NULL,
true,
0,
0, NULL, start, proc);
if(!
retc)
{
return false;
}
CloseHandle(hWritePipe);
unsigned long len;
memstream->Position=
0;
while(
true)
{
memset(strBuff,0x00,
256);
GetFileSize(hReadPipe,len);
ret = ReadFile(hReadPipe, strBuff,
256, lngBytesread,NULL);
if(ret==
0)
{
break;
}
else
{
memstream->
Write(strBuff,lngBytesread);
}
}
CloseHandle(proc.hProcess);
CloseHandle(proc.hThread);
CloseHandle(hReadPipe);
memstream->Position=
0;
free(strBuff);
stringlist->
LoadFromStream(memstream);
memstream->SaveToFile(
"C:\1.txt");
for(
int i =
0; iCount; i++
)
{
if(stringlist->Strings[i].Pos(
"TTL")!=
0)
return true;
}
memstream->
Clear();
delete memstream;
return false;
}
void __fastcall TForm1::btn1Click(TObject *
Sender)
{
TStringList * stringlist =
new TStringList;
if(RunCmd(
"ping -n 1 192.168.0.5",stringlist))
{
ShowMessage("通讯正常");
}
else
{
ShowMessage("通讯异常");
}
}
转载于:https://www.cnblogs.com/luyuxibaby/p/5217302.html
相关资源:数据结构—成绩单生成器