Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 04.09.2016
Сообщений: 28
1

Открытие процессов visual studio 2012

04.09.2016, 21:05. Показов 471. Ответов 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
#include <iostream>
#include <conio.h>
#include <Windows.h>
#include <cmath>
#include <winbase.h>
#include <TlHelp32.h>
#include <time.h>
#include <minwindef.h>
 
using namespace std;
 
int main()
{
    setlocale(0 , "");
    for(;; Sleep(7)) {
        if(GetAsyncKeyState(VK_HOME))
        {
            exit(0);
        }
        if(FindWindow(NULL, "Skype"))
        {
            cout << "1" << endl;
        }else if (!FindWindow(NULL, "Skype")) {
            cout << "2" << endl;
        }
    }
    
    return(0);
}
Так вот, ту тему с тем же вопросом закрыли, поэтому, открыл новую. Вот чего я хочу. Допустим, у меня есть процесс 123.exe, и я хочу показать в программе, что он открыт, есть ли такая возможность на версии от 2012 года? P.S. Если можно, скиньте код с if и else, на подобии моего кода выше.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.09.2016, 21:05
Ответы с готовыми решениями:

Переход на Visual Studio 2012
Вот обучался по книге Р.Лафоре ООП. Вчера решил сменить компилятор, перешел с Visual Studio 6.0 на...

Visual Studio 2012 на x64
В общем, решил брать ноут и вот думаю, пойдет ли VS 2012 на архитектуре х64, и будут ли с ней...

Генерация исключений visual studio 2012
Здравствуйте, уважаемые форумчане. Решил с Питона перейти на C++ . Сейчас занимаюсь переносом...

Долгая компиляция MS Visual Studio 2012
Долго компилирует проект даже простой. Может быть дело в таком железе: Intel Celeron Dual-Core...

9
1354 / 992 / 314
Регистрация: 28.07.2012
Сообщений: 2,750
05.09.2016, 10:43 2
Цитата Сообщение от averyhugemen Посмотреть сообщение
я хочу показать в программе, что он открыт
Открыт чем и открыт для чего? И да, что значит "открыт"?
0
0 / 0 / 0
Регистрация: 04.09.2016
Сообщений: 28
05.09.2016, 15:20  [ТС] 3
nonedark2008, я имею ввиду, просто что бы программа видела процесс.
0
1354 / 992 / 314
Регистрация: 28.07.2012
Сообщений: 2,750
05.09.2016, 19:51 4
averyhugemen, в Visual Studio в разделе Tools есть утилита Spy++.
Она умеет определять наведением курсора имя и класс любого окна.
Именно эти имя или класс нужно использовать при поиске в FindWindow.
Если нужно искать именно сам процесс, то сделать это можно с помощью CreateToolhelp32Snapshot, перебором по всем запущенным процессам.
1
0 / 0 / 0
Регистрация: 04.09.2016
Сообщений: 28
05.09.2016, 20:00  [ТС] 5
nonedark2008, а с помощью if else это можно осуществить?
0
1354 / 992 / 314
Регистрация: 28.07.2012
Сообщений: 2,750
05.09.2016, 20:20 6
averyhugemen, нее. Их одних совершенно точно недостаточно.
0
0 / 0 / 0
Регистрация: 04.09.2016
Сообщений: 28
05.09.2016, 20:26  [ТС] 7
nonedark2008, ну, мне нужно, что бы прога показывала, открыт процесс или нет, и я это хотел сделать через if else. Можешь скинуть кодик, если тебе не трудно?(где, если процесс открыт пишет одно, а если закрыт, то другое)
0
667 / 213 / 88
Регистрация: 21.07.2016
Сообщений: 1,036
Записей в блоге: 2
05.09.2016, 20:37 8
Цитата Сообщение от averyhugemen Посмотреть сообщение
Допустим, у меня есть процесс 123.exe, и я хочу показать в программе, что он открыт, есть ли такая возможность на версии от 2012 года? P.S. Если можно, скиньте код с if и else, на подобии моего кода выше.
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
DWORD GetProcessIdByName(std::string processName)
{
    DWORD pid = 0;
 
    // Create toolhelp snapshot
    HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    PROCESSENTRY32 process;
    ZeroMemory(&process, sizeof(process));
    process.dwSize = sizeof(process);
 
    // Walkthrough all processes
    if (Process32First(snapshot, &process))
    {
        do
        {
            // Compare process.szExeFile based on format of name, i.e., trim file path
            // trim .exe if necessary, etc
            if (processName == static_cast<std::string>(process.szExeFile))
            {
                pid = process.th32ProcessID;
                break;
            }
        } while (Process32Next(snapshot, &process));
    }
 
    CloseHandle(snapshot);
    return pid;
}
C++
1
std::cout << GetProcessIdByName("123.exe") ? "EZ" : "No.";
0
0 / 0 / 0
Регистрация: 04.09.2016
Сообщений: 28
06.09.2016, 14:53  [ТС] 9
dailydose, в 2012 не катит
0
667 / 213 / 88
Регистрация: 21.07.2016
Сообщений: 1,036
Записей в блоге: 2
06.09.2016, 15:52 10
Цитата Сообщение от averyhugemen Посмотреть сообщение
dailydose, в 2012 не катит
в 2010 пашет

C++
1
2
3
4
int main()
{
    std::cout << (GetProcessIdByName("KillingFloor.exe") ? "EZ" : "No.");
}
EZДля продолжения нажмите любую клавишу . . .
C++
1
2
3
4
int main()
{
    std::cout << (GetProcessIdByName("12312fuhk412421asdljkhj.exe") ? "EZ" : "No.");
}
No.Для продолжения нажмите любую клавишу . . .

Добавлено через 36 секунд
и в 2012 должно пахать —_—
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.09.2016, 15:52

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

Настройка SDL в Visual Studio 2012
Здравствуйте. Настраиваю SDL по данному видео: https://www.youtube.com/watch?v=mdQHYxe6zJo...

Menustrip.C++ Microsoft Visual Studio 2012
Здравствуйте! Пытаюсь работать в windows forms. Cуть программы такова : пользователь открывает...

Где взять visual studio 2012?
Хотела спросить может быть у вас есть сылка для скачиванья visual studio 20012 полная версия?

Visual Studio 2012 Ultimate Русская
Дайте ссылку на Visual Studio 2012 Ultimate Русская Версия :wall: :wall: :wall:


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

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

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