Avatar billede betatron Nybegynder
24. august 2002 - 13:39 Der er 19 kommentarer og
1 løsning

Gemme/Sende sig selv

Jeg har det windows-baserede Delphi 6.0 Personal!

Jeg har 2 spørgsmål:

1.) Når jeg trykker på en knap i et program, vil jeg gerne have programmet til at gemme sig selv i en anden, bestemt mappe. Hvordan gør man det??

2.) Når jeg trykker på en knap i et program, vil jeg gerne have programmet til at lægge sig selv i en E-mail og sende den til en bestemt adresse. Hvordan gør man det??
Avatar billede martinlind Nybegynder
24. august 2002 - 14:41 #1
CopyFile(); // kan bruges til at kopiere filer

ShellExecute(); kan bruges til at sende email, ved ikke om du kan putte vedhæftede filer på, ellers kan du bruge en Indy comp. eller COM mod Outlook hvis den er inst. den bedste metode er nok INDY comp. der er en mail comp. du kan bruge så er du ikke afhængig af om der er en mail-klient på maskinen.
Avatar billede dkn Nybegynder
24. august 2002 - 15:33 #2
procedure TForm1.Button1Click(Sender: TObject);
Const
Folder = 'C:\';
begin
copyfile(Pchar(application.exename), pchar(Folder+extractfilename(application.exename)), true);
end;

Brug MAPI til at sende mails med, du kan evt søge her på exp, den kode er her 40 gange.
Avatar billede betatron Nybegynder
24. august 2002 - 23:40 #3
Kan man godt lave en Randomize til at bestemme hvilen mappe programmet skal gemmes i??
Fx.

Folder =
Randomize Random(location)

Eller så noget??
Avatar billede dkn Nybegynder
25. august 2002 - 01:19 #4
Ja det kan du jo på en måde godt.
Det kræver bare at du laver en fx en stringlist med alle de mapper som den nu skulle kunne vælge imellem, og så kører en random på de index der nu måtte være.

Der er forskellige måder at fx simpel få windows mappen på en computer med eller programmer mappen.
Avatar billede jba750 Nybegynder
25. august 2002 - 01:21 #5
Hmm gemmes i tilfældig mappe, sender sig selv med e-mail det lyder sgu som en virus
Avatar billede medions Nybegynder
25. august 2002 - 01:22 #6
dkn> Det ville da være en bedere måde at får den til at lave en ramdomize som befandt sig mellem 0 og 9 og så smække mappenavnene ind i et Array!

//>Rune
Avatar billede betatron Nybegynder
25. august 2002 - 09:31 #7
jba750
Ja en virus, eller bare et mail program og ren og skær' nysgerrighed!!!
Avatar billede betatron Nybegynder
25. august 2002 - 09:48 #8
Jeg er stadigvæk en noobie inde for delphi, så jeg ville blive glad hvis ngen gad og lave et eksempel på Random mappe placering, tak!?
Avatar billede hermandsen Juniormester
25. august 2002 - 18:43 #9
Her er en komponent der kan søge din harddisk i gennem for filer og mapper...

http://www.pythia.dk/komponenter/download/TFileSearch.zip

Så laver du bare en TStringList og add'er til den når der er fundet et directory... Så kan du bare udpege en tilfældig streng...
Avatar billede betatron Nybegynder
26. august 2002 - 07:24 #10
hermandsen

Jeg downloader ikke noget som helst, som jeg ikke er helt sikker på ikke har virus. Ellers tak!

Jeg ville blive MEGET glad hvis nogen ville lave, ET EKSEMPEL på hvordan jeg kunne gøre med, placering af mapper!

HUSK! Jeg er en noobie !!!
Avatar billede hermandsen Juniormester
26. august 2002 - 07:47 #11
>>betatron
Ovenstående link har INGEN virus!!!

Hvis du ikke tror mig, så kan du hoppe ind på www.antivirus.dk og tjekke!

Det eneste der er i zip-filen er noget pascal-kode, hvilket vil sige at du kan læse det hele i gennem...

Samtidig kan du også gå ind på www.pythia.dk og læse af f.eks. Jens Borrisholt har skrevet (gode) artikler til siden...

Og til en anden gang synes jeg du skal have lidt mere tillid til folk... Jeg tror absolut ikke der er nogen i det her spørgsmål der kunne finde på at poste en virus på Eksperten, simpelthen af den grund at det er i mod Ekspertens regler!

//hermandsen
Avatar billede betatron Nybegynder
26. august 2002 - 13:46 #12
hermandsen

Skulle jeg have tillid til folk som jeg aldrig har set, som måske bor på den anden side af Jorden, som jeg hverken kender navn eller adresse på og som måske udgiver sig for at være 16 årig pige, men i virkeligheden er en ulækker pervers 50 årig gammel mand.

Nej tak, det tror jeg ikke jeg har lyst til!
Men, det skal du da have lov til.
Avatar billede hermandsen Juniormester
26. august 2002 - 16:31 #13
>>betatron
Hvis du ikke har tillid til folk over nettet, hvad laver du så på Eksperten? Folk hjælper dig jo, men hvis du ikke tror på løsningen alligevel, hvad får du så ud af det? Bare en tanke... ;)
Avatar billede betatron Nybegynder
26. august 2002 - 19:20 #14
-> hermandsen

Bare fordi jeg ikke stoler på folk angående at downloade ting, betyder jo ikke at jeg ikke bruger deres svar og forslag.

Hvis du har så stor tillid til alt og alle, og tror at fordi at Eksperten.dk skriver nogle regler, at de så automatisk bliver overholdt.
Hva fanden laver DU så på Eksperten?! Eller internettet i det hele taget!!
Avatar billede dkn Nybegynder
26. august 2002 - 19:46 #15
betatron -> Det er sku da barnligt! Er det din fars computer du bruger?

Du kan da se på det link at det kommer fra et sikkert sted. Og desuden har det vist aldrig gjort nogle ondt at unpacke en zip file og se hvad der er i. Hvis der er exe fil så lad dog være med at køre den. Se i koden der er med om den gør noget ondt og recompile. Det kan ikke være så svært.
Avatar billede hermandsen Juniormester
26. august 2002 - 20:07 #16
Synes at den her samtale er ved at tage en uheldig drejning...

>>betatron
Jeg vil lige kommentere noget af det du har skrevet:

"Hva fanden laver DU så på Eksperten?!"
Jeg hjælper faktisk folk. Folk som dig der dagligt stiller spørgsmål og har brug for hjælp! Noget du ikke går så meget op i selv kan jeg se...
http://www.eksperten.dk/bruger.phtml?navn=betatron&option=24
Samtidig synes jeg at Eksperten er et enormt fedt forum som jeg bruger meget tid og kræfter på, så hvis du prøver at provokere mig ud af Eksperten, så bare glem det! ;)

"Eller internettet i det hele taget!!"
Tjaaaa, for at kunne benytte Eksperten bliver man jo nød til at være på internettet. Samtidig bruger jeg internettet til nyhedssøgning, mail, downloading af Linux som jeg er ved at lære og meget andet...
Omkring vira og andet skidt materiale, så kan jeg udemærket godt se forskel på om tingene kommer fra et godt sted eller et skidt sted... Hvis du ikke kan det, så tror jeg ikke det er mig du skal stille ovenstående spørgsmål...

Hvis du vil snakke videre, så kan jeg kontaktes på:
ICQ: 43950538
MSN: hermandsen@hotmail.com

Eksperten behøver ikke være hjemsted for vores diskussioner!

Til sidst vil jeg lige takke dkn for den støtten i ovenstående kommentar! :)

>>dkn
Tak! ;)
Avatar billede Slettet bruger
26. august 2002 - 20:32 #17
Get a antivirusprogram.
Avatar billede betatron Nybegynder
27. august 2002 - 07:00 #18
-> hermandsen
Jeg vil give dig ret i at denne samtale er ved at tage en uheldig drejning.
Og jeg er også mere interesseret i at få svar på nogle spørgsmål, end at fortsætte denne diskussion. Så lad os hellere holde her!

->dkn
Jeg må desværre indrømme at, det er min fars pc.
Jeg har ikke haft råd til at købe en ordentlig endnu.

Jeg vil nu stadigvæk have mine forbehold over for alt og alle på internettet! :)
Avatar billede hermandsen Juniormester
27. august 2002 - 08:00 #19
Okay... Vi starter forfra... Du vil udpege en tilfældig mappe på en computer...

Smut ind på www.pythia.dk tryk på "Komponenter m.m." og vælg i højre side den der hedder "FileSearch"... Installer den, smæk en Edit, en knap og en FileSearch ind på din form og kør følgende kode:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    FileSearch1: TFileSearch;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    MineMapper: TStringList;
    procedure DerErFundetEnMappe(Sender: TObject; Directory: String);
    procedure SoegningenErSlut(Sender: TObject; Breaked: Boolean);
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Button1.Enabled := False; //Vi skal ikke kunne starte en søgning når vi allerede søger
  Caption := 'Søger...'; //Fortæller brugeren at vi søger
  FileSearch1.Recursiv := True; //Gør at den søger i undermapper
  FileSearch1.Filter := '*.*'; //Søger efter ALLE filer
  FileSearch1.Root := 'C:\'; //Vi starter søgningen fra C-drevet
  FileSearch1.OnDirectoryFound := DerErFundetEnMappe; //Sætter proceduren der
                                      //skal køres når vi har fundet en mappe
  FileSearch1.OnFinish := SoegningenErSlut; //Sætter proceduren der skal køres
                                                      //når søgningen er slut
  FileSearch1.Execute; //Start søgningen
end;

procedure TForm1.DerErFundetEnMappe(Sender: TObject; Directory: String);
begin
  MineMapper.Add(Directory); //Nu er der fundet en mappe, så smider vi den bare
  //ind i vores StringList, så vi senere kan se hvilke der er et vælge i mellem
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;//Gør at vi senere kan udvælge en tilfældig mappe i vores StringList
  MineMapper := TStringList.Create; //Opretter den StringList som de fundne
                                                    //mapper skal gemmes i
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  MineMapper.Free; //Fjerner StringList'en fra hukommelsen
end;

procedure TForm1.SoegningenErSlut(Sender: TObject; Breaked: Boolean);
begin
  Edit1.Text := MineMapper.Strings[Random(MineMapper.Count)]; //Uvdælger en
                                        //tilfældig mappe fra StringList'en
  Caption := 'Færdig!'; //Fortæller brugeren at søgningen er færdig
  Button1.Enabled := True; //Så kan vi trykke på Søg-knappen igen
end;

end.


Jeg har lige kørt programmet i gennem og her virker det fint!!!
Avatar billede dkn Nybegynder
27. august 2002 - 20:08 #20
Lavede lige den her funktion til dig, så slipper du ihvertefal for et component:

{Made by dkn}

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    Stop: TButton;
    Button2: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure StopClick(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  fstop: boolean;

implementation

{$R *.dfm}

procedure FindFiles(Path: string; Str: TStrings);
var
  DirSr: TSearchRec;
  Result: Integer;
  function DirectoryNotation(Dir: string): Boolean;
  begin
    DirectoryNotation := (Dir = '.') or (Dir = '..');
  end;
begin
  if Path[Length(Path)] <> '\' then
    Path := Path + '\';
  Result := FindFirst(Path + '*.*', faDirectory, DirSR);
  try
    while Result = 0 do
    begin
      if fstop then exit;
      application.ProcessMessages;
      if ((DirSR.Attr and faDirectory) = faDirectory) and not DirectoryNotation(DirSR.Name) then
      begin
        application.ProcessMessages;
        Str.Add(Path + DirSR.Name);
        application.ProcessMessages;
        if fstop then exit;
        FindFiles(Path + DirSR.Name, Str);
        application.ProcessMessages;
      end;
      Result := FindNext(DirSR);
    end;
    application.ProcessMessages;
  finally
    FindClose(DirSR);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  fstop := false;
  FindFiles('C:\', ListBox1.Items);
end;

procedure TForm1.StopClick(Sender: TObject);
begin
  fstop := true;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Label1.Caption := ListBox1.Items.Strings[random(ListBox1.Items.Count)];
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
end;

end.

Kan sende hele projected til din mail hvis du vil.

dkn
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
Kurser inden for grundlæggende programmering

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