Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Escapezeichen von Parametern (https://www.delphipraxis.net/111139-escapezeichen-von-parametern.html)

xZise 30. Mär 2008 14:07


Escapezeichen von Parametern
 
Hallo DP,
ich habe folgendes Problem:
Und zwar muss ich einen Registryeintrag erstellen. Dafür brauch ich Adminrechte.
Also kurz ein Programm geschrieben, welches das übernimmt.

Das Problem dabei ist nur: Ein Parameter beinhaltet die Anführungszeichen. Wie kann ich nun die Anführungszeichen der Parameter aber nicht wieder afulösen?

Also ich habe z.B. folgenden Parameterinhalt:
Zitat:

"C:\Users\xZise\Programs\MyProgram\MyProgram.e xe" %0
In diesen Falle sind die Anführungszeichen unnötig. Aber sobald man das unter XP macht hat man wieder zwei Leerzeichen:
Zitat:

"C:\Dokumente und Einstellungen\xZise\Programme\MyProgram\MyProgram. exe" %0
Jetzt muss ich aber als Parameter das schreiben:
Zitat:

""C:\Dokumente und Einstellungen\xZise\Programme\MyProgram\MyProgram. exe" %0"
Aber wie kann ich verhinden das er dann folgendes Interpretiert:
  • Parameter 1: Nichts ("")
  • Parameter 2: C:\Dokumente
  • Parameter 3: und
  • Parameter 4: Einstellungen\xZise\Programme\MyProgram\MyProgram. exe
  • Parameter 5: %0 (mit führenden Leerzeichen: " %0")

Nun eine Möglichkeit wäre das in die Parameter aufzuteilen. Aber das ist unnötige Arbeit, und mache ich erst, wenn es feststeht das es kein Escapezeichen dafür gibt.

MfG
xZise

CalganX 30. Mär 2008 14:16

Re: Escapezeichen von Parametern
 
Wenn es dein eigenes Programm ist und du genau weißt, wer es aufruft, kannst du dir doch einfach den gesamten Aufruf geben lassen und den Dateinamen rausnehmen. Dann hast du automatisch alle Parameter in einem String stehen.

Was ist sonst mit \"?

xZise 30. Mär 2008 14:53

Re: Escapezeichen von Parametern
 
Hi Christopher,
der Backslash ist kein Escapezeichen.

Und was meinst du mit "den gesamten Aufruf geben lassen"?
Alle Parameter herausbekommen und dann den Dateinamen zusammenfrickeln?
Das wollte ich eigentlich umgehen, weil es nicht der einzige Parameter ist. Nebenbei habe ich noch 3 weitere.

Ich werde es dann wohl so machen müssen, dass ich den String in Dateiname und Parameter aufteilen lasse.
Wobei es dann nicht ganz so modular ist.

MfG
xZise


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:47 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