Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Tamposhka
2 / 2 / 0
Регистрация: 06.12.2010
Сообщений: 32
#1

Таск киллер - C++

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

Всем привет.
Прошу Вашей помощи... Мне необходимо написать программу которая запускалась бы в фоне и проверяла запущен ли указанный процесс (по имени), например "qip.exe", и если находит его запущеным чтоб тихо его убивала. Гуглил очень долго эту тему, но ничего нормального найти не удалось( Кто может помогите, или мб у кого-то есть такая прога поделитесь плиз. Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2012, 22:41     Таск киллер
Посмотрите здесь:

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

Labirinth - увлекательный тайм-киллер
Всем активным (и не очень) участникам форума хотим представить нашу новую игру под названием "Labirinth". Смысл уровней всем давно знаком -...

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
21.01.2012, 00:59     Таск киллер #2
Не понял проблемы... Запускаешь системную команду поиска процесса - цепляешь из нее id процесса - киляешь процесс.
Tamposhka
2 / 2 / 0
Регистрация: 06.12.2010
Сообщений: 32
21.01.2012, 02:18  [ТС]     Таск киллер #3
можешь примерно объяснить как это все должно выглядеть? какая команда поиска процесса?
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,417
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;
 }
Tamposhka
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'
Петррр
5942 / 3379 / 336
Регистрация: 28.10.2010
Сообщений: 5,926
21.01.2012, 16:58     Таск киллер #6
Tamposhka, какова цель написания данной программы?
Tamposhka
2 / 2 / 0
Регистрация: 06.12.2010
Сообщений: 32
21.01.2012, 17:03  [ТС]     Таск киллер #7
Цель прежде всего чему-то научиться, ну а именно такую прогу решил написать чтоб убивала игры на компьютере брата.... квип в коде написан, потому что тренируюсь на нем
Петррр
5942 / 3379 / 336
Регистрация: 28.10.2010
Сообщений: 5,926
21.01.2012, 17:05     Таск киллер #8
А потом вирусы писать собрались?
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,417
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;
}
Там по-любому должна быть опция типа "не содавать/создавать" окно консоли, ну раз уж возиться нам лень, держи эту утилитку, она тебе уберёт консоль или наоборот добавит
Вложения
Тип файла: rar ra.rar (53.2 Кб, 5 просмотров)
Tamposhka
2 / 2 / 0
Регистрация: 06.12.2010
Сообщений: 32
21.01.2012, 17:09  [ТС]     Таск киллер #10
нет... просто выбрал такую прогу, мне вирусы ненужны)
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,417
21.01.2012, 17:09     Таск киллер #11
Цитата Сообщение от Tamposhka Посмотреть сообщение
Цель прежде всего чему-то научиться, ну а именно такую прогу решил написать чтоб убивала игры на компьютере брата.... квип в коде написан, потому что тренируюсь на нем
не ну так-то благородная цель я считаю, нечего малышне сидеть за компом!
magirus
Супер-модератор
Эксперт по компьютерным сетямЭксперт Windows
26324 / 14626 / 820
Регистрация: 15.09.2009
Сообщений: 63,375
Записей в блоге: 69
21.01.2012, 17:12     Таск киллер #12
а чем винодовые taskkill в батнике не устраивают?
Tamposhka
2 / 2 / 0
Регистрация: 06.12.2010
Сообщений: 32
21.01.2012, 17:13  [ТС]     Таск киллер #13
Цитата Сообщение от magirus Посмотреть сообщение
а чем винодовые taskkill в батнике не устраивают?
как уже писал хочу чему-то научиться, а учить консольные команды это немного не то)
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,417
21.01.2012, 17:15     Таск киллер #14
у меня её нет например, даным-давно шарился в поисках подобной утилиты по инету, да плюнул на это дело, у меня XP если чё.
Tamposhka
2 / 2 / 0
Регистрация: 06.12.2010
Сообщений: 32
21.01.2012, 17:26  [ТС]     Таск киллер #15
Цитата Сообщение от kravam Посмотреть сообщение
у меня её нет например, даным-давно шарился в поисках подобной утилиты по инету, да плюнул на это дело, у меня XP если чё.
твоя утилитка не убирает консоль, в инете нашел пару примеров как убрать ее, но чет не могу заставить работать все... говорят надо писать вместо main, WinMain...

И может быть ты знаешь как избавиться от ошибки копирования?
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,417
21.01.2012, 17:32     Таск киллер #16
Да ну конечно не убирает, я твой пример скомпилил, убирает как миленькая. А вооще непонятно чё за консоль ты хочешь убрать, сдаётся мне мы о разных вещах говорим. И да, я там написал как избавиться о ошибки копирования, надо вот так писать:
C++
1
CopyFile((LPCTSTR)__argv[0],(LPCTSTR)"C:\\1.exe",FALSE);
И всё будет круто
Tamposhka
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 -создан
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2012, 22:33     Таск киллер
Еще ссылки по теме:

(Учебный таск) Сайт компании на PHP - PHP
Доброго времени суток. Собственно задача - написать 5-6 страниц для выдуманного предприятия с активным использованием JS на клиенте. На...

Почему в таск менеджере некоторые процессы жрут память? - Visual Basic
Почему когда через CNTRL+ALT+DEL открываешь таск менеджер то в колонке Memory Usage у многих программ стоит какая-то конкретная цифра и она...

Почему в таск менеджере некоторые процессы жрут память? - Программирование
Почему когда через CNTRL+ALT+DEL открываешь таск менеджер то в колонке Memory Usage у многих программ стоит какая-то конкретная цифра и она...

Как создать сервис, который не убивается встроенным в андроид таск киллером? - Программирование Android
Здравствуйте! Нужно создать такой сервис, который будет продолжать работу (например системные сервисы, скайп и другие, которые продолжают...


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

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,417
21.01.2012, 22:33     Таск киллер #18
true напиши
К изучению:
http://www.vsokovikov.narod.ru/New_M...n_copyfile.htm
Yandex
Объявления
21.01.2012, 22:33     Таск киллер
Ответ Создать тему
Опции темы

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