Как найти Handle окна процесса? - C#
Формулировка задачи:
Здраствуйте!
Вот решил розобраться какие в C# есть возможности для роботы с процессами. Научился находить pID, pName. А вот Handle окна никак не получается найти (
вот пример кода :
Что здесь не так?
Заранее спасибо!
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Diagnostics; using System.Runtime.InteropServices; namespace WindowsFormsApplication3 { public partial class Form1 : Form { [DllImport("kernel32.dll")] public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId); [DllImport("kernel32.dll", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] static extern bool CloseHandle(IntPtr hObject); [DllImport("kernel32.dll", SetLastError = true)] static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out UIntPtr lpNumberOfBytesWritten); public int pID; public Form1() { InitializeComponent(); GetProcess("Nksp"); WriteByte(); } public void GetProcess(string name) { var pList = Process.GetProcesses(); if (pList.Count() != 0) { foreach (var process in pList) { if (process.ProcessName == name) { pID = process.Id; richTextBox1.Text = Convert.ToString(process.ProcessName)+"\t"+pID+"\t"; } } } } public void WriteByte() { var handle = OpenProcess(0x001F0FFF, false, pID); richTextBox1.Text = richTextBox1.Text + Convert.ToString(handle); CloseHandle(handle); var adress = 0x2119D870; byte[] bytes = { 0x09, 0x00, 0x00, 0x00 }; var w = new UIntPtr(); WriteProcessMemory(handle, (IntPtr)adress, bytes, 4, out w); } private void button1_Click(object sender, EventArgs e) { } } }
Решение задачи: «Как найти Handle окна процесса?»
textual
Листинг программы
Process myProcess=Process.GetProcessById(/*тут id */); //код HANDLE hndl=myProcess.MainWindowHandle;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д