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

Доступ к процессам на Windows 6.x - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Простая задача с использованием циклов http://www.cyberforum.ru/cpp-beginners/thread996527.html
Здраствуйте. Не могу понять в чем суть задачи и как эту суть записать на с++. Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от XНАЧ до xкон с шагом dx с точностью ε. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество про-суммированных членов ряда. ln((x+1)/(x-1))= 2*Ʃ1/((2n+1)*x^(2*n+1)). (от n=0...
C++ Сумма ряда с необходимой точностью Помогите решить эту задачу. Проблема не то что бы в самом коде, просто не очень разбираюсь в рядах и их решении. #include <iostream> #include <cmath> using namespace std; int main() { int n=1; double eps=0.0001, s=0,s1,res; do http://www.cyberforum.ru/cpp-beginners/thread996508.html
Найдите гипотенузу, площадь и радиус вписанной окружности C++
1. Составьте словесно-формульный алгоритм, блок-схему и программу для решения следующей задачи. Подберите тестовые значения. Прямоугольный треугольник задан катетом и углом, прилежащим к нему. Найдите гипотенузу, площадь и радиус вписанной окружности. одна тема - одна задача, читайте правила форума
Резать прямоугольник, пока от него не останутся только квадраты. Посчитать их количество. (Оптимизировать программу) C++
Есть прямоугольник A x B. Нужно отрезать от него как можно больший квадрат и отбросить его (ставя счетчик в +1). Оставшийся прямоугольник так же резать до тех пор, пока не останется квадрат. Сделал два варианта: Вывел формулу (в некоторых случаях работает неправильно): if (a > b) swap(a, b); // а всегда меньшая сторона cnt = ( (a*b)/(a*a) ) + a*b - (a*a)*( (a*b)/(a*a) ) Код, который...
C++ Как написать на C++ матрицу http://www.cyberforum.ru/cpp-beginners/thread996494.html
Всем привет! Не могу никак создать программу которая решает матрицу, точнее вот мой вопрос: Напишите сумму 1-ой строки на последнюю строку матрицы В(10,8) ,? ПОМОГИТЕ!
C++ объясните балбесу Есть задание на с++ Пусть N — такое число, что 0xff = 0xc0 + N. Напишите представление числа N в десятичной системе. Понимаю,что перевести надо N, но оно же тут равно 0. Перевод чисел из системы в систему делаю легко,но не понимаю смысл данного задания.Или не обращать внимания,что оно равно 0 и выполнить так как есть? PS:связи с тем кто дал задание не имею,спросил бы там. подробнее

Показать сообщение отдельно
_lunar_
Graphics API Developer
1197 / 1123 / 76
Регистрация: 03.05.2011
Сообщений: 2,741
03.11.2013, 20:15     Доступ к процессам на Windows 6.x
есть простой код получения handle процесса
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <Windows.h>
 
int main()
{
    HWND hWnd = FindWindow(NULL, "limbo");
    DWORD pID;
    GetWindowThreadProcessId(hWnd, &pID);
    HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pID);
    printf("pID %d\nHandle %d", pID, hProc);
    getchar();
    return 0;
}
который естественно не сработал
почитав форум, погуглив и покопавшись на MSDN понял, что начиная с Windows Vista (версия ОС 6.х) процессы имеют защиту. И не PROCESS_ALL_ACCESS и не на порядок ниже (как рекомендует MSDN) PROCESS_VM_READ не работают, при отладке handle выводит
Код
unused <Чтение памяти невозможно>
и всё бы ничего, если бы ни одно НО!
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
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
class Program
{
    public static int pID;
 
    [DllImport("kernel32.dll")]
    public static extern IntPtr OpenProcess(int dwDesiredAccess,
        bool bInheritHandle, int dwProcessId);
    public static void GetProcess(string Name)
    {
        Process[] proc = Process.GetProcesses();
        foreach (Process process in proc)
            if (process.ProcessName == Name)
            {
                pID = process.Id;
                return;
            }
        return;
    }
    static void Main()
    {
        GetProcess("limbo");
        IntPtr handle = OpenProcess(0x001F0FFF, false, pID);
        Console.WriteLine("pID {0}\nHandle {1}", pID, handle);
        Console.ReadKey();
    }
}
на шарпе (НА ШАРПЕ!!!) я спокойно получаю handle нужного мне процесса той же функцией OpenProcess с теми же правами полного доступа. Как это объяснить?
для разработки приложения мне необходимо использовать C++ (C# не вариант). Есть ли какой-то способ получения handle процесса на плюсах без "танцев"?, типа режима debug, который тоже не сработал.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru