5 / 5 / 1
Регистрация: 18.01.2010
Сообщений: 136
1

Как запущенной программе проверить своё имя?

06.07.2012, 12:34. Показов 2415. Ответов 14
Метки нет (Все метки)

Создал прогу. Хочу её бесплатно распространять. Но за собой хочу оставить привилегий, чтобы имя проги невозможно было бы изменить.

Поэтому требуется следующее.
Когда прога запускается (состоит из одного exe файла), она проверяет своё название (в текущей папке) и если название другое то:
1 - если такое возможно, то переименовывает себя
или хотя бы
2 - просто ругается (выдаёт сообщение) и закрывает себя (этот код я могу написать).

Спасибо.

Добавлено через 7 минут
В принципе могу написать такой алгоритм.
Прога запустилась.
1 - Проверяет, есть ли в папке файл с определенным названием и расширением (т. е. имя проги). Ведь в папке не может быть двух идентичных файлов.
2 - если файл с таким названием не найден то сообщение и закрытие проги.
3 - прога переименовывает себя (вот это уже не знаю как сделать, всё-таки прога уже закрылась). А пока она открыта тем более не знаю, как переименовать.

Поэтому в первую очередь интересуе вариант с возможностью самопереименования проги.

И можно ли в моём алгоритме осуществить третий пункт?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.07.2012, 12:34
Ответы с готовыми решениями:

Как в запущенной программе изменять разрешение экрана? Direc3D - C++
Как в запущенной программе изменять разрешение экрана? (Direc3D - C++) Пробовал чтобы функция...

Как сделать чтоб читал тот класс который я задам уже в запущенной программе
В общем есть много таких вариантов private void apple() { ...... }...

Как узнать свое имя файла?
Здравствуйте! Помогите с ответом! Как из запущенной программы узнать свое же имя файла?

Ввести фамилию, имя, отчество. Вывести свое имя в столбик
Ввести фамилию, имя, отчество. Вывести свое имя в столбик.

14
898 / 345 / 65
Регистрация: 11.02.2012
Сообщений: 1,502
06.07.2012, 12:41 2
Интересно мне, как ты названия изменишь не имея исходный код?
Я как-то не видел таких супердекомпиляторов на delphi, чтобы прямо весь исходный код вынуть, вместе с компонентами, классами, формами, а уж тем более потом перекомпилировать со своим именем.
0
1300 / 706 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
06.07.2012, 12:41 3
Delphi
1
2
3
if ExtractFileName(Application.ExeName) <> 'васяпупкин.exe' then begin
 ShowMessage('Неизвестная ошибка, программа будет закрыта'); Application.Terminate;
end;
1
898 / 345 / 65
Регистрация: 11.02.2012
Сообщений: 1,502
06.07.2012, 12:43 4
Delphi
1
2
var
   fileName : string;
Delphi
1
2
3
4
5
name := 'Name.bd';
 
if FileExists(name)
   then 
   else halt;
1
Санек25
06.07.2012, 12:48
  #5

Не по теме:

а если сделаю ярлык и его переименуют

0
1300 / 706 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
06.07.2012, 12:51 6
а если сделаю ярлык и его переименуют
ярлык это священно. Пользователь должен иметь полное право называть ярлык как угодно.

ваще у норм программ обычно при запуске открывается не программа а лиц соглашение, что Вы согласны с тем что Вася пупкин ее создал и благодарны ему. И при последующих запусках уже соглашение не отображается, ну или по крайней мере пока пользователь с ним не согласится.
1
421 / 351 / 19
Регистрация: 14.05.2012
Сообщений: 1,437
06.07.2012, 13:01 7
вот и я думаю что это лишний код лучше сделать как Alex_pac предложил и в хелп добавить инфу о лицензионном соглашении, данные правообладателя....
1
5 / 5 / 1
Регистрация: 18.01.2010
Сообщений: 136
06.07.2012, 16:20  [ТС] 8
Цитата Сообщение от HanDi Посмотреть сообщение
Интересно мне, как ты названия изменишь не имея исходный код?
Я как-то не видел таких супердекомпиляторов на delphi, чтобы прямо весь исходный код вынуть, вместе с компонентами, классами, формами, а уж тем более потом перекомпилировать со своим именем.
У меня в голове бродили мысли, что:
1 прога создаёт новую прогу (инспектор).
2 узнаёт изменённое имя программы
3 закрывает старую
4 переименовавает её
5 самоликвидируется (инспектор) или остается где-то во временных папках.
Или же как вариант пункта 5 инспектор:
1 запускает программу с восстановленным именем
2 передает ей управление
3 прога, получившая управление, удаляет временно созданную прогу-инспектора.
Но похоже это всё уже относиться к чрезмерным ненужным усилиям. Только если ради спортивного интереса это делать.

Добавлено через 12 минут
Дальнейшие соображения по теме, отвечая на вопрос Handi.

Вроде понял, как не очень сложно это всё можно сделать.

1 - Прога запустилась и поняла, что имя изменено.
Delphi
1
if ExtractFileName(Application.ExeName) <> 'васяпупкин.exe' ...
2 занесла в реестр нежелательное имя.
3 скопировала себя в ту же папку с изначальным именем.
4 Запустила скопированную прогу.
5 И та в первую очередь читает реестр, узнает есть ли копия проги с неправильным именем (и каким).
6 удаляет эту прогу зная имя.
Все действия происходят в одной папке, поэтому не надо даже пути узнавать.
0
421 / 351 / 19
Регистрация: 14.05.2012
Сообщений: 1,437
06.07.2012, 16:26 9
я бы сделал по другому... Если имя не совпало то запускается из прогрммы длл , а сама программа закрывается . Длл находит файл ехе переименовывает так как надо и закрывается. и все. Вместо длл можно ехе файл использовать
1
210 / 169 / 24
Регистрация: 24.04.2012
Сообщений: 615
06.07.2012, 17:00 10
Цитата Сообщение от Санек25 Посмотреть сообщение
то запускается из прогрммы длл , а сама программа закрывается
Программа закрылась, длл осталась. Цирк уехал, клоуны остались. )))
1
5 / 5 / 1
Регистрация: 18.01.2010
Сообщений: 136
06.07.2012, 17:34  [ТС] 11
Цитата Сообщение от Nutserus Посмотреть сообщение
Программа закрылась, длл осталась. Цирк уехал, клоуны остались. )))
То есть вариант с записью в реестр и просмотр реестра похоже самый правильный.
0
421 / 351 / 19
Регистрация: 14.05.2012
Сообщений: 1,437
06.07.2012, 20:22 12
Цитата Сообщение от Nutserus Посмотреть сообщение
Программа закрылась, длл осталась. Цирк уехал, клоуны остались. )))
Ну сморозил глупость, а то вы глупостей не говорите... mpdasa Можно с помощью ехе выполнить
0
898 / 345 / 65
Регистрация: 11.02.2012
Сообщений: 1,502
06.07.2012, 20:28 13
Советую не страдать бредом. Никому не нужно ломать ваши супер программы. Тем более таким способом. Поставить вотемарк на каждой странице, форму красивую сделать о создателе(можно при запуске) и тут же все желание у "хакеров", которого собственно и не было, отпадет.
0
Мишка Косолапый :)
284 / 254 / 86
Регистрация: 15.02.2012
Сообщений: 1,511
06.07.2012, 20:31 14
Цитата Сообщение от HanDi Посмотреть сообщение
Интересно мне, как ты названия изменишь не имея исходный код?
Я как-то не видел таких супердекомпиляторов на delphi, чтобы прямо весь исходный код вынуть, вместе с компонентами, классами, формами, а уж тем более потом перекомпилировать со своим именем.
Resource Tuner способен немного декомпильнуть прогу и изменить её.
0
898 / 345 / 65
Регистрация: 11.02.2012
Сообщений: 1,502
06.07.2012, 20:39 15
Цитата Сообщение от zuxa-zuxa Посмотреть сообщение
Resource Tuner способен немного декомпильнуть прогу и изменить её.
Чисто для интереса попробую декомпилить мою программу и изменить там хоть что-то, а затем опять привести ее в 100% рабочий вид.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.07.2012, 20:39
Помогаю со студенческими работами здесь

Программа получает свое же имя (в данной папке), как?
Здравствуйте. 1. Меня интересует вопрос в сабже (название темы), (программа получает свое же...

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

Изменить имя класса окна запущенной программы
Всем привет. Собственно такой вопрос: Реально-ли изменить имя класса окна уже запущенной программы?

Вызвать событие в запущенной программе
Подскажите, как сделать, чтобы одна запущенная программа могла вызвать событие в другой. Такое...

Узнать путь к запущенной программе
Нужно узнать путь к запущенной программе (пример chrome.exe).

Нажатие клавиши в запущенной программе
Доброго времени суток. Весь день ломаю голову. Пытаюсь написать батник, при использовании...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru