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

Узнать PID процесса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Почему не происходит ошибка при обращении к недопустимому индексу http://www.cyberforum.ru/cpp-beginners/thread149953.html
#include <string> int main() { std::string s; s; } Исключения не происходит. Внимание вопрос: я схожу с ума, я не знаю цпп или мне нагло врет VS? Думаю, все же третье. Никогда раньше такого не встречал. При обращении к s исключение исправно выбрасывается. Запускаю в VS 2008. Может кто знает, что за фигня?
C++ Ошибка. Добрый вечер! Решаю задачу, при компиляции ошибок нет, но при запуске, они появляются. Текст задачи и скриншот консоли прикреплены. Листинг: #include <iostream> #include <ctime> #define SIZE 512 // размер предложения. #define number 5 // размер массива указателей. http://www.cyberforum.ru/cpp-beginners/thread149945.html
C++ Рассчитывается произведение минимального и максимального элемента ниже главной диагонали массовых
Даны 2-мерных массовых X и Y . Рассчитывается произведение минимального и максимального элемента ниже главной диагонали массовых X-минимальный и максимальный элемент ниже главной диагонали Y.заменить местами максимальный елемент с минимальном. вот что у меня получилось: #define M 50 #include <iostream.h> #include <conio.h> int X,Y, m_act; void input_dim();
C++ работа с одномерным массивом! типа кальк
нужно сканировать одномерный символьный массив, в нем может быть например такое содержимое: 1+24-3+7+12-55 далее нужно сделать так чтобы 1,24,3,7,12,55 считывались в переменную как отдельные числа, после чего при нахождении '+'или'-' происходило соответственное прибавление или вычитание перед стоящего к послестоящему элементу. А при нахождении символа пробела или '\0' цикл...
C++ Обработка текста http://www.cyberforum.ru/cpp-beginners/thread149936.html
1)Заменить в строке все целые константы из 1-2 цифр соответствующим повторением следующего за ними символа (например "abc5xacb15y" - " abcxxxxxacbyyyyyyyyyyyyyyy "). 2)"Перевернуть" в строке все слова. (Например: "Жили были дед и баба" - "илиЖ илиб дед и абаб"). 3)Заменить в строке символьные константы вида 'А' на соответствующие шестнадцатеричные (т.е. 'А' на 0x41, в константе использовать...
C++ Матрицы 1)Напечатать таблицу истинности для логической функции (A v B & C)v A 2)Объединить два упорядоченных по возрастанию массива a и b в массив c, упорядоченный по возрастанию. 3)Своими цифрами в массивах K(m) и L(m) заданы два целых числа в p-ичной системе счисления (p<0). Найти в таком же виде их сумму, не вычисляя самих чисел. подробнее

Показать сообщение отдельно
Xantrax
17 / 17 / 1
Регистрация: 28.11.2012
Сообщений: 328
14.04.2013, 01:18     Узнать PID процесса
если я его компильнул и программа работает какие проблемы разобраться с кодом ?
Понимаете Игорь, быть может я и не прав, но я считаю, что специфика написания консольной программы C++ и GUI программы на Visual C++ с использованием библиотеки MFC, немного разная. В вашей программе вы не употребляете такие классы, которые употребляю я, соответственно в моем проекте она бесполезна. Да, общий принцип написания из нее понять можно, но общий принцип и в моей программе был, меня интересовали частности.

Вот так у меня получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DWORD CMainPWDlg::PidByName(CString AProcessName)
{
    HANDLE pHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    PROCESSENTRY32 ProcessEntry;
    DWORD pid;
    ProcessEntry.dwSize = sizeof(ProcessEntry);
    BOOL Loop = Process32First(pHandle,&ProcessEntry);
    while(Loop)
    {
        if(strcmp(ProcessEntry.szExeFile,AProcessName)==0)
        {
            pid = ProcessEntry.th32ProcessID;
            CloseHandle(pHandle);
            return pid;
        }
        Loop = Process32Next(pHandle, &ProcessEntry);
    }
    return 0;
}
Добавлено через 7 минут
Ммм, теперь еще нужно сконвертировать DWORD в LPCSTR.
CString str;
str = L"notepad.exe";
/*PidByName(str);*/
DWORD nameprocess;
nameprocess = PidByName(str);
str.Empty();
str.Format(L"PID процесса блокнот: %d", nameprocess);
MessageBox(str,L"Информация",MB_OK|MB_ICONINFORMATION); /*вот тут ошибка конвертирования const wchar_t[11] в LPCSTR*/
Добавлено через 16 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void CMainPWDlg::OnBtnClickedStart()
{
    CString str;
    str = L"notepad.exe";
    /*PidByName(str);*/
    DWORD nameprocess;
    nameprocess = PidByName(str);
    /*WCHAR sz[10];
    swprintf(sz,10,L"%d",nameprocess);*/
    str.Empty();
    str.Format(L"PID процесса блокнот: %d", nameprocess);
    MessageBox(str,L"Информация",MB_OK|MB_ICONINFORMATION);
}
Не могу вывести DWORD значение в MessageBox....
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru