Перейти к содержанию

C#.Winapi проблема с функцией GetProcessId


Рекомендуемые сообщения

Доброго дня.У меня проблема с функцией 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();

	}
}

Ссылка на фото:

Скрытый текст

5a16f2de05096_b2d6fde187101.thumb.png.f7bb38167aa12a2f4de5458b095eb5ab.png

 

Ссылка на комментарий
Поделиться на другие сайты

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.

Ссылка на комментарий
Поделиться на другие сайты

7 минут назад, partoftheworlD сказал:

Для того чтобы получить его и передать в GetProcessId тебе надо найти процесс и открыть его как минимум с правами PROCESS_QUERY_INFORMATION, OpenProcess вернет хендл, хотя тогда смысл в Getprocessid отпадает, на момент открытия процесса у тебя уже будет pID т.к OpenProcess принимает pid.

Простите не знал..только начал изучать winapi.

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.