在wince程序中调用DOS命令例子

这是一个使用ping命令的例子   输入参数为目的IP地址

bool checknetwork(char* szCmdLine)

{
    bool isconn = false;
    PROCESS_INFORMATION pi;
    //保存原来路径
    DWORD dwLen = MAX_PATH; 
    TCHAR szStdOut[MAX_PATH] = _T("\0");
    BOOL fRet = GetStdioPathW(1, szStdOut, &dwLen);


    char cmd[256] = "\0";
    sprintf(cmd,"%s %s","/c ping",szCmdLine);


    TCHAR execmd[256] = _T("\0");
    mbstowcs(execmd,cmd,strlen(cmd));


    //执行命令
    SetStdioPathW(1, TEXT("\\PocketMory1\\tempout.txt"));
    CreateProcess (TEXT("\\Windows\\cmd.exe"), execmd, NULL, NULL, FALSE, 0, NULL, NULL, NULL, &pi);
    WaitForSingleObject (pi.hProcess, 100);
    CloseHandle (pi.hProcess);
    CloseHandle (pi.hThread);
    //再设置回原来路径
    SetStdioPathW(1, szStdOut);


    HANDLE hand = CreateFile(TEXT("\\PocketMory1\\tempout.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, 
        NULL, OPEN_EXISTING, 0, 0);


    char buffer[512] = "\0";
    DWORD actlen;
    if (ReadFile(hand,buffer,512,&actlen,NULL) && (actlen > 0))
    {
        if (strstr(buffer,"Reply from"))
        {
            isconn = true;
        }
        else
        {
            isconn = false;
        }
    }
    CloseHandle(hand);
    DeleteFile(TEXT("\\PocketMory1\\tempout.txt"));
    return isconn;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值