Autor Beitrag
bf109g.01
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84



BeitragVerfasst: Do 03.03.11 12:51 
Hallo, ich arbeite viel mit Konsolenanwendungen, weil ich die einfach für schneller, praktischer und speicherplatzsparender halte.

Über Write lasse ich mir gerne die einzelnen erfolgreichen Schritte des Programms bestätigen (Bsp: "Search File" -> "File successfully found" / "File not found" usw. usw.), weil dies eigentlich die einzige Möglichkeit ist, das Programm zu "überwachen".
Konsolenanwendungen schließen sich aber immer von selbst, sobald der Programmcode abgearbeitet ist, was sich bekannterweise durch "ReadLN;" am Ende verhindern lässt.
Wenn das Programm schließlich läuft, deaktiviere ich ReadLn am Ende aber eigentlich immer.

Jetzt kommt das Problem:
Wenn ich zB weil etwas unterwartetes auftritt, kontrollieren will, an welcher Stelle der Fehler auftritt, muss ich das automatische Schließen wieder verhindern, sonst kann ich ja meine "Überwachung" nicht einsehen.
Bis jetzt habe ich das immer über eine INI-Datei gelöst, welche die EXE ausliest, und wo sie den Parameter findet:
Zitat:
# SETTINGS
Request confirmation before close = 1

Gibt es für eine externe Parameter-Datei auf der Festplatte eine Alternative?
Ich habe mal von Datei"anhängen" gehört, die man an die EXE knüpfen können soll... hab aber keine Ahnung ob das wirklich / wie das geht... :(

Was jemand einen Lösungsvorschlag?
Tankard
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Administrator
Beiträge: 217
Erhaltene Danke: 96



BeitragVerfasst: Do 03.03.11 13:12 
warum uebergibst du es denn nicht als parameter beim aufruf

alla:

meinprogramm.exe /dontclose

nur mal so als frage
bf109g.01 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84



BeitragVerfasst: Do 03.03.11 13:25 
Ich denke, das was du mir sagen willst, könnte das sein, was ich suche.
Aber was heißt "beim Aufruf"?
Dass ich zusätzliche (derartige) Infos angeben kann, ist mir nur bei der Benutzung von Verknüpfungen (zb "-w" für windowed) bekannt...

Also danke für den Tipp, aber ich persönlich kann die Info nicht auswerten, weil ich kp hab.
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Do 03.03.11 13:34 
kp ? = kein Plan ?
paramstr(0) DeinProgramm mit Pfad
Paramstr(1) 1. Parameter
Paramstr(2) 2. Parameter

Paramcount für die Anzahl

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Do 03.03.11 14:45 
Du wirst doch sicher schon mal mit der Shell gearbeitet. Dort rufst du ein Programm mit so einer Befehlszeile auf:

ausblenden Quelltext
1:
2:
ls --all ~/dir1/
# dasselbe: ls -a ...


Das ist jetzt ein Unix-Befehl (mit den DOS-Befehlen kenne ich mich nicht so aus). Du rufst hier das Programm ls auf (entspricht dir unter DOS: listet Verzeichnisinhalt oder Dateiattribute auf). ParamStr(1) ist dann --all (unter DOS vll. eher /all, ls erkennt das und zeigt dann auch versteckte Dateien an) und ParamStr(2) ist z. B. /home/jakob/dir1/ (oder halt C:\...\dir1\). Und so, wie ls einen Parameter gibt, kannst du auch deinem Programm einen Parameter auf den Weg geben. Mit ParamCount erhälst du die Anzahl der Parameter.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 03.03.11 14:58 
Öffne eine Konsole (Start -> Ausführen -> cmd), navigiere in das Programmverzeichnis und starte das Programm über die Konsole, dann schließt sich auch nichts und du siehst die Ausgabe.
Reinhard Kern
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: Do 03.03.11 15:28 
Hallo,

wenn du das öfter brauchst, mach doch einen Nagel mit Kopf und schreib eine Routine für das Programmende, die normalerweise z.B. nach 30 Sek abläuft, im Fall eines Fehlers dagegen erst nach drücken von CR.

Gruss Reinhard