Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 06.12.2010
Сообщений: 32
1

Таск киллер

20.01.2012, 22:41. Просмотров 1858. Ответов 17
Метки нет (Все метки)

Всем привет.
Прошу Вашей помощи... Мне необходимо написать программу которая запускалась бы в фоне и проверяла запущен ли указанный процесс (по имени), например "qip.exe", и если находит его запущеным чтоб тихо его убивала. Гуглил очень долго эту тему, но ничего нормального найти не удалось( Кто может помогите, или мб у кого-то есть такая прога поделитесь плиз. Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2012, 22:41
Ответы с готовыми решениями:

Не MainForm на таск баре
У меня есть несколько форм в проекте - главная, что то типа сплэша, форма коннекта к дб (если файл...

таск 8
Создать новый квадратный двумерный массив из переданного двумерного массива, обрезав от последнего...

Как сделать Процесс киллер
Хочу реализовать защиту лаунчера для игры чтобы лаунчер не запускался с процессами CheatEngine и...

Как обновить дрова на сеткарте киллер е2200?
Стоит у меня эта карта на ноуте MSI GT70, хочу обновить дрова на ней, удаляю старые, устанавливаю...

17
В астрале
Эксперт С++
8023 / 4780 / 654
Регистрация: 24.06.2010
Сообщений: 10,558
21.01.2012, 00:59 2
Не понял проблемы... Запускаешь системную команду поиска процесса - цепляешь из нее id процесса - киляешь процесс.
1
2 / 2 / 0
Регистрация: 06.12.2010
Сообщений: 32
21.01.2012, 02:18  [ТС] 3
можешь примерно объяснить как это все должно выглядеть? какая команда поиска процесса?
0
быдлокодер
1718 / 905 / 106
Регистрация: 04.06.2008
Сообщений: 5,612
21.01.2012, 04:50 4
Для затравки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h> 
#include <Windows.h> 
#include <Winnt.h> 
#include <tlhelp32.h>
FILE *f;
bool SpisokProcessov ()  {
 
 HANDLE hProcessSnap;
 PROCESSENTRY32 pe32;
 
 //Это мы находим дескриптор снимка процессов
 hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 
 if (hProcessSnap == INVALID_HANDLE_VALUE)
 return false;
 pe32.dwSize = sizeof(PROCESSENTRY32);
 
 
 int i= 0;
 
 //
 
 Process32First(hProcessSnap, &pe32);
 printf ("%d  PID= %x  %s\n",++i, pe32.th32ProcessID, pe32.szExeFile);
 fprintf(f,"%d  PID= %x   %s \n",i, pe32.th32ProcessID, pe32.szExeFile);
 while (Process32Next(hProcessSnap, &pe32)) {
  printf ("%d  PID= %x  %s\n",++i, pe32.th32ProcessID, pe32.szExeFile);
  fprintf(f,"%d  PID= %x   %s \n",i, pe32.th32ProcessID, pe32.szExeFile);
 } 
 
 
 CloseHandle(hProcessSnap);
 return true;
}
 
 
 
 int main () {
 f = fopen("rezultat.txt","wb");
 
 //Если циклом не хочешь, надо закомментить эту херь
 //while (1) 
  SpisokProcessov ();
 fclose (f);
  getchar ();
  return 0;
 }
1
2 / 2 / 0
Регистрация: 06.12.2010
Сообщений: 32
21.01.2012, 16:40  [ТС] 5
Получилось вот такое чудо, убивающее процесс, но теперь проблема.. не могу сделать чтоб не было видно окна консоли подскажите плиз как, и еще когда пытаюсь себя копировать выдает ошибку:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "stdafx.h"
#include <windows.h>
#include <string.h>
#include <Tlhelp32.h>
#include <iostream>
#include <conio.h>
 
 
 
DWORD PIDByName(WCHAR * AProcessName)
{
  HANDLE pHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  PROCESSENTRY32 ProcessEntry;
  DWORD pid;
  ProcessEntry.dwSize = sizeof(ProcessEntry);
  bool Loop = Process32First(pHandle, &ProcessEntry);
 
  while (Loop)
    {
      if (wcsstr(ProcessEntry.szExeFile, AProcessName))
      {
                  pid = ProcessEntry.th32ProcessID;
                  CloseHandle(pHandle);
                  return pid;
      }
      Loop = Process32Next(pHandle, &ProcessEntry);
    }
    return 0;
}
 
bool KillProcByPid(DWORD pid)
{
DWORD ExitCode;
HANDLE hp;
bool ret = true;
 
if(pid)
        {
        hp = OpenProcess(PROCESS_ALL_ACCESS, true, pid);
        if (hp)
                {
                GetExitCodeProcess(hp, &ExitCode);
                ret = TerminateProcess(hp, ExitCode);
                }
        else
                {
                return false;
                }
        }
else
        {
        return false;
        }
 
CloseHandle(hp);
return ret;
}
 
int main(void)
{
         DWORD pid;
         while(1);
         pid = PIDByName(L"qip.exe");
         KillProcByPid(pid);
         CopyFile(__argv[0],"C:\\1.exe",FALSE);
         return 0;
}
CopyFile(__argv[0],'C:\\1.exe',FALSE); в ней ошибку выдает:
error C2664: CopyFileW: невозможно преобразовать параметр 1 из 'char *' в 'LPCWSTR'
0
6214 / 3515 / 899
Регистрация: 28.10.2010
Сообщений: 5,926
21.01.2012, 16:58 6
Tamposhka, какова цель написания данной программы?
0
2 / 2 / 0
Регистрация: 06.12.2010
Сообщений: 32
21.01.2012, 17:03  [ТС] 7
Цель прежде всего чему-то научиться, ну а именно такую прогу решил написать чтоб убивала игры на компьютере брата.... квип в коде написан, потому что тренируюсь на нем
0
6214 / 3515 / 899
Регистрация: 28.10.2010
Сообщений: 5,926
21.01.2012, 17:05 8
А потом вирусы писать собрались?
0
быдлокодер
1718 / 905 / 106
Регистрация: 04.06.2008
Сообщений: 5,612
21.01.2012, 17:08 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include "stdafx.h" 
#include <windows.h>
#include <string.h>
#include <Tlhelp32.h>
#include <iostream>
#include <conio.h> 
DWORD PIDByName(WCHAR * AProcessName) {
    HANDLE pHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    PROCESSENTRY32 ProcessEntry;
    DWORD pid;
    ProcessEntry.dwSize = sizeof(ProcessEntry);
    bool Loop = Process32First(pHandle, &ProcessEntry);
    while (Loop) {
        if (wcsstr(ProcessEntry.szExeFile, AProcessName)) {
            pid = ProcessEntry.th32ProcessID;
            CloseHandle(pHandle);
            return pid;
        }
        Loop = Process32Next(pHandle, &ProcessEntry);
    }
    return 0;
}
bool KillProcByPid(DWORD pid) {
    DWORD ExitCode;
    HANDLE hp;
    bool ret = true;
    if (pid) {
        hp = OpenProcess(PROCESS_ALL_ACCESS, true, pid);
        if (hp) {
            GetExitCodeProcess(hp, &ExitCode);
            ret = TerminateProcess(hp, ExitCode);
        } else {
            return false;
        }
    } else {
        return false;
    }
    CloseHandle(hp);
    return ret;
}
int main(void) {
    DWORD pid;
    while (1)
        ;
    pid = PIDByName(L"qip.exe");
    KillProcByPid(pid);
    CopyFile((LPCTSTR) __argv[0], (LPCTSTR) "C:\\1.exe", FALSE);
    return 0;
}
Там по-любому должна быть опция типа "не содавать/создавать" окно консоли, ну раз уж возиться нам лень, держи эту утилитку, она тебе уберёт консоль или наоборот добавит
0
Вложения
Тип файла: rar ra.rar (53.2 Кб, 8 просмотров)
2 / 2 / 0
Регистрация: 06.12.2010
Сообщений: 32
21.01.2012, 17:09  [ТС] 10
нет... просто выбрал такую прогу, мне вирусы ненужны)
0
быдлокодер
1718 / 905 / 106
Регистрация: 04.06.2008
Сообщений: 5,612
21.01.2012, 17:09 11
Цитата Сообщение от Tamposhka Посмотреть сообщение
Цель прежде всего чему-то научиться, ну а именно такую прогу решил написать чтоб убивала игры на компьютере брата.... квип в коде написан, потому что тренируюсь на нем
не ну так-то благородная цель я считаю, нечего малышне сидеть за компом!
0
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
28012 / 15738 / 971
Регистрация: 15.09.2009
Сообщений: 67,812
Записей в блоге: 78
21.01.2012, 17:12 12
а чем винодовые taskkill в батнике не устраивают?
0
2 / 2 / 0
Регистрация: 06.12.2010
Сообщений: 32
21.01.2012, 17:13  [ТС] 13
Цитата Сообщение от magirus Посмотреть сообщение
а чем винодовые taskkill в батнике не устраивают?
как уже писал хочу чему-то научиться, а учить консольные команды это немного не то)
0
быдлокодер
1718 / 905 / 106
Регистрация: 04.06.2008
Сообщений: 5,612
21.01.2012, 17:15 14
у меня её нет например, даным-давно шарился в поисках подобной утилиты по инету, да плюнул на это дело, у меня XP если чё.
0
2 / 2 / 0
Регистрация: 06.12.2010
Сообщений: 32
21.01.2012, 17:26  [ТС] 15
Цитата Сообщение от kravam Посмотреть сообщение
у меня её нет например, даным-давно шарился в поисках подобной утилиты по инету, да плюнул на это дело, у меня XP если чё.
твоя утилитка не убирает консоль, в инете нашел пару примеров как убрать ее, но чет не могу заставить работать все... говорят надо писать вместо main, WinMain...

И может быть ты знаешь как избавиться от ошибки копирования?
0
быдлокодер
1718 / 905 / 106
Регистрация: 04.06.2008
Сообщений: 5,612
21.01.2012, 17:32 16
Да ну конечно не убирает, я твой пример скомпилил, убирает как миленькая. А вооще непонятно чё за консоль ты хочешь убрать, сдаётся мне мы о разных вещах говорим. И да, я там написал как избавиться о ошибки копирования, надо вот так писать:
C++
1
CopyFile((LPCTSTR)__argv[0],(LPCTSTR)"C:\\1.exe",FALSE);
И всё будет круто
1
2 / 2 / 0
Регистрация: 06.12.2010
Сообщений: 32
21.01.2012, 21:04  [ТС] 17
C++
1
CopyFile((LPCTSTR)__argv[0],(LPCTSTR)"C:\\1.exe",FALSE);
Строка компилируется нормально, без ошибок, но ничего не происходит(
C++
1
CopyFile((LPCTSTR)"c:\\1.txt",(LPCTSTR)"c:\\2.txt",FALSE);
так тож не катит, файл 1.txt -создан
0
быдлокодер
1718 / 905 / 106
Регистрация: 04.06.2008
Сообщений: 5,612
21.01.2012, 22:33 18
true напиши
К изучению:
http://www.vsokovikov.narod.ru... pyfile.htm
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2012, 22:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Окошко на таск баре
Доброго всем времени суток! Подскажите как убирать окошко с таск бара при свёртывание программы в ...

Таск List<String>
Добрый день! надо решить такую задачку Я написала что-то вроде этого, но у меня не выводит мой...

WindowsForm и работа по Schedule Таск
Как совместить 2 части в одной программе 1.WindowsForm(пользователь производит начальные установки)...

Анрил таск. Преобразование данных
--таблица данных, в которой хранится информация о пути проделанном из точки А в точку Б, -- во...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.