Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Пользователь


Сообщения: 76
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата a1ek9:
У меня ноутбук не выдержит ставить компиляторы »
В послдений раз лет 10 назад пользовался borland, но тогда и компьютер хороший был)
Не подскажешь еще момент, убрал лишнее с скрипта PS, теперь компиляция завершается неудачей.
Код: Выделить весь код
$UpdateEnvExplorerAPI = @{
	Namespace = "WinAPI";
	Name = "UpdateEnvExplorer";
	Language = "CSharp";
	MemberDefinition = @"
		private static readonly IntPtr HWND_BROADCAST = new IntPtr(0xffff);
		private const int WM_SETTINGCHANGE = 0x1a;
		[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
		static extern bool SendNotifyMessage(IntPtr hWnd, uint Msg, IntPtr wParam, string lParam);
		public static void Refresh()
		{
			SendNotifyMessage(HWND_BROADCAST, WM_SETTINGCHANGE, IntPtr.Zero, "TraySettings");
		}
"@
}
IF (-not ("WinAPI.UpdateEnvExplorer" -as [type]))
{
	Add-Type @UpdateEnvExplorerAPI
}
[WinAPI.UpdateEnvExplorer]::Refresh()
PS отрабатывает код на ура без каких либо ошибок. А в c# не хочет, пишет (error CS0116: Пространство имен не может напрямую включать в себя такие члены, как
поля или методы).
p.s. Исправил, вот как надо было
Код: Выделить весь код
// Framework: .NET

using System;
using System.Runtime.InteropServices;

namespace WinAPI
{
    public static class UpdateEnvExplorer
    {
        private static readonly IntPtr HWND_BROADCAST = new IntPtr(0xffff);
        private const int WM_SETTINGCHANGE = 0x1a;

        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
        static extern bool SendNotifyMessage(IntPtr hWnd, uint Msg, IntPtr wParam, string lParam);

        public static void Refresh()
        {
            SendNotifyMessage(HWND_BROADCAST, WM_SETTINGCHANGE, IntPtr.Zero, "TraySettings");
        }
    }

    class Program
    {
        static void Main()
        {
            if (Type.GetType("WinAPI.UpdateEnvExplorer") == null)
            {
                // Type not found, handle accordingly if needed.
            }
            UpdateEnvExplorer.Refresh();
        }
    }
}

Последний раз редактировалось a1ek9, 14-12-2024 в 17:35.


Отправлено: 17:18, 14-12-2024 | #4