AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi dos debuger starten mit übergabe von werten?
Thema durchsuchen
Ansicht
Themen-Optionen

dos debuger starten mit übergabe von werten?

Ein Thema von Thurgen · begonnen am 18. Sep 2002 · letzter Beitrag vom 18. Sep 2002
Antwort Antwort
Thurgen

Registriert seit: 11. Sep 2002
27 Beiträge
 
#1

dos debuger starten mit übergabe von werten?

  Alt 18. Sep 2002, 13:18
Hi,

ich muss ein kleines Programm schreiben was von Windows aus den DOS befehl "debug.exe" ausführt und danach 2 Zeilen übergibt:

o 70 2E <RETURN>
o 71 FF <RETURN>

debug.exe starten ist mit SHELLEXECUTE kein problem aber ich schaffe es nicht das er die beiden Zeilen mit übergibt.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 18. Sep 2002, 13:27
Moin Thurgen,

schreib' die beiden Zeilen in eine Textdatei (z.B. c:\temp\meinedaten.dbg) und übergib diesen Pfad als Parameter, aber mit < vorweg, also

< c:\temp\meinedaten.dbg


Dadurch wird der Dateiinhalt an das aufgerufene Programm übergeben, sozusagen als Tastendrücke.

Aber Achtung:
> c:\temp\meinedaten.dbg würde den Inhalt der Datei mit der Ausgabe von debug.exe überschreiben!
Also auf die Schreibweise achten.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#3
  Alt 18. Sep 2002, 13:29
Muss das Programm dann nicht auch dafür konfiguriert werden?
Ich meine, es reagiert doch nicht jedes Programm automatisch auf solche DOS-Umleitungen.
  Mit Zitat antworten Zitat
Benutzerbild von RomanK
RomanK

Registriert seit: 7. Jun 2002
Ort: Kirchheim unter Teck
1.036 Beiträge
 
Delphi 7 Personal
 
#4
  Alt 18. Sep 2002, 13:39
das wird doch von Dos direkt umgeleited, das Proggy übergibt ja nur die Ausgabe ans Betriebsystem und dass macht dann damit was es will!
Roman Keller
Krieg ist Gottes Art den Amerikanern Geographie beizubringen!
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#5
  Alt 18. Sep 2002, 13:49
Schau noch mal richtig hin! Wenn der Pfeil

>

so aussieht, dann trifft deine Aussage zu. Aber hier geht´s in die Richtung:

<

Das heißt für mich, dass das Programm zumindest von der Standardeingabe lesen müsste, um mit den Rückmeldungen des Systems was anfangen zu können. Wenn diese Funktionalität bereits automatisch von Delphi zur Verfügung gestellt wird, dann wäre das natürlich schön, und ich hätte wieder was gelernt.
  Mit Zitat antworten Zitat
Thurgen

Registriert seit: 11. Sep 2002
27 Beiträge
 
#6
  Alt 18. Sep 2002, 13:55
hm, das klapt so noch nicht.

ShellExecute(0, Nil, PChar('debug.exe'),Pchar('< c:\test.txt'), Pchar('C:\windows\command'),SW_NORMAL);

bekomme ich eine Fehlermeldung und der Prompt kommt ohne das was übergeben wurde und wenn ich das zb. mit edit.com den DOS txt editor mache

ShellExecute(0, Nil, PChar('edit.com'),Pchar('< c:\test.txt'), Pchar('C:\windows\command'),SW_NORMAL);

kommt: Auf folgende Datei war kein Zugriff möglich "c:\windows\command\<"

in der test.txt stehen einfach nur ein paar Buchstaben die ich zum testen gemacht habe.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#7
  Alt 18. Sep 2002, 14:00
Moin Mathias,

oder anders gesagt, was auch immer in der Datei steht, wird an das Programm geschickt, als würdest Du es über die Tastatur eingeben.

Umgekehrt geht's genauso, also die Ausgabe in eine Datei umleiten.
Das ist zwar allgemein bekannt, aber nur für die Ausgabe über Standard Out. Schreibt man hingeben eine 2 vor das umleitende > so wird Standard Error umgeleitet. Gleichzeitig geht's nur, wenn es in zwei verschiedene Dateien geht, oder aber in die Datensenke (NUL

Beispiel für die vollständige Ausgabeumleitung:

XCOPY c:\autoexec.bat a:\autoexec.bat 1>nul: 2>nul:

hiermit sollte sich jedwede Ausgabe unterdrücken lassen, auch im Fehlerfalle. (Was bei einer eventuellen Rückfrage des Programmes zugegebener Massen unangenehm werden kann, da man ja nichts davon erfährt, dass man noch etwas eingeben muss)
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 18. Sep 2002, 14:04
Moin Thurgen,

dann ersetz' mal:

Pchar('< c:\test.txt')

durch

Pchar('"< c:\test.txt"') // " sind doppelte Anführungsstriche, ist schlecht zu lesen

oder probier's mal so:

ShellExecute(0, 'open', PChar('debug.exe'),Pchar('"< c:\test.txt"'), Pchar('C:\windows\command'),SW_NORMAL);
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Thurgen

Registriert seit: 11. Sep 2002
27 Beiträge
 
#9
  Alt 18. Sep 2002, 23:52
problem hat sich von selbst gelöst. Ich habe rausgefunden das der debug command auch so funktionirt.

DEBUG -O 70 17 -O 71 17 Q

trotzdem danke für die Hilfe
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz