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);