把码高手在哪里?
本帖最后由 风轻云淡 于 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;
} #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]