Загрузка...

Как сделать открытие стороннего EXE при нажатии на button в WinForm?

Тема в разделе C# создана пользователем BANK1R_inactive2798101 24 апр 2022. (поднята 24 апр 2022) 464 просмотра

  1. BANK1R_inactive2798101
    BANK1R_inactive2798101 Автор темы 24 апр 2022 Заблокирован(а) 294 24 ноя 2019
    [IMG] Карочи есть форма, нужно сделать так чтоб при нажатии на кнопку(картинку) запускалась программа которая будет лежать рядом с екзешником формы в папке (bin к примеру) и после запуска вылазила ошибка (Read on update)
     
  2. nu11
    nu11 24 апр 2022 9125 24 фев 2020
    Код
    using System.Diagnostics;

    private void button1_Click(object sender, EventArgs e)
    {
    Process.Start(@"C:\MyCmp\Desktop\TestOfKnowledge\TestOfKnowledge\bin\Debug\TslGame.exe"); // пример пути
    }
     
    1. BANK1R_inactive2798101 Автор темы
      nu11, А если у чел будет путь другой
    2. nu11
    3. BANK1R_inactive2798101 Автор темы
      nu11, Я имею виду что файл буду распространять и если я впишу туда свой, скину челу, а у него путь другой (Элементарно не в ту папку сохранит или имя компа другое)
  3. r3xq1
    r3xq1 24 апр 2022 53 27 июл 2018
    C#
    ProcessStartInfo startInfo = new ()
    {
    FileName = "", // Путь до файла который нужно запустить
    CreateNoWindow = false, // Без окна консоли
    WindowStyle = ProcessWindowStyle.Hidden // скрытый режим запуска
    };
    // Тут запускаем файла с параметрами
    using var info = Process.Start(startInfo);
    info.Refresh();


    // Где FileName = сюда нижнюю строчку - это запустить файл рядом с твоим .exe
    public static string ExePath = System.IO.Path.Combine(Environment.CurrentDirectory, @"путь до файла .exe");
     
    1. BANK1R_inactive2798101 Автор темы
  4. BANK1R_inactive2798101
    BANK1R_inactive2798101 Автор темы 24 апр 2022 Заблокирован(а) 294 24 ноя 2019
    Всё ещё нужна помощь
     
    1. feiserak
    2. feiserak
      BANK1R_inactive2798101, хотя чел выше тебе это уже сказал, в чем вопрос оставшийся заключается?
  5. mikuzeboka
    mikuzeboka 8 май 2022 5 13 янв 2021
    Работает хуеву тучу лет, поэтому нужно вписывать определённые пути, Common Files, Roaming, Program Files.
    Так же в коде немного кустарщины, для преобразования зубчатого массива в векторный.
    C#
    private List<string> GetCommonEntriesOnFolder(string path)
    {
    if(path.Count(z => z == '\\') > 1 && FileAttributes.System == (File.GetAttributes(path) & FileAttributes.System))
    return new List<string>();
    List<string> entries = Directory.GetFiles(path).ToList();
    Directory.GetDirectories(path).ToList().ForEach(z => entries.AddRange(GetCommonEntriesOnFolder(z)));
    return entries;
    }
    private void StartB_Click(object sender, EventArgs e)
    {
    string pathPattern = @"Process Hacker 2\x86\ProcessHacker.exe";
    string[] matchPaths = string.Join(';', DriveInfo.GetDrives().Select(z => string.Join(';', GetCommonEntriesOnFolder(z.Name).Where(z => z.EndsWith(pathPattern))))).Split(';');
    }
     
    8 май 2022 Изменено
Top
Загрузка...