PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : .BAT-Dateien aus einem Pascal-Programm starten


Diego_S
01.02.2002, 12:24
Hi @ all

schon wieder brauch ich Hilfe, würde gerne wissen wie ich eiene .bat datei aus einem Pascal-Programm heraus straten kann.

Thnx im Voraus

Diego_S


Diogenes
01.02.2002, 13:27
Hab´ ich nicht auswendig im Kopf. Es müßte mit Exec gehen (bitte in der Online-Hilfe oder besser, im Referenz-Handbuch nachschlagen).

Ich werd´ mich rühren, sobald ich was weiß :)

Felix Kaiser
01.02.2002, 13:41
SwapVectors;
Exec(GetEnv(´COMSPEC´),´/C´+´BEISPIEL.BAT´);
SwapVectors;


Benötigt Routinen aus der Unit DOS, ruft BEISPIEL.BAT auf.

Diogenes
01.02.2002, 14:35
@Guru
Danke für´s schnelle Nachsehen. Ich hoffe, mein Tip hat geholfen! :D ;)

Felix Kaiser
01.02.2002, 15:13
Nachsehen? Hab das Teil hier im Moment garnich installiert ... oder meinste im "Kopf" nachsehen? ;)

Diogenes
01.02.2002, 15:19
Bravo, bravissimo!

Sieht aber aus, als hättest Du´s aus einem Buch abgeschrieben. Nicht, daß das falsch oder unfair ist: Bücher sind schließlich dazu da, um darin etwas nachlesen zu können.

GetEnv( ´COMSPEC´) ergibt übrigens bei jedem MS-DOS ´COMMAND.COM´.

Felix Kaiser
01.02.2002, 17:01
COMSPEC ist eine DOS Umgebungsvariable, welche bei MS-DOS, Windows 95/98/ME auf COMMAND.COM zeigt, jedoch enthält diese Variable auch die komplette Pfadangabe zum Befehlsinterpreter des Betriebssystems. Bei Windows 2000 würde z.B. COMSPEC auf C:\WINNT\SYSTEM32\CMD.EXE zeigen.

Übrigens findest du den Code, den ich aus meinem Gedächtnis gekramert hatte genau so in der Turbo Pascal Hilfe. SwapVectors dient dazu die Turbo Pascal eigenen Interrupthandler aus der Unit System gegen die vor dem Programmaufruf existenden Handler, kann aus Kompatiblitätsgründen manchmal wichtig sein, insbesondere beim Handling von Laufzeitfehlern die durch das aufgerufene Programm ausgelöst werden.

Diego_S
02.02.2002, 15:16
@ Guru + Diogenes

danke für die schnelle Hilfe

Diego_S

Diogenes
03.02.2002, 14:00
Thema ´COMSPEC´:
Ich hab´ nur gemeint, daß bei MS-DOS COMSPEC so gut wie immer ´COMMAND.COM´ enthält. Was bei anderen OS drinsteht, weiß ich nicht, und es wundert mich nicht, daß es bei Win95 und später was anderes steht.

Thema "woher Besipiel"
Ich programmiere kaum mehr unter DOS, weswegen ich die dortige Online-Hilfe kaum ansehe.

So. jetzt mach ich das Thema zu, weil Frage gestellt und positiv beantwortet. Fertig.

Diogenes
12.06.2002, 11:56
Beim Compilieren auf die RealMode-Plattform muß man den Heap mit dem Compiler-Befehl

{$M StackSize, HeapMin, HeapMax} {Größen in Bytes}

eingrenzen, weil dem auszuführenden Programm sonst kein Platz bleibt, es nicht geladen und daher auch nicht ausgeführt wird!

Wenn das aufrufende Programm keinen Heap benötigt, konnen HeapMin und HeapMax natürlich 0 sein. StackSize ist normalerweise 16 kB

freak182
12.06.2002, 13:06
und ich wunderte mich erst woher das thema plötzlich kommt,hab dann aber doch aufs datum geguckt... :D
das kann es sehr gut gewesen sein. hab nämlich keinen platz für die batch frei gemacht.
ich probiere das gleich mal.
danke für deine mühe @ Diogenes! :)

timoK.