Seal Опубликовано 23 ноября, 2017 Поделиться Опубликовано 23 ноября, 2017 Доброго дня.У меня проблема с функцией GetProccessId.Я хочу узнать id процесса игры minecraft,но мне это функция всегда возвращает 0,что я сделал не так,помогите.. Скрытый текст using System; using System.Runtime.InteropServices; using System.Threading; class Example { // Use DllImport to import the Win32 MessageBox function. [DllImport("Kernel32.dll")] public static extern int GetProcessId(string HANDLEProcess); static void Main(){ int save; save = GetProcessId("Minecraft Launcher"); Thread.Sleep(1000); Console.WriteLine(save); Console.ReadKey(); } } Ссылка на фото: Скрытый текст Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 23 ноября, 2017 Поделиться Опубликовано 23 ноября, 2017 Minecraft Launcher - не хендл процесса https://msdn.microsoft.com/en-us/library/windows/desktop/ms683215(v=vs.85).aspx Для того чтобы получить его и передать в GetProcessId тебе надо найти процесс и открыть его как минимум с правами PROCESS_QUERY_INFORMATION, OpenProcess вернет хендл, хотя тогда смысл в Getprocessid отпадает, на момент открытия процесса у тебя уже будет pID т.к OpenProcess принимает pid. Ссылка на комментарий Поделиться на другие сайты Поделиться
Seal Опубликовано 23 ноября, 2017 Автор Поделиться Опубликовано 23 ноября, 2017 7 минут назад, partoftheworlD сказал: Для того чтобы получить его и передать в GetProcessId тебе надо найти процесс и открыть его как минимум с правами PROCESS_QUERY_INFORMATION, OpenProcess вернет хендл, хотя тогда смысл в Getprocessid отпадает, на момент открытия процесса у тебя уже будет pID т.к OpenProcess принимает pid. Простите не знал..только начал изучать winapi. Ссылка на комментарий Поделиться на другие сайты Поделиться
Seal Опубликовано 23 ноября, 2017 Автор Поделиться Опубликовано 23 ноября, 2017 (изменено) Исправил Изменено 23 ноября, 2017 пользователем Seal Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения