风轻云淡 发表于 2016-12-6 20:53:16

把码高手在哪里?

本帖最后由 风轻云淡 于 2016-12-6 20:56 编辑

PS:Q神指点了下,但小弟才疏学浅,还在门外徘徊。
1.遍历进程,查看进程中是否存在QQ.EXE,如果存在,等待30S后继续遍历。
                                                                   如果不存在,则启动QQ的快捷方式,D:\QQ
2.cmd下我这样实现的
@echo off
:check
tasklist | find /i "qq.exe"||start d:\\QQ"
ping -n 30 127.0.0.1>nul
goto check

3.百度遍历进程,不知道如何取出数组,与QQ.EXE对比
#include <iostream>
#include <stdio.h>
#include "stdafx.h"
#include <windows.h>
#include <tlhelp32.h>

using namespace std;

int main()
{
                PROCESSENTRY32 pe32;
                pe32.dwSize = sizeof(pe32);
                // 给系统内的所有进程拍一个快照
                HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
               
               if (hProcessSnap == INVALID_HANDLE_VALUE)
                {
                        printf("CreateToolhelp32Snapshot调用失败! \n");
                        return -1;
                }
                // 遍历进程快照,轮流显示每个进程的信息
                BOOL bMore = ::Process32First(hProcessSnap, &pe32);
                while (bMore)
                {
                        printf("进程名:%ws\n",pe32.szExeFile);
                        //printf(" 进程ID号:%u \n\n", pe32.th32ProcessID);
                        bMore = ::Process32Next(hProcessSnap, &pe32);
                }
                ::CloseHandle(hProcessSnap);
    return 0;
}

笑倾天下 发表于 2016-12-6 21:56:15

#include <iostream>
#include <windows.h>
#include <TlHelp32.h>
#include <string>

int main()
{
    PROCESSENTRY32 stpi;
    BOOL bResume;
    HANDLE htool = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    stpi.dwSize = sizeof(stpi);
    bResume = Process32First(htool, &stpi);
    while (bResume)
    {
      if (strcmp(stpi.szExeFile, "QQ.exe") == 0)
      {
            std::cout << "找到QQ.EXE,现在延迟30s,而后重新遍历" << std::endl;
            Sleep(3000);
            CloseHandle(htool);
            htool = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
            bResume = Process32First(htool, &stpi);
            continue;
      }
      else
      {
            bResume = Process32Next(htool, &stpi);
      }
    }
    CloseHandle(htool);
    std::cout << "没有找到QQ.EXE,启动QQ.EXE" << std::endl;
    /**
      没看懂你这里启动快捷方式是什么意思,自己写吧
    */
    return 0;
}
页: [1]
查看完整版本: 把码高手在哪里?