Код: Выделить всё
private const int HWND_BROADCAST = 0xFFFF;
private const uint WM_SETTINGCHANGE = 0x1A;
private const int MSG_TIMEOUT = 15000;
// Enum for SendMessageTimeout flags
[Flags]
private enum SendMessageTimeoutFlags : uint
{
SMTO_NORMAL = 0x0000,
SMTO_BLOCK = 0x0001,
SMTO_ABORTIFHUNG = 0x0002,
SMTO_NOTIMEOUTIFNOTHUNG = 0x0008,
SMTO_ERRORONEXIT = 0x0020
}
// PInvoke declaration
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
private static extern IntPtr SendMessageTimeout(
IntPtr hWnd,
uint Msg,
UIntPtr wParam,
IntPtr lParam,
SendMessageTimeoutFlags fuFlags,
uint uTimeout,
out UIntPtr lpdwResult);
private static void BroadcastChange()
{
IntPtr hwndBroadcast = new IntPtr(HWND_BROADCAST);
string environment = "Environment";
// Allocate memory for the string parameter
IntPtr lParam = Marshal.StringToHGlobalAuto(environment);
try
{
UIntPtr result;
SendMessageTimeout(
hwndBroadcast,
WM_SETTINGCHANGE,
UIntPtr.Zero,
lParam,
SendMessageTimeoutFlags.SMTO_ABORTIFHUNG,
MSG_TIMEOUT,
out result);
Console.WriteLine("Broadcast message sent successfully.");
}
finally
{
// Free the allocated memory
Marshal.FreeHGlobal(lParam);
}
}
[img]https://i.sstatic. net/oTUZ4ldA.png[/img]
Что я делаю не так?
Это консольное приложение .net 8.Изменить:
Ссылка на репозиторий с полной копией кода:
https://github.com/IanPNewson/AutoDisableTouchpad
Подробнее здесь: https://stackoverflow.com/questions/787 ... ttings-app