polecenie wykonania programu w DOSie

0

hello
kombinuje jakby tu napisac niby banalny program, ale nie mam pojęcia (dawno pod DOSa nie pisalem...)
otóż wyglądałoby to tak, że program ma odpalić inny program a potem się wyłączyć
podpowiedzcie coś proszę, bo mnie skleroza dopadła

procedure go(var i:int);
begin
if (i=1) then odpal_program('1.exe');
if (i=2) then odpal_program('2.exe');
halt;
end;

0

Nie wiem czy to ma być w delphi czy w tp. Jak w TP to jest procedura

procedure Exec(Path, CmdLine :string)

gdzie Path to ścieżka dostępu do pliku, a CmdLine to parametry uruchomieniowe.
Postać funkcji byłaby następująca:

procedure Run(const mode :Byte); { nie wiem dlaczego użyłeś modyfikatora var }
begin
 SwapVectors;
 case mode of
  1 : Exec('PLIK1.EXE', '');
  2 : Exec('PLIK2.EXE', '');
 end;
 SwapVectors;
 Run := DosError; zwracamy kod bledu
 Halt;
end;

Natomiast w delphi

HINSTANCE ShellExecute(
    HWND hwnd,	                // handle to parent window
    LPCTSTR lpOperation,	// pointer to string that specifies operation to perform
    LPCTSTR lpFile,	        // pointer to filename or folder name string
    LPCTSTR lpParameters,	// pointer to string that specifies executable-file parameters 
    LPCTSTR lpDirectory,	// pointer to string that specifies default directory
    INT nShowCmd        	// whether file is shown when opened
   );	

Przykład, który uruchamia kalkulator systemowy (do sekcji uses dodaj ShellApi);

uses ShellApi;

procedure FormCreate(Sender :TObject);
begin
 ShellExecute(Application.MainForm.Handle,
              nil, 'CALC.EXE', '', '', SW_SHOWNORMAL);
 Application.Terminate();
end; 

1 użytkowników online, w tym zalogowanych: 0, gości: 1