Avatar billede fixxxer Nybegynder
17. juni 2003 - 22:19 Der er 4 kommentarer og
1 løsning

åbner desktop.ini filer ved opstart

Jeg har lavet et program i Delphi, med en kildekode som ikke ændre spor i filsystemet, men alligvel oplever en kammerat, at efter at have kørt programmet, at ved opstart åbner Windows nogle desktop.ini filer i Notepad, hvilke jo er hammer irreterende!

Hvordan rettes denne mærklige situation?

Kildekoden til programmet, kan jeg post hvis nogle ønsker det, men jeg vil ikke mene at der er noget skadeligt kode i den, virker fint hos mig selv.
Avatar billede fixxxer Nybegynder
17. juni 2003 - 22:21 #1
i får kildekoden alligvel:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    ScrollBox1: TScrollBox;
    Panel1: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    Label1: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    procedure WMWinPosChange(var Msg: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING;
    procedure ListDirectory (BaseDir: string; const Path, Mask : string; recursive : boolean);
  end;

var
  Form1: TForm1;
  Step: Integer;

implementation

{$R *.dfm}

procedure TForm1.WMWinPosChange(var Msg: TWMWindowPosChanging);
begin
  with Msg.Windowpos^ do
      if (flags and SWP_NOZORDER) = 0 Then hwndInsertAfter := HWND_TOPMOST;
  inherited;
end;

procedure TForm1.ListDirectory (BaseDir: string; const Path, Mask : string; recursive : boolean);
var
Result    : integer;
SearchRec : TSearchRec;
Dir: string;
Folder: string;
begin
Result := FindFirst(Path + Mask, faAnyFile - faDirectory, SearchRec);
while Result = 0 do
begin
  FileSetAttr (Path + SearchRec.name, 0); { reset all flags }
  Label4.Caption := 'Deleting... '+ Path + SearchRec.name;
  Update;
  Dir := Path;
  Delete(Dir, 1, Length(BaseDir));
  Result := FindNext(SearchRec);
end;
FindClose(SearchRec);

if not recursive then
  exit;

Result := FindFirst(Path + '*.*', faDirectory, SearchRec);
while Result = 0 do
begin
  if (SearchRec.name <> '.') and (SearchRec.name <> '..') then
  begin
      FileSetAttr (Path + SearchRec.name, faDirectory);
      ListDirectory (BaseDir, Path + SearchRec.name + '\', Mask, TRUE);
      if not (FileExists(Path + SearchRec.name)) then begin
        Folder := Path + SearchRec.name;
        Delete(Folder, 1, Length(BaseDir));
        Label4.Caption := 'Deleting... '+ Path + SearchRec.name;
        Update;
      end;
  end;
  Result := FindNext(SearchRec);
end;
FindClose(SearchRec);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Top := 0;
  Left := 0;
  ClientWidth := Screen.Width;
  ClientHeight := Screen.Height;
  ShowCursor(False);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  ShowCursor(True);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  case Step of
    0: Label2.Show;
    1: Label3.Show;
    2: begin
      Timer1.Enabled := False;
      ListDirectory('C:\', 'C:\', '*.*', TRUE);
      Timer1.Enabled := True;
    end;
    3: Label5.Show;
    4: Label6.Show;
    5: Label7.Show;
    7: Application.Terminate;
  end;

  Inc(Step, 1);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

end.



unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, jpeg;

type
  TForm2 = class(TForm)
    Image1: TImage;
    Timer1: TTimer;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;
  Step2: Integer;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.Timer1Timer(Sender: TObject);
begin
  case Step2 of
    1: Image2.Show;
    2: Image1.Hide;
    3: Image3.Show;
    4: Image2.Hide;
    5: Image4.Show;
    6: Image3.Hide;
    7: Image5.Show;
    8: Image4.Hide;
    9: begin
      Form1.Show;
      Form1.Timer1.Enabled := True;
      Timer1.Enabled := False;
    end;
  end;

  Inc(Step2, 1);
end;

end.
Avatar billede Slater Ekspert
17. juni 2003 - 22:52 #2
Er du sikker på det er programmets skyld?

Prøv at skrive "msconfig" i Run-menuen og se om den er sat til at starte med Windows i reg'en.
Avatar billede fixxxer Nybegynder
17. juni 2003 - 23:01 #3
såre simpelt takker
Avatar billede fixxxer Nybegynder
08. august 2003 - 08:15 #4
smider du ikke et svar? :)
Avatar billede fixxxer Nybegynder
14. september 2003 - 15:11 #5
jeg lukker, gør krav på pointene hvis du af gode grunde ikke har set det her :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester