Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
_lunar_
1304 / 1229 / 91
Регистрация: 03.05.2011
Сообщений: 2,913
Завершенные тесты: 1
#1

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

03.11.2013, 20:15. Просмотров 328. Ответов 0
Метки нет (Все метки)

есть простой код получения 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, который тоже не сработал.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2013, 20:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Доступ к процессам на Windows 6.x (C++):

Путь к процессам - C++
Нашел вот такой код#include &lt;windows.h&gt; #include &lt;Psapi.h&gt; int main(){ int pid = 3432; // PID of notepad.exe char...

Подключение к процессам - C++
Работа с Экселем.Для создания процесса использую pApp.CreateInstance(&quot;Excel.Application&quot;); WorkBook =...

Переслать вектор N процессам, используя различные виды связи между процессами (MPI_Alltoall) - C++
Переслать вектор, размерности M, N процессам, используя различные виды связи между процессами. Элементы вектора задаются произвольно....

доступ к процессам - Linux
Есть сервер на котором установлен ряд программ, которые используются пользователями. Стоят задачи: 1) определить какие пользователи...

Как получить доступ к критическим процессам? - .NET
Как на VB.NET получить полный доступ к критическим процессам

Общий доступ (DHCP) в Windows 7, доступ к серверным ресурсам - Windows 7
Для начала опишу как сделанно: Есть Серверный ПК, с двумя сетевухами, одна инет, вторая локаль. Локаль поключенна к свитчу, далее инет...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2013, 20:15
Привет! Вот еще темы с ответами:

Администрирование windows: политика безопасности WINDOWS запрещает доступ к этим ресурсам - Администрирование Windows
у меня проблема: при попытке открыть расшаренную папку компьютер выдает сообщение типа:&quot;политика безопасности WINDOWS запрещает доступ к...

Потерял доступ к файлам после установки Windows 7 вместо Windows XP - Windows 7
как то давно я на ВинХП накосячил и у меня папка стала зеленым цветом и всё что в ней тоже было зеленом(название папки) я не стал на это...

Медленный доступ компьютера с Windows 8 к Windows 2003 server - Windows 8, 8.1
Чрезвычайно медленно идет копирование файлов с Windows 8 к Windows 2003 server. Захожу с машины Win8 на этот сервер по RDP, копирую тот же...

Как получить полный доступ к диску Windows 7 в домашней WiFi-сети через Windows Vista? - Windows 7
Добрый день. Скажите пожалуйста как сделать чтобы в домашней WiFi сети, с компьютера под управлением Windows Vista можно было полнотью...


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

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

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