Avatar billede benneharli Juniormester
01. september 2004 - 09:28 Der er 1 kommentar og
2 løsninger

Køre extern program og lukke vindue med knap

Har lavet en lille form hvor der 3 knapper. Ideen er at det lille program skal køre som autorun fra en CD hvor man kan installere 3 forskellige ting.

Mit problem er nu at jeg ikke kan huske hvad det er man skal skrive for at køre en exe fil.

begin

run? procedure? ...

end

Hvis der er en der har en god linie til at lukke "vinduet" når man har trykket på en af de 3 knapper.
Avatar billede pjotre Novice
01. september 2004 - 09:36 #1
cmdbuffer: array[0..80] of Char;
cmdbuffer := 'c:\sti\program.exe';
WinExec(cmdbuffer, SW_Show);
Avatar billede kammeyer Nybegynder
01. september 2004 - 09:39 #2
Kald program inde fra Delphi program:

procedure ExecuteShellCommand(cmdline: string; hidden: Boolean);
const
  flags: array [Boolean] of Integer = (SW_SHOWNORMAL, SW_HIDE);
var
  cmdbuffer: array [0..MAX_PATH] of Char;
begin
  GetEnvironmentVariable('COMSPEC', cmdBUffer, SizeOf(cmdBuffer));
  StrCat(cmdbuffer, ' /C ');
  StrPCopy(StrEnd(cmdbuffer), cmdline);
  WinExec(cmdbuffer, flags[hidden]);
end;

Luk vinduet/programmet -knap:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Close;
end;
Avatar billede benneharli Juniormester
01. september 2004 - 21:04 #3
Har brugt lidt fra begge. Der er garanteret en hel del der kan skæres væk, eller hvad?

unit tac;

interface

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

type
  TInet = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Label1: TLabel;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
        flags: array [Boolean] of Integer = (SW_SHOWNORMAL, SW_HIDE);

var
        Inet: TInet;
        cmdbuffer: array [0..MAX_PATH] of Char;

implementation

{$R *.DFM}

procedure TInet.Button1Click(Sender: TObject);
begin
cmdbuffer := 'c:\1.bat';
WinExec(cmdbuffer, SW_Show);
Close;
end;

procedure TInet.Button2Click(Sender: TObject);
begin
cmdbuffer := 'c:\2.bat';
WinExec(cmdbuffer, SW_Show);
Close;
end;

procedure TInet.Button3Click(Sender: TObject);
begin
cmdbuffer := 'c:\3.bat';
WinExec(cmdbuffer, SW_Show);
Close;
end;

end.
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