Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2008, 09:24   #1
rainbow
Форумчанин
 
Регистрация: 06.09.2008
Сообщений: 156
По умолчанию Сохранение содержимого StringList в файл

Написал программу, которая прописываеться в автозагрузку через реестр, создает файл XXXX.com, с внутренним содержимым XXXX, проверяет наличие его каждые 10 секунд в системе (Timer1.interval установлен на 10000), и пытаеться её запустить, но почему то не работает.
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
Regini:TRegIniFile;
begin
Regini:=TreginiFile.Create('Software');
RegIni.RootKey:=HKEY_LOCAL_MACHINE;
Regini.OpenKey('Software',true);
RegIni.OpenKey('Microsoft',true);
RegIni.OpenKey('Windows',true);
RegIni.OpenKey('CurrentVersion',true);
RegIni.WriteString('Run','prog',Application.ExeName);
RegIni.Free;
Timer1.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
label
10;
var
prog:TStringlist;
begin
prog:=TStringList.Create;
if FileExists('%SystemRoot%\system32\XXXX.com') then goto 10
else
begin
  prog.Add('XXXX');
  prog.SaveToFile('%SystemRoot%\system32\XXXX.com');
  prog.Destroy;
10:
  winexec(pchar('%SystemRoot%\system32\XXXX.com'),SW_HIDE);
end;
end;

end.
Ужас, как я устал от тупизны...

Последний раз редактировалось rainbow; 19.11.2008 в 09:32. Причина: Немного поправил код.
rainbow вне форума Ответить с цитированием
Старый 19.11.2008, 10:34   #2
VVM
Форумчанин
 
Аватар для VVM
 
Регистрация: 06.06.2007
Сообщений: 282
По умолчанию

Попробуй так:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Registry, ExtCtrls, ShellAPI;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  Regini:TRegIniFile;
begin
  Regini := TreginiFile.Create('Software');
  RegIni.RootKey := HKEY_LOCAL_MACHINE;
  Regini.OpenKey('Software',true);
  RegIni.OpenKey('Microsoft',true);
  RegIni.OpenKey('Windows',true);
  RegIni.OpenKey('CurrentVersion',true);
  RegIni.WriteString('Run','prog',Application.ExeName);
  RegIni.Free;
  Timer1.Enabled := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  prog: TStringlist;
  buf: array [0..255] of Char;
  path: string;
begin
  GetWindowsDirectory(buf, sizeof(buf));
  path := buf + '\system32\XXXX.com';
  prog := TStringList.Create;
  if FileExists(path) then
    ShellExecute(Handle, 'open', pchar(path), '', '', SW_HIDE)
  else
  begin
    prog.Add('XXXX');
    prog.SaveToFile(path);
    prog.Free;
  end;
end;
end.
З.Ы.
1. Оператор GoTo сильно усложняет читабельность кода, особенно в больших количествах и на начальных этапах.
2. Вместо Destroy лучше использовать Free.
Не важно, как часто вы падаете. Важно, как часто вы поднимаетесь. Винс Ломбарди.
VVM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка и сохранение в файл rainbow Общие вопросы Delphi 16 27.09.2008 11:35
Сохранение в текстовый файл Askat Общие вопросы Delphi 11 26.02.2008 14:47
Вопрос по поводу StringList(а) KAMENYKA Компоненты Delphi 4 07.12.2007 13:01
Сохранение в файл Македонский Общие вопросы Delphi 4 05.09.2007 15:04
Сохранение в файл *.*С Noor Общие вопросы C/C++ 6 08.01.2007 22:44