Сутенер мой контроль учётных записей и несколько вопросов об этом

Одна вещь, которую я нашел действительно сбивающим с толку в современном vi (энергия?) режим ввода, который допускает некоторых, но не все функции командного режима. Я чувствую себя намного больше комфортно, когда режим ввода полностью dumbed вниз для "перезаписи только, никакое перемещение курсора возможный" вид вещи, которую имеет старый Солярис vi. Истинный vi требует, чтобы Вы остались в командном режиме большую часть времени.

Однако нет никакой потребности узнать, что vi в наше время - emacs так же повсеместен.:)

6
задан Matías 30 October 2009 в 01:22
поделиться

2 ответа

1 вы не можете управлять режимом повышения прав для процесса, на котором размещена ваша DLL. Вы можете предоставить разрешение на доступ к целевой папке или реестру для всех в процессе установки , если вы можете контролировать процесс установки.

2 вам необходимо подписать программу с помощью сертификат, опубликованный центром сертификации, которому будет доверять клиент . Посетите местное хранилище сертификатов (панель управления-> параметры Интернета, вкладка содержимого, издатели), чтобы увидеть общие центры сертификации.

3 когда вы получаете UnauthorizedAccessExceotion, отправьте его в исполняемый файл хоста или верните значение ошибки, указывающее на проблему безопасности. Затем вызывающий вашу DLL решает, что делать,

4
ответ дан 10 December 2019 в 00:40
поделиться

У меня были такие же проблемы. Погуглив около двух дней, я нашел единственное решение, которое соответствовало моим потребностям - запустить приложение с правами администратора. Запускаю приложение, проверяю, запущено ли оно от имени администратора. А если нет - перезапустите его с правами администратора.

    static void Main(string[] args)
    {
        if (NeedElevation(args) && Elevate(args))
        { // If elevastion succeeded then quit.
            return;
        }
        // your code here
    }

    public static bool Elevate(string[] args)
    {
        try
        {
            ProcessStartInfo info = Process.GetCurrentProcess().StartInfo;
            info.Verb = "runas";
            info.Arguments = NoElevateArgument;
            foreach (string arg in args)
            {
                info.Arguments += ' ' + arg;
            }
            info.FileName = Assembly.GetEntryAssembly().Location;

            Process process = new System.Diagnostics.Process();
            process.StartInfo = info;

            process.Start();
        }
        catch (Exception)
        {
            MessageBox.Show("You don't have administrative privileges thus the Automatic Application Updates cannot be started. But the rest of application is available as usually.",
                "Not enough user rights", MessageBoxButtons.OK, MessageBoxIcon.Information);
            return false;
        }

        return true;
    }
6
ответ дан 10 December 2019 в 00:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: