Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/47: Рейтинг темы: голосов - 47, средняя оценка - 4.81
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 92
1

Как запустить файл на выполнение

17.02.2012, 13:14. Показов 9191. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ну вобщем только недавно начал программировать , и вот появилась такая вот задача , решил создать приложение (виноус формс) с помощью которой я бы мог запускать программы (ехешники) т.е. что бы форма содержала скажем 6 кнопок , при нажатии на которые запускался определённый ехешник , подскажите приблизительный код на кнопку , и вобще структуру хранения файлов потом
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.02.2012, 13:14
Ответы с готовыми решениями:

Как запустить сторонний exe-файл на выполнение
Здравствуйте. Я делаю одну программу на C# и столкнулся с проблемой не знания кода. Пожалуйста,...

как из С# запустить exe-файл на выполнение или какой-нить другой?
как из С# запустить exe-файл на выполнение или какой-нить другой?

Как запустить файл на выполнение
Здравствуйте ! Как в Lazarus-е запустить файл ? К примеру при нажатии на кнопку, у меня в той же...

Как запустить файл exe на выполнение
Народ подскажите пожалуйста как запустить файл ( экзешник) из своего приложения на vb.net ...

15
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
17.02.2012, 13:19 2
C#
1
System.Diagnostics.Process.Start("путь_к_приложению");
Так-как приложение расчитано на постоянное использование данной функции пишем так:
C#
1
2
3
using System.Diagnostics; //Добавляем пространство имен
 
Process.Start("путь_к_приложению"); //Запускаем приложение
1
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 92
17.02.2012, 13:23  [ТС] 3
т.е. создаём батон и тупо на него пишем Process.Start("путь_к_приложению");
и ещё , приложение на сколько я полагаю должно лежать в той же папке где и будет сам наш ехе-шник программы?(ну для удобства?)

Добавлено через 49 секунд
Цитата Сообщение от DimanRu Посмотреть сообщение
C#
1
System.Diagnostics.Process.Start("путь_к_приложению");
Так-как приложение расчитано на постоянное использование данной функции пишем так:
C#
1
2
3
using System.Diagnostics; //Добавляем пространство имен
 
Process.Start("путь_к_приложению"); //Запускаем приложение


т.е. создаём батон и тупо на него пишем Process.Start("путь_к_приложению");
и ещё , приложение на сколько я полагаю должно лежать в той же папке где и будет сам наш ехе-шник программы?(ну для удобства?)
0
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
17.02.2012, 13:28 4
Цитата Сообщение от Dota_pro_Stalk Посмотреть сообщение
приложение на сколько я полагаю должно лежать в той же папке где и будет сам наш ехе-шник программы?
Не обязательно, привожу пример:
C#
1
2
3
4
private void button1_Click(object sender, EventArgs e) //По клику на button1
{
   Process.Start(@"c:\Program Files\Internet Explorer\IEXPLORE.EXE"); //Запустили Internet Explorer
}
1
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
17.02.2012, 15:25 5
Лучше какой нибудь комбобокс сделать и одну кнопку. Можно даже без кнопки,добавив событие.
1
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
17.02.2012, 15:28 6
Да, можно, или ListBox, недавно была тема подобная с comboBox'ом, там сайты открывались, но там покруче было, можно было добалять собственные сайты в список.

P.S. Вот эта тема, кого интересует.
0
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 92
17.02.2012, 15:30  [ТС] 7
Цитата Сообщение от DimanRu Посмотреть сообщение
Да, можно, или ListBox, недавно была тема подобная с comboBox'ом, там сайты открывались, но там покруче было, можно было добалять собственные сайты в список.
всё дело в том что требуеться именно запуск с кнопок , проблема в том , что при запуске на другом копьютере , получаеться совершенно другой адррес этих файлов , и он выводит ошибку , ну вот сам код


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                Process.Start("1s1m.lnk");
            }
            catch
            {
                MessageBox.Show("Ошибка");
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                Process.Start("1s2m.lnk");
            }
            catch
            {
                MessageBox.Show("Ошибка");
            }
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                Process.Start("1s3m.lnk");
            }
            catch
            {
                MessageBox.Show("Ошибка");
            }
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
            try
            {
                Process.Start("2s1m.lnk");
            }
            catch
            {
                MessageBox.Show("Ошибка");
            }
        }
 
        private void button5_Click(object sender, EventArgs e)
        {
            try
            {
            Process.Start("2s2m.lnk");
            }
            catch
            {
                MessageBox.Show("Ошибка");
            }
        }
 
        private void button6_Click(object sender, EventArgs e)
        {
            try
            {
            Process.Start("2s3m.lnk");
            }
            catch
            {
                MessageBox.Show("Ошибка");
            }
        }
 
        private void button7_Click(object sender, EventArgs e)
        {
            try
            {
                MessageBox.Show("Создатель программы ");
            }
 
            catch
            {
                MessageBox.Show("Ошибка");
            }
        }
 
 
    }
}
0
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
17.02.2012, 15:37 8
Если с кнопками, тогда сложнее, количество запускаемых программ ограничено, можно конечно создать поиск файла на компе, но боюсь это займет много времени, или просить пользователья сохранять пути к программам!
0
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
17.02.2012, 15:44 9
Dota_pro_Stalk, В отладчике просмотрите программу. Ведь .lnk это ссылки на что-то,а на вашем компьютере видимо они являлись указателем,а на другом естественно нет такого пути и т.д.Может в этом проблема?
0
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 92
17.02.2012, 15:51  [ТС] 10
Цитата Сообщение от NowMatrix Посмотреть сообщение
Dota_pro_Stalk, В отладчике просмотрите программу. Ведь .lnk это ссылки на что-то,а на вашем компьютере видимо они являлись указателем,а на другом естественно нет такого пути и т.д.Может в этом проблема?
это то и понятно , файлы , на которые ссылки , находятся в этой же папке но в подпапках(ну у меня есть 1 общая папка с ехе-шником , и в этой же папке есть другие папки , в которых те ехе-шки , которые нам и необходимио запускать в самой программе) , проблема в том , как сделать что бы была как бы ссылки общего вида , Ну домустим в хтмл , с этим всё просто , он берёт файлы из той папки где головная страница расположенна , а как сделать тут нечто подобное , что бы он искал их только в той папке где нахоится , а не по тому адрессу , где он был изначально создан
0
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
17.02.2012, 16:23 11
Ну естественно на другом компьютере и имя компьютера другое и пользователь. Вам нужно наверно получить путь к приложению таким образом Application.ExecutablePath. И далее выполнить поиск файлов(экзешников) по папке ,и если находим,то запускаем.

Добавлено через 23 минуты
Вот примерный код.правда не тестил.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        string str; //путь к нашей папке с приложением
        string[] files; //пути файлов в папке с приложением
        public Form1()
        {
            InitializeComponent();
            str = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\\"));
            files = Directory.GetFiles(@str);
            
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                foreach (string s in files)
                {
                    if (s.Substring(0, s.IndexOf(".")) == "1s1m") Process.Start(@str+"1s1m.exe");
                }   
            }
            catch
            {
                MessageBox.Show("Ошибка");
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                foreach (string s in files)
                {
                    if (s.Substring(0, s.IndexOf(".")) == "1s2m") Process.Start(@str + "1s2m.exe");
                }   
            }
            catch
            {
                MessageBox.Show("Ошибка");
            }
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                foreach (string s in files)
                {
                    if (s.Substring(0, s.IndexOf(".")) == "1s3m") Process.Start(@str + "1s3m.exe");
                }
            }
            catch
            {
                MessageBox.Show("Ошибка");
            }
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
            try
            {
                foreach (string s in files)
                {
                    if (s.Substring(0, s.IndexOf(".")) == "2s1m") Process.Start(@str + "2s1m.exe");
                }
            }
            catch
            {
                MessageBox.Show("Ошибка");
            }
        }
 
        private void button5_Click(object sender, EventArgs e)
        {
            try
            {
                foreach (string s in files)
                {
                    if (s.Substring(0, s.IndexOf(".")) == "2s2m") Process.Start(@str + "2s2m.exe");
                }
            }
            catch
            {
                MessageBox.Show("Ошибка");
            }
        }
 
        private void button6_Click(object sender, EventArgs e)
        {
            try
            {
                foreach (string s in files)
                {
                    if (s.Substring(0, s.IndexOf(".")) == "2s3m") Process.Start(@str + "2s3m.exe");
                }
            }
            catch
            {
                MessageBox.Show("Ошибка");
            }
        }
 
        private void button7_Click(object sender, EventArgs e)
        {
            try
            {
                MessageBox.Show("Создатель программы ");
            }
 
            catch
            {
                MessageBox.Show("Ошибка");
            }
        }
    }
}
Должно работать,если ссылки и exe-шники имеют одинаковые имена.(не считая расширение)
0
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 92
17.02.2012, 16:25  [ТС] 12
Как я полагаю это готовый код?
а зачем нам наследование?
И что мы собственно наследуем?
1
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
17.02.2012, 16:28 13
Цитата Сообщение от Dota_pro_Stalk Посмотреть сообщение
а зачем нам наследование?
И что мы собственно наследуем?
Ну если вы не заметили,то в вашем примере тоже было наследование. При создании winform приложения создаётся класс, автоматически унаследованный от класса Form.
0
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 92
17.02.2012, 16:29  [ТС] 14
Точняк=)
А можешь немножко подробнее описать Application.ExecutablePath
0
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
17.02.2012, 16:36 15
Возвращает строку,которая содержит путь до исполняемого файла,включая его имя.
http://msdn.microsoft.com/ru-r... epath.aspx

Добавлено через 4 минуты
Чёт я немного намудрил там. Прога просто ищет нужные нам exe-шники в папке с приложением и запускает.
0
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
17.02.2012, 17:18 16
Во-первых, если я правильно понял нам нужна папка в которой лежит наша программа, а не полный путь к программе, поэтому строка:
C#
1
Application.StartupPath;
Во-вторых, я что-то вообще запутался чего хочет автор, запукать программы какие??? Ты зарание знаешь их место положение?
0
17.02.2012, 17:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2012, 17:18
Помогаю со студенческими работами здесь

Как запустить exe файл на выполнение
как отрыть exe файл ?

Как запустить на выполнение проектный файл?
Доброго времени суток. Создал проект. Выполнил компиляцию. В результате в папке, куда сохранил...

Как запустить exe-файл на выполнение
Подскажите как написать процедуру для кнопки которая запускает файл формата "ехе" ?

Как из асп запустить файл exe на выполнение..?
Как из асп запустить файл exe на выполнение..?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru