Hallo Forum,
das ist mein erster Post; viele Grüße aus Neuburg a. d. Donau.
Ich steige gerade wieder hobbymäßig in Delphi ein und möchte ein kleines Programm entwicklen, dass MOPAC2007 steuert (semiempirisches Rechenprogramm zum Berechnen von Molekülgeometrien etc., s.
OpenMopac.Net).
Ich habe zu meinem Problem reichlich gelesen (ich weiß also, dass es diverse DOS-Befehle-Threads gibt), keine Lösung trifft meine kleinen Fragen richtig.
Delphi-Quellcode:
program MopRun;
{$APPTYPE CONSOLE}
uses
SysUtils, ShellAPI, Windows;
var i: integer;
begin
{ TODO -oUser -cConsole Main : Hier Code einfügen }
writeln('Das Programm startet MOPAC2007 unter Windows XP');
writeln('');
writeln('Anzahl der übergebenen Parameter: '+inttostr(paramcount));
for i:=1 to paramcount do
begin
writeln(paramstr(i));
end;
readln;
ShellExecute(0,'open','cmd.exe', '/k dir',nil,SW_NORMAL);
sleep(2000);
readln;
end.
Hierzu meine Fragen (ich hoffe, Sie sind nicht allzu dämlich oder irgendwoanders exakt so zu finden):
- Warum muss ich als ersten Parameter im ShellExecute-Befehl '0' angeben und kann nicht Application.Handle benutzen? Da fehlt die Einbindung einer Unit in 'uses' oder? Welche?
- Warum steht im Konsolenfenster nicht korrekt "Anzahl der übergebenen Parameter:" sondern "Anzahl der µbergebenen Parameter:" (also irgendein komisches Sonderzeichen statt dem 'ü')?
- Gibt es eine einfache Möglichkeit, dass eben nicht ein neues Konsolenfenster aufpoppt, sondern der "DIR"-Befehl im bereits offenen Fenster ausgeführt wird?
Viele Grüße, herzlichen Dank,
Thomas aka Desty