| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 615 人关注过本帖
标题:怎么杀掉有自己输入的进程名
只看楼主 加入收藏
Dev1il
Rank: 2
等 级:论坛游民
帖 子:36
专家分:45
注 册:2010-3-15
结帖率:40%
收藏
已结贴  问题点数:20 回复次数:5 
怎么杀掉有自己输入的进程名
#include<stdlib.h>

int main(int argc, char *argv[])
{
    system("taskkill /IM abc.exe /f");
    return 0;
}
上面的程序不灵活,编译好了只能杀掉abc.exe,该怎么写,让自己输入进程名啊,杀掉自己想杀掉的进程
搜索更多相关主题的帖子: 进程 输入 
2010-03-15 14:04
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:4 
int main(int argc, char *argv[])
{
    char buf1[MAX], buf[MAX];
    scanf("%s", buf1);
    sprintf(buf, "taskkill /IM %s /f", buf1);
    system(buf);
    return 0;
}
或者通过argv来传也行
2010-03-15 14:12
Dev1il
Rank: 2
等 级:论坛游民
帖 子:36
专家分:45
注 册:2010-3-15
收藏
得分:0 
谢谢,呵呵
2010-03-15 14:27
succubus
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:635
专家分:1080
注 册:2007-10-7
收藏
得分:4 
程序代码:
#include <Windows.h>
#include <TlHelp32.h>
#include <stdio.h>

int main(int argc, char* argv[])
{
    if (2 != argc)
    {
        printf("参数错误.\n");
        return -1;
    }
   
    PROCESSENTRY32 pe32;
    pe32.dwSize = sizeof(pe32);
   
    HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (INVALID_HANDLE_VALUE == hProcessSnap)
    {
        printf("CreateToolhelp32Snapshot调用失败.\n");
        return -1;
    }

    bool IsExist = Process32First(hProcessSnap, &pe32);
    while (IsExist)
    {
        if (0 == strcmp(argv[1], pe32.szExeFile))
        {
            TerminateProcess(OpenProcess(PROCESS_ALL_ACCESS, false, pe32.th32ProcessID),0);
            printf("进程 %s 已被关闭.\n", argv[1]);
            CloseHandle(hProcessSnap);
            return 0;
        }
        IsExist = Process32Next(hProcessSnap,&pe32);
    }

    printf("没有找到进程 %s.\n", argv[1]);
    CloseHandle(hProcessSnap);
    return 0;
}


[url=http:///view/aDU1]/image/aDU1.gif" border="0" />[/url]
2010-03-15 15:10
Dev1il
Rank: 2
等 级:论坛游民
帖 子:36
专家分:45
注 册:2010-3-15
收藏
得分:0 
看的不怎么懂,还要学习哦
2010-03-15 17:38
psv
Rank: 2
等 级:论坛游民
帖 子:21
专家分:54
注 册:2010-3-3
收藏
得分:4 
结束进程的方法很多:

1.通过命令行的方式 (楼2 给出的)

2.通过Win API 函数:
                   TerminateProcess() - 比较暴力
                   ExitProcess() - 和谐结束进程(通过远程线程注入调用)
                   TerminateThread()  - 通过结束线程来终结进程
                   内存清零 -- 将进程内存虚拟空间值填0
                                     .....

.....

2010-03-15 18:48
快速回复:怎么杀掉有自己输入的进程名
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042925 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved