Avatar billede boye Nybegynder
02. oktober 1999 - 10:10 Der er 11 kommentarer og
1 løsning

Start af EXE-filer i Delphi

Jeg har versionen af Delphi 3 som kom med Alt om Data's CD-Rom for et stykke tid siden, men jeg kan ikke rigtig finde en komando som kan starte en ekstern EXE-fil fra mine programmer (Til brug i fx. menusystem o.lign.). Hvad skal jeg gøre
Avatar billede justincase Nybegynder
02. oktober 1999 - 10:16 #1
Du kan bruge ShellExecute :

ShellExecute(Application.Handle,'Open',PChar('program.exe'),nil,nil,SW_SHOW);

Husk at indsætte ShellApi øverst i uses.

:)

JustinCase
Avatar billede snorga Nybegynder
02. oktober 1999 - 11:51 #2
En måske lidt nemmer måde:

WinExec('Program.exe',SW_SHOWNORMAL);

Men ellers lige så go' som justincase's måde
Avatar billede primeware Nybegynder
06. oktober 1999 - 19:48 #3
Eller hvis du vil have fuld kontrol, så benyt CreateProcess
Avatar billede frifoed Nybegynder
08. oktober 1999 - 22:56 #4
Her er en genial function, der åbner og venter til programmet er udført:

function AbnOgVent(const Filename, Params: string; WindowState: word):
boolean;
var
  SUInfo: TStartupInfo;
  ProcInfo: TProcessInformation;
  CmdLine: string;
begin
 
  CmdLine := '"' + Filename + '"' + Params;

  FillChar(SUInfo, SizeOf(SUInfo), #0);
  with SUInfo do begin
    cb := SizeOf(SUInfo);
    dwFlags := STARTF_USESHOWWINDOW;
    wShowWindow := WindowState;
  end;

    Result := CreateProcess(NIL, PChar(CmdLine), NIL, NIL,
FALSE,
                  CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,
NIL,
                  PChar(ExtractFilePath(Filename)), SUInfo, ProcInfo);

    // Vent på at den venter
  if Result then
      WaitForSingleObject(ProcInfo.hProcess, INFINITE);
end;

Denne function understøtter også parametre dette bruges for eksempel hvis man vil have Half-Life til starte op uden forfilm bruges: -console.
Avatar billede kolme Nybegynder
09. oktober 1999 - 22:00 #5
Her er en komplet beskrivelse af hvordan du skal gøre:

I den forudbestemte procedure skriver du
" Var command : String;
begin
  command := 'c:\windows\notepad.exe' (hvis det er notepad du vil åbne)
If Winexec(@command[1], SW_shownormal) < 32 THEN
MessagdeDlg('(skriv her en besked som oplyser dig om at programmet ikke kunne åbnes)', mtError, [mbOK], 0);
Avatar billede snorga Nybegynder
11. oktober 1999 - 09:39 #6
Findes der flere måde at gøre det på?
Avatar billede TRoXa Novice
11. oktober 1999 - 15:01 #7
der var en fejl i det kolme skrev, men her er det der virker

Her er en komplet beskrivelse af hvordan du skal gøre:

I den forudbestemte procedure skriver du
" Var command : String;
begin
command := 'c:\windows\notepad.exe' (hvis det er notepad du vil åbne)
If Winexec(@command[1], SW_shownormal) < 32 THEN
MessageDlg('(skriv her en besked som oplyser dig om at programmet ikke kunne åbnes)', mtError, [mbOK], 0);
Avatar billede snorga Nybegynder
11. oktober 1999 - 15:14 #8
>>Troxa, Hvor er fejlen?
Avatar billede kolme Nybegynder
11. oktober 1999 - 21:49 #9
JEg var kommet til at skrive messagdeDlg istedet for messageDlg, men jeg håbede at den ikke ville være til nogen form for gene eftersom det er en fejl af lettere karaktér - men indrømmet der var en fejl
Avatar billede snorga Nybegynder
11. oktober 1999 - 23:46 #10
<G> Jeg sad og kikkede mig blind efter fejlen.. Men kunne bare ikke se den.
Avatar billede TRoXa Novice
12. oktober 1999 - 16:04 #11
haha... folk kalder mig nogle gange for en perfektionist... men jeg kan nu ikke lige se hvorfor *g*
Avatar billede boye Nybegynder
15. oktober 1999 - 16:41 #12
Beklager, men jeg får nok mest ud af den nemme løsning.
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