Запуск стороннего приложения

282
03 июня 2017, 13:51

Внутри своего приложения запускаю процесс

Process prc = new Process();
prc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
prc.StartInfo.FileName = @"С:\\666\fusioninventory-agent_windows.exe";
prc.StartInfo.Arguments = "/acceptlicense /add-firewall-exception /execmode=Service /installtasks=Full /runnow /no-start-menu /S";
prc.Start();

А он мне выдает окно:

Не удается проверить издателя. Вы действительно хотите запустить эту программу?

Запускаю под админом. Как сделать что бы запуск внутри приложения был автоматическим?

По вопросам что за файл - взято отсюда только вместо cmd хочу использовать c#

Answer 1

Раз ваш файл загружен из сетевого расположения, у него может быть проставлен альтернативный поток данных Zone.Identifier, который означает «файл загружен из интернета, и его не надо запускать».

Судя по всему, для его удаления вам не обойтись без P/Invoke:

public static class AlternateStreamUtility
{
    [DllImport("kernel32", CharSet = CharSet.Unicode, SetLastError = true)]
    [return: MarshalAs(UnmanagedType.Bool)]
    static extern bool DeleteFile(string name);
    const int FACILITY_WIN32 = 7;
    static int HResultFromWin32(int x)
    {
        //#define HRESULT_FROM_WIN32(x) \
        //  ((HRESULT)(x) <= 0 ? ((HRESULT)(x)) \
        //: ((HRESULT) (((x) & 0x0000FFFF) | (FACILITY_WIN32 << 16) | 0x80000000)))
        return (int)((x <= 0) ? x :
          ((x & 0x0000FFFF) | (FACILITY_WIN32 << 16) | 0x80000000));
    }
    const int ERROR_FILE_NOT_FOUND = 0x2;
    static public bool RemoveZoneIdentifier(string fileName)
    {
        if (DeleteFile(fileName + ":Zone.Identifier"))
            return true;
        var error = Marshal.GetLastWin32Error();
        if (error == ERROR_FILE_NOT_FOUND && File.Exists(fileName))
            return false;
        Marshal.ThrowExceptionForHR(HResultFromWin32(error));
        return false; // not reached
    }
}

Код с благодарностью утащен отсюда и немного доработан.

READ ALSO
Удаление всех Ellipse на Canvas

Удаление всех Ellipse на Canvas

Имеются эллипсы на Canvas:

248
Произвольный цвет фона и рамки для TextBox

Произвольный цвет фона и рамки для TextBox

Как мне из такого поля:

283
Активность кнопки при условии - C#

Активность кнопки при условии - C#

Как мне сделать кнопку активной если заполнено поле textBox1 ?

263
ObservableCollection, сортировка на лету

ObservableCollection, сортировка на лету

Есть ObservableCollection, которая прибинжена к GridViewВнутри нее объекты, у каждого есть свойство Index

494