WinApi функция GetClassName в С#. "Attempted to read or write protected memory" - C#
Формулировка задачи:
Вот код, который я пытаюсь заставить работать. Здесь я пытаюсь по дескриптору окна узнать название его класса(в данном случае "notepad") :
Однако, во время выполнения строки Программа выдаёт следующее: "Unhandled Exception: System.AccessViolationException: Attempted to read or write
protected memory. This is often an indication that other memory is corrupt."
Ни малейшего понятия, что с этим делать.
Гугление не помогло.
Помогите пожалуйста.
P.S: Перед запуском кода необходимо открыть notepad.exe
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; namespace GetClassNameCSharp { class Program { [DllImport("user32.dll", SetLastError = true)] static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("user32.dll")] static extern int GetClassName(IntPtr hWnd, ref StringBuilder lpClassName, int nMaxCount); static void Main(string[] args) { IntPtr hwnd = FindWindow("notepad", null); StringBuilder lpClassName = new StringBuilder(); GetClassName(hwnd, ref lpClassName, 100); Console.WriteLine(lpClassName.ToString()); } } }
GetClassName(hwnd, ref lpClassName, 100);
Решение задачи: «WinApi функция GetClassName в С#. "Attempted to read or write protected memory"»
textual
Листинг программы
StringBuilder lpClassName = new StringBuilder(100);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д