C# как автоматически найти pid без использования combobox?
Всем привет, не могли бы вы мне помочь?
Я хотел бы использовать кнопку вместо combobox. Таким образом, я мог бы нажать на кнопку, и она автоматически будет выглядеть, если браузер открыт, и спросить pid. Нет необходимости выбирать его в выпадающем списке. Как я мог это осуществить?
Что я уже пробовал:
<pre>public void comboBox1_TextChanged(object sender, EventArgs e) { if (this.comboBox1.Text == "Chrome") { int pid = browser.Chrome(); if (pid > 0) { Aobscan.OpenProcessid(pid); label1.Text = "Google Chrome = PID " + pid + "--" + BIT64.Text; } else { label1.Text = "Error! Chrome Game open?"; Aobscan.processhandle = IntPtr.Zero; } } if (this.comboBox1.Text == "Opera") { int pid = browser.Opera(); if (pid > 0) { Aobscan.OpenProcessid(pid); label1.Text = "Opera = PID " + pid + "--" + BIT64.Text; } else { label1.Text = "Failed To Attached Opera"; Aobscan.processhandle = IntPtr.Zero; } } if (this.comboBox1.Text == "FacebookGameroom") { int pid = browser.Gameroom_Flash(); if (pid > 0) { Aobscan.OpenProcessid(pid); label1.Text = "FBGameroom = PID " + pid + "--" + BIT64.Text; } else { label1.Text = "Failed To Attached Gameroom_Flash"; Aobscan.processhandle = IntPtr.Zero; } } if (this.comboBox1.Text == "Firefox") { int pid = browser.Firefox_Flash(); if (pid > 0) { Aobscan.OpenProcessid(pid); label1.Text = "Firefox_Flash = PID " + pid + "--" + BIT64.Text; } else { label1.Text = "Failed To Attached Firefox_Flash"; Aobscan.processhandle = IntPtr.Zero; } }
<pre>using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Runtime.InteropServices; using System.Diagnostics; namespace Trainer_C3 { class GetBrowser { [DllImport("kernel32.dll", SetLastError = true)] static public extern bool CloseHandle(IntPtr hHandle); [DllImport("kernel32.dll")] static public extern bool Module32First(IntPtr hSnapshot, ref MODULEENTRY32 lpme); [DllImport("kernel32.dll")] static public extern bool Module32Next(IntPtr hSnapshot, ref MODULEENTRY32 lpme); [DllImport("kernel32.dll", SetLastError = true)] static public extern IntPtr CreateToolhelp32Snapshot(SnapshotFlags dwFlags, uint th32ProcessID); public const short INVALID_HANDLE_VALUE = -1; [Flags] public enum SnapshotFlags : uint { HeapList = 0x00000001, Process = 0x00000002, Thread = 0x00000004, Module = 0x00000008, Module32 = 0x00000010, Inherit = 0x80000000, All = 0x0000001F } [StructLayoutAttribute(LayoutKind.Sequential)] public struct MODULEENTRY32 { public uint dwSize; public uint th32ModuleID; public uint th32ProcessID; public uint GlblcntUsage; public uint ProccntUsage; IntPtr modBaseAddr; public uint modBaseSize; IntPtr hModule; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] public string szModule; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] public string szExePath; }; static List<string> EnumProcessModules(uint procIDDDDDDDDDDDDD) { List<string> modules = new List<string>(); var snapshot = CreateToolhelp32Snapshot(SnapshotFlags.Module | SnapshotFlags.Module32, procIDDDDDDDDDDDDD); MODULEENTRY32 mod = new MODULEENTRY32() { dwSize = (uint)Marshal.SizeOf(typeof(MODULEENTRY32)) }; if (!Module32First(snapshot, ref mod)) return modules; do { // Console.WriteLine(mod.szModule); modules.Add(mod.szModule); } while (Module32Next(snapshot, ref mod)); return modules; } public int Chrome() { Process[] chrome = Process.GetProcessesByName("chrome"); foreach (Process subchrome in chrome) { List<string> modules = EnumProcessModules((uint)subchrome.Id); foreach (string submodule in modules) { // Console.WriteLine(submodule); if (submodule.Contains("pepflashplayer")) { // MessageBox.Show("Chrome Flash :" + subchrome.Id.ToString()); return subchrome.Id; } } } return 0; } public int Firefox_Flash() { Process[] chrome = Process.GetProcesses(); int id = 0; foreach (Process subchrome in chrome) { if (subchrome.ProcessName.Contains("FlashPlayerPlugin")) { id= subchrome.Id; } } return id; } public int Edge_Flash() { Process[] chrome = Process.GetProcesses(); int id = 0; foreach (Process subchrome in chrome) { if (subchrome.ProcessName.Contains("MicrosoftEdgeCP")) { List<string> modules = EnumProcessModules((uint)subchrome.Id); foreach (string submodule in modules) { //Console.WriteLine(submodule); if (submodule.Contains("Flash")) { // MessageBox.Show("Chrome Flash :" + subchrome.Id.ToString()); return subchrome.Id; } } } } return id; } public int Opera() { Process[] chrome = Process.GetProcessesByName("opera"); foreach (Process subchrome in chrome) { List<string> modules = EnumProcessModules((uint)subchrome.Id); foreach (string submodule in modules) { // Console.WriteLine(submodule); if (submodule.Contains("pepflashplayer")) { // MessageBox.Show("Chrome Flash :" + subchrome.Id.ToString()); return subchrome.Id; } } } return 0; } public int Firefox_Unity() { try { Process chrome = Process.GetProcessesByName("plugin-container")[0]; return chrome.Id; }catch { return 0; } } public int Gameroom_Flash() { Process[] chrome = Process.GetProcessesByName("Facebook Gameroom Browser"); foreach (Process subchrome in chrome) { List<string> modules = EnumProcessModules((uint)subchrome.Id); foreach (string submodule in modules) { // Console.WriteLine(submodule); if (submodule.Contains("fenix")) { // MessageBox.Show("Chrome Flash :" + subchrome.Id.ToString()); return subchrome.Id; } } } return 0; } public int Mustang() { Process[] mustang = Process.GetProcessesByName("mustang"); foreach (Process subchrome in mustang) { List<string> modules = EnumProcessModules((uint)subchrome.Id); foreach (string submodule in modules) { // Console.WriteLine(submodule); if (submodule.Contains("pepflashplayer")) { // MessageBox.Show("Chrome Flash :" + subchrome.Id.ToString()); return subchrome.Id; } } } return 0; } } }
Richard Deeming
Вы ищете Процесс.GetProcessesByName[^]?
HemersonKl
Привет. Я забыл другую часть сценария. - Добавил Я в вопрос. Я мало что знаю о с #