Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
 
DmitryAllen
-20 / 1 / 1
Регистрация: 23.02.2017
Сообщений: 30
#1

Как получить название своего приложения? - C#

24.02.2017, 00:36. Просмотров 551. Ответов 20
Метки нет (Все метки)

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

C#
1
2
3
4
5
6
7
8
9
StreamWriter sw = new StreamWriter(@"file.bat");
            sw.WriteLine("@echo off");
            sw.WriteLine("timeout 1");
            sw.WriteLine("del file.exe");
            sw.WriteLine("del file.bat");
            sw.Close();
 
            Thread.Sleep(500);
            Process.Start(@"file.bat");
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2017, 00:36
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как получить название своего приложения? (C#):

Как установить новую тему своего приложения
Здравствуйте! Как поставить тему на форму??? Не на саму среду Microsoft Visual...

Как установить иконку для своего приложения
Добрый день! Подскажите пожалуйста как приложению задать иконку. Оно ставиться...

Как программно нажать клавишу F5 для обновления рабочего стола из своего приложения?
Есть ли метод или функция эмулирующая нажатие клавиши F5 для обновления...

Получить имя исполняемого файла своего приложения
Хочу сделать автоспуск, но тут подумалось что пользователь может переименовать...

Как извлечь файл из своего приложения в папку?
Собственно есть такой вопрос, только совсем не пониманию как это работает... В...

Как захватить нажатие клавиш глобально, а не только с формы своего приложения
Подскажите, пожалуйста)

20
Lexeq
605 / 521 / 385
Регистрация: 21.01.2014
Сообщений: 1,434
Завершенные тесты: 2
24.02.2017, 00:49 #2
Узнать путь к исполняемому файлу приложения
0
MansMI
1447 / 1156 / 549
Регистрация: 08.01.2012
Сообщений: 4,509
24.02.2017, 00:56 #3
C#
1
Console.WriteLine(AppDomain.CurrentDomain.FriendlyName);
1
Andrew_Montana
32 / 32 / 37
Регистрация: 12.10.2014
Сообщений: 214
24.02.2017, 00:59 #4
Лучший ответ Сообщение было отмечено DmitryAllen как решение

Решение

C#
1
2
3
4
5
6
7
8
9
            StreamWriter sw = new StreamWriter(Environment.CurrentDirectory + @"\file.bat");
            sw.WriteLine("@echo off");
            sw.WriteLine("timeout 1");
            var exe = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
            sw.WriteLine("del {0}.exe", exe);
            sw.WriteLine("del file.bat");
            sw.Close();
            Thread.Sleep(500);
            Process.Start(@"file.bat");
1
DmitryAllen
-20 / 1 / 1
Регистрация: 23.02.2017
Сообщений: 30
24.02.2017, 00:59  [ТС] #5
MansMI, спасибо, то что нужно)
0
MansMI
1447 / 1156 / 549
Регистрация: 08.01.2012
Сообщений: 4,509
24.02.2017, 00:59 #6
C#
1
Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory);
0
DmitryAllen
-20 / 1 / 1
Регистрация: 23.02.2017
Сообщений: 30
24.02.2017, 10:44  [ТС] #7
Вот я подобрал идеальное решение, думаю кому-то пригодится
C#
1
2
3
4
5
6
7
8
9
10
11
StreamWriter sw = new StreamWriter(@"rem.bat");
            sw.WriteLine("@echo off");
            sw.WriteLine("chcp 65001");
            sw.WriteLine("timeout 1");
            var exe = '"' + AppDomain.CurrentDomain.FriendlyName + '"';
            sw.WriteLine("del {0}", exe);
            sw.WriteLine("del rem.bat");
            sw.Close();
 
            Thread.Sleep(500);
            Process.Start(@"rem.bat");
0
MansMI
1447 / 1156 / 549
Регистрация: 08.01.2012
Сообщений: 4,509
24.02.2017, 10:51 #8
и в какое событии это вставлено?
0
DmitryAllen
-20 / 1 / 1
Регистрация: 23.02.2017
Сообщений: 30
24.02.2017, 11:22  [ТС] #9
MansMI, в обычную функцию которая вызывается в самом конце
0
MansMI
1447 / 1156 / 549
Регистрация: 08.01.2012
Сообщений: 4,509
24.02.2017, 13:05 #10
и что, работает?
0
DmitryAllen
-20 / 1 / 1
Регистрация: 23.02.2017
Сообщений: 30
24.02.2017, 14:26  [ТС] #11
MansMI, естественно, у меня все работает
0
MansMI
1447 / 1156 / 549
Регистрация: 08.01.2012
Сообщений: 4,509
24.02.2017, 16:10 #12
тогда, казалось бы, чего уж проще:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        static void Main(string[] args)
        {
            using (StreamWriter sw = new StreamWriter(@"rem.bat"))
            {
                sw.WriteLine("@echo off");
                sw.WriteLine("chcp 65001");
                sw.WriteLine("timeout 1");
                sw.WriteLine("del "{0}"", AppDomain.CurrentDomain.FriendlyName);
                sw.WriteLine("del rem.bat");
            }
            Thread.Sleep(500);
            Process.Start("rem.bat");
        }
но оба файла живы, и если просто bat из проводника запустить ничего не происходит
0
DmitryAllen
-20 / 1 / 1
Регистрация: 23.02.2017
Сообщений: 30
24.02.2017, 16:16  [ТС] #13
MansMI,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System.Diagnostics;
using System.IO;
using System.Threading;
 
 
StreamWriter sw = new StreamWriter(@"rem.bat");
            sw.WriteLine("@echo off");
            sw.WriteLine("chcp 65001");
            sw.WriteLine("timeout 1");
            var exe = '"' + AppDomain.CurrentDomain.FriendlyName + '"';
            sw.WriteLine("del {0}", exe);
            sw.WriteLine("del rem.bat");
            sw.Close();
 
            Thread.Sleep(500);
            Process.Start(@"rem.bat");
0
MansMI
1447 / 1156 / 549
Регистрация: 08.01.2012
Сообщений: 4,509
24.02.2017, 16:26 #14
да тож самое разумеется
0
DmitryAllen
-20 / 1 / 1
Регистрация: 23.02.2017
Сообщений: 30
24.02.2017, 16:28  [ТС] #15
MansMI, у вас в примере есть ошибки, попробуйте просто вставить то что я написал и запустить
0
DmitryAllen
-20 / 1 / 1
Регистрация: 23.02.2017
Сообщений: 30
24.02.2017, 16:34  [ТС] #16
MansMI, у меня все отлично работает
0
Миниатюры
Как получить название своего приложения?  
MansMI
1447 / 1156 / 549
Регистрация: 08.01.2012
Сообщений: 4,509
24.02.2017, 16:38 #17
да и у меня тож самое:
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
using System;
using System.IO;
using System.Diagnostics;
using System.Threading;
 
namespace Eraser
{
    class Program
    {
        static void Main(string[] args)
        {
            StreamWriter sw = new StreamWriter(@"rem.bat");
            sw.WriteLine("@echo off");
            sw.WriteLine("chcp 65001");
            sw.WriteLine("timeout 1");
            var exe = '"' + AppDomain.CurrentDomain.FriendlyName + '"';
            sw.WriteLine("del {0}", exe);
            sw.WriteLine("del rem.bat");
            sw.Close();
 
            Thread.Sleep(500);
            Process.Start(@"rem.bat");
        }
    }
}
ваш ехе можно? либо в rar тут, либо в файлообменнике
0
DmitryAllen
-20 / 1 / 1
Регистрация: 23.02.2017
Сообщений: 30
24.02.2017, 16:41  [ТС] #18
MansMI, нерабочая ссылка удалена модератором
0
MansMI
1447 / 1156 / 549
Регистрация: 08.01.2012
Сообщений: 4,509
24.02.2017, 16:52 #19
видимо сойдемся на том, что у вас Win64, а у меня нет
0
DmitryAllen
-20 / 1 / 1
Регистрация: 23.02.2017
Сообщений: 30
24.02.2017, 16:56  [ТС] #20
MansMI, вот эту попробуйте)
0
Вложения
Тип файла: zip ConsoleApplication2.exe.zip (3.0 Кб, 2 просмотров)
24.02.2017, 16:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2017, 16:56
Привет! Вот еще темы с решениями:

Как получить дату и время своего (пользовательского формата)
Всем привет. Подскажите. как получить. дату и время. своего(пользовательского...

Как с помощью HTMLAgility получить название песни и артиста?
Предположим у меня есть такой код хтмл( сайт радио рекорд) <!DOCTYPE html> ...

Получить ID процесса если известно его хэндл, название окна или название процесса
а как получить ID процесса если известно его хэндл, название окна или название...

Красивый UI для своего приложения
Доброго времени суток форумчане. Подскажите, что можете посоветовать...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru