vc++6.0中调用system函数,怎么让dos窗口不显示,或最小化啊??
vc++6.0中调用system函数,怎么让dos窗口不显示,或最小化啊??我是要实现ping功能,重编太麻烦啦~~~IP.GetAddress(byte1,byte2,...
vc++6.0中调用system函数,怎么让dos窗口不显示,或最小化啊??我是要实现ping功能,重编太麻烦啦~~~
IP.GetAddress(byte1,byte2,byte3,byte4);
ip.Format("%d%s%d%s%d%s%d",byte1,".",byte2,".",byte3,".",byte4);
sprintf(cmd, "ping %s > ping.txt", ip);
system(cmd);
f = fopen("ping.txt", "r");
if(!f) ok= 0;
while(!feof(f)) {
fgets(cmd, 80, f);
if(strstr(cmd, "timed out")) ok = 0;
}/*end while*/
system("del ping.txt");
if(ok)
m_Mes= "网卡运行顺利";
else
m_Mes="未检测到网卡";
程序如上~~~求指教~~~~ 展开
IP.GetAddress(byte1,byte2,byte3,byte4);
ip.Format("%d%s%d%s%d%s%d",byte1,".",byte2,".",byte3,".",byte4);
sprintf(cmd, "ping %s > ping.txt", ip);
system(cmd);
f = fopen("ping.txt", "r");
if(!f) ok= 0;
while(!feof(f)) {
fgets(cmd, 80, f);
if(strstr(cmd, "timed out")) ok = 0;
}/*end while*/
system("del ping.txt");
if(ok)
m_Mes= "网卡运行顺利";
else
m_Mes="未检测到网卡";
程序如上~~~求指教~~~~ 展开
3个回答
展开全部
CString strCmd = _T("/c ping 127.0.0.1 > ping.txt"); // /c后面接命令
ShellExecute(NULL, _T("open"), _T("cmd.exe"), strCmd, NULL, SW_HIDE);//SW_HIDE隐藏cmd窗口,SW_SHOW则是显示,其他你可以看看MSDN
HINSTANCE ShellExecute(
HWND hwnd,
LPCTSTR lpOperation,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd
);
ShellExecute(NULL, _T("open"), _T("cmd.exe"), strCmd, NULL, SW_HIDE);//SW_HIDE隐藏cmd窗口,SW_SHOW则是显示,其他你可以看看MSDN
HINSTANCE ShellExecute(
HWND hwnd,
LPCTSTR lpOperation,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd
);
追问
HINSTANCE ShellExecute(
HWND hwnd,
LPCTSTR lpOperation,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd
);
这个不用写进程序里吧??
不行,一用就内存错误
追答
不用啊,关键代码就前面两句,应该没有问题的啊!你先试试我的那两句行不行?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c#winform的多线程调用,需要注意一点,窗体的属性,必须由创建它的线程来执行.
记住这一点,就基本上不会有什么问题了.
你可以使用控件的invoke()方法来实现.
记住这一点,就基本上不会有什么问题了.
你可以使用控件的invoke()方法来实现.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用CreateProcess
更多追问追答
追问
抱歉能说详细点吗???不太了解DOS
追答
用CreateProcess来执行系统命令不会有cmd.exe窗口
但是ping是无论如何都会有窗口出来的,你可以考虑用ipconfig
或用我下面的代码
#include
#include
#pragma comment (lib, "WS2_32")
void main()
{
BYTE minorVer = 2;
BYTE majorVer = 2;
WSADATA wsaData;
WORD sockVersion = MAKEWORD (minorVer, majorVer);
if (::WSAStartup (sockVersion, &wsaData)) return;
char szHost[BUFSIZ];
::gethostname (szHost, BUFSIZ);
hostent *pHost = ::gethostbyname (szHost);
if (pHost->h_addr_list[1])
printf ("Network Connected.\n");
::WSACleanup();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询