Форум программистов, компьютерный форум, киберфорум
Наши страницы
Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/12: Рейтинг темы: голосов - 12, средняя оценка - 4.58
Ципихович Эндрю
1411 / 321 / 28
Регистрация: 10.04.2009
Сообщений: 5,048
1

Самоуничтожения программы

12.10.2012, 15:34. Просмотров 2311. Ответов 15
Метки нет (Все метки)

Здравствуйте, есть программа самоуничтожения программы при помощи bat файла на Дельфи кто-то делал на ВБ6? в чём там принцип?
в ней четыре файла
Unit1.dfm
Unit1.pas
Project1.dpr
Project1.res
Блокнотом раскрыть эти файлы - виден код, если что, то с какого файла нужно брать код для перевода на ВБ6?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2012, 15:34
Ответы с готовыми решениями:

Как обойти ограничение размера программы или объема данных без создания дополнительных файлов программы.
Привет всем! Есть ли возможность увеличить допустимый размер файла программы ...

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

Как можно программно, после запуска программы, переместить окно программы на определенные координаты?
Как можно программно, после запуска программы, переместить окно программы на...

Вызов программы с программы (с ключем)
Проблема следующего характера нужно чтобы при нажатии на кнопку вызывалась...

Запуск внешней программы программы из коммнадной строки
Здравствуйте, есть программа D:\user\start.exe Как средствами excel vba...

15
raxp
10188 / 6571 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
12.10.2012, 15:42 2
PAS плохо видно ...скорее просто запуск батника и закрытие.
0
Ципихович Эндрю
1411 / 321 / 28
Регистрация: 10.04.2009
Сообщений: 5,048
12.10.2012, 15:46  [ТС] 3
Цитата Сообщение от raxp Посмотреть сообщение
PAS плохо видно
неа, рес плохо видно, от Вашего ответа просветления не пришло, может код чего-то выложить?
0
raxp
10188 / 6571 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
12.10.2012, 16:31 4
...так если PAS вам плохо видно, что говорить о нас? Видимо пациента стоить выложить не частями.
0
Ципихович Эндрю
1411 / 321 / 28
Регистрация: 10.04.2009
Сообщений: 5,048
12.10.2012, 16:41  [ТС] 5
Цитата Сообщение от raxp Посмотреть сообщение
PAS плохо видно
это сказал не я, я сказал, что его видно
и доказал
Delphi
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
 
    procedure FormDestroy(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
    BAT: string;
 
implementation
 
{$R *.dfm}
 
 
procedure TForm1.FormDestroy(Sender: TObject);
begin
winexec(Pchar(BAT),sw_hide);
//чтобы не грузить зря систему)))
//Но если Вы уверены в том что программа всё равно должна самоуничтожиться
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  kesh: TextFile;
begin
// Создаём bat-файл в папке с программой с именем: имя программы + .bat
  BAT:=ExtractFileName(ParamStr(0))+'.BAT';
//
  AssignFile(kesh, BAT);
  Rewrite(kesh);
  Writeln(kesh,':try'
      +#13+#10+'del "' + ExtractFileName(ParamStr(0)) + '"'
      +#13+#10+'if exist "' + ExtractFileName(ParamStr(0)) + '" goto try'
      +#13+#10+'del "' + ExtractFileName(BAT) + '"');
  CloseFile(kesh);
 
 
  //Если не известно будет ли уничтожаться форма то МОЖНО удалить из "winexec(Pchar(BAT),sw_hide);" из события формы "OnDestroy"
  //и соостветственнно "вернуть на место" закоментеннный "winexec(Pchar(BAT),sw_hide);":
//winexec(Pchar(BAT),sw_hide);
 
 close;
end;
 
 
 
 
 
procedure TForm1.Button2Click(Sender: TObject);
var
  kesh: TextFile;
 
begin
// Создаём bat-файл в папке с программой с именем: имя программы + .bat
  BAT:=ExtractFileName(ParamStr(0))+'.BAT';
//
  AssignFile(kesh, BAT);
  Rewrite(kesh);
  Writeln(kesh,':try'
      +#13+#10+'del "' + ExtractFileName(ParamStr(0)) + '"'
      +#13+#10+'if exist "' + ExtractFileName(ParamStr(0)) + '" goto try'
      +#13+#10+'del "' + ExtractFileName(BAT) + '"');
  CloseFile(kesh);
 
end;
 
end.
 
///Усан
0
raxp
10188 / 6571 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
12.10.2012, 17:13 6

Не по теме:

...хорошо, что видно и не стыдно :D



Принцип прост, создаем программно батник c именем=имени приложения со следующим содержимым:
Код
:try
del "programname.exe"
if exist "programname.exe" goto try
del "programname.bat"
после чего запускаем его и закрываемся сами: в батнике, если найден exe-ник, переходим к метке 'try' и удаляем exe-ник, после чего удаляем батник.
0
Ципихович Эндрю
1411 / 321 / 28
Регистрация: 10.04.2009
Сообщений: 5,048
12.10.2012, 17:31  [ТС] 7
ну вот есть самое простое
проект перед компиляцией
Visual Basic
1
2
3
4
5
6
7
8
Sub Main()
Dim a As Byte
a = 2
MsgBox$ "Вау"
'как ему дописать условие
if a=0 Then '- удаляться, что он сам не может этот батник записать?
 
End Sub
0
raxp
10188 / 6571 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
12.10.2012, 17:37 8
...навскидку:
Visual Basic
1
2
3
4
5
6
7
Dim f as byte
f = FreeFile
Open App.Path & "\App.ExeName.bat" For Output as f
...
Print #f, "тут наполняете батник"
...
Close f
0
Ципихович Эндрю
1411 / 321 / 28
Регистрация: 10.04.2009
Сообщений: 5,048
12.10.2012, 21:13  [ТС] 9
что-то я давно не писал и подзабыл, пробую вручную эф8 жать пошагово
говорит не однозначное имя Main, я было подумал - в этом слове ошибка - нет ошибки!

Добавлено через 3 часа 11 минут
апну по этому вопросу
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
пробую вручную эф8 жать пошагово
говорит не однозначное имя Main
0
locm
2196 / 921 / 118
Регистрация: 28.10.2011
Сообщений: 2,985
Записей в блоге: 6
12.10.2012, 21:33 10
Если интересно, то вот код на бейсике, правда, не VB (уж извините, что есть), который сам уничтожает свой исполняемый файл без помощи батника.
Принцип работы прост. Прога состоит из двух исполняемых файлов и один находится в ресурсах другого и запускается из памяти без извлечения на диск. Это позволяет завершить процесс, после чего, стереть исполняемый файл. А программу из памяти удалять не нужно, она просто завершается и система очистит занимаемою ней, память.
1
Вложения
Тип файла: rar DelProg.rar (7.5 Кб, 34 просмотров)
Dragokas
Эксперт WindowsАвтор FAQ
17055 / 7110 / 861
Регистрация: 25.12.2011
Сообщений: 10,920
Записей в блоге: 16
13.10.2012, 03:46 11
Шеллом без буферного файла
Visual Basic
1
2
3
4
5
Sub Main()
    Dim f$
    f = """" & App.Path & "\" & App.EXEName & ".exe"""
    Shell "cmd /v:on /c (set f=" & f & "&for /l %l in (0,0,0) do if exist !f! (del /f/q !f!) else (exit))", 0
End Sub
0
Ципихович Эндрю
1411 / 321 / 28
Регистрация: 10.04.2009
Сообщений: 5,048
13.10.2012, 08:34  [ТС] 12
Цитата Сообщение от Dragokas Посмотреть сообщение
Visual Basic
1
2
3
4
5
Sub Main()
  Dim f$
  f = """" & App.Path & "\" & App.EXEName & ".exe"""
  Shell "cmd /v:on /c (set f=" & f & "&for /l %l in (0,0,0) do if exist !f! (del /f/q !f!) else (exit))", 0
End Sub
и что если этот код вставить, скомпилировать и затем экзешник запустить ничего не происходит
???
0
Dragokas
Эксперт WindowsАвтор FAQ
17055 / 7110 / 861
Регистрация: 25.12.2011
Сообщений: 10,920
Записей в блоге: 16
13.10.2012, 16:16 13
Ципихович Эндрю почитайте внимательно эту тему: Автозапуск кода программы
1
Ципихович Эндрю
1411 / 321 / 28
Регистрация: 10.04.2009
Сообщений: 5,048
13.10.2012, 16:23  [ТС] 14
посмотрел, суть не уловил, холивар продолжается? - двойной щелчок мыши
0
Dragokas
Эксперт WindowsАвтор FAQ
17055 / 7110 / 861
Регистрация: 25.12.2011
Сообщений: 10,920
Записей в блоге: 16
13.10.2012, 16:30 15
Ципихович Эндрю, что не понятного. Visual Basic.
1) Повесил код на кнопку. Скомпилил, запустил, нажал кнопку, закрыл форму - программа удалилась.

или

2) Создал модуль, удалил форму, вставил мой код в точности. Скомпилил, запустил - программа удалилась.
1
Вложения
Тип файла: rar SelfDel.rar (3.1 Кб, 38 просмотров)
Ципихович Эндрю
1411 / 321 / 28
Регистрация: 10.04.2009
Сообщений: 5,048
13.10.2012, 16:40  [ТС] 16
ясноть полная, спасибо, всё получилось
почему не вышли сразу - хз
0
13.10.2012, 16:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2012, 16:40

Сохранение текста из программы в текстовый документ и загрузка из того же файла при старте программы
Инфа записывается в stringGadget и при нажатии кнопки вставляеттся в один из...

Нужен код таймера самоуничтожения сайта
Бывают случаи, когда сталкиваешься с нечестными на руку клиентами, или просто с...

Процесс программы висит в диспетчере задач даже после закрытия программы
Помогите пожайлуйста с решением этой проблемы. Сдача проекта уже скоро, а тут...


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

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

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