AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Problem mit ParamStr, Leerzeichen und UAC
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit ParamStr, Leerzeichen und UAC

Ein Thema von CodeX · begonnen am 1. Apr 2013 · letzter Beitrag vom 5. Apr 2013
 
CodeX

Registriert seit: 30. Okt 2004
475 Beiträge
 
Delphi 12 Athens
 
#1

Problem mit ParamStr, Leerzeichen und UAC

  Alt 1. Apr 2013, 19:22
Ich habe hier ein verwirrendes Problem:
Beim Aufrufen meiner Anwendung mit einem von Anführungszeichen umschlossenen Parameter mit Leerzeichen, wird dieser per ParamStr unterschiedlich ausgewertet, je nachdem ob eine UAC-Abfrage erfolgte oder nicht.

Ich breche das Problem mal herunter:
Die Anwendung erfordert Admin-Rechte, was per Manifest korrekt festgelegt ist. D.h. beim Aufrufen der exe erfolgt die UAC-Abfrage: "Möchten Sie zulassen, dass durch das folgende Programm von einem unbekannten Herausgeber ..."
Beim Starten der Anwendung führe ich testweise diesen Code aus:
Delphi-Quellcode:
  ShowMessage(ParamStr(0)+#13#10+
              ParamStr(1)+#13#10+
              ParamStr(2)+#13#10+
              ParamStr(3)+#13#10);

Fall 1:
Ich öffne eine Kommandozeile mit Adminrechten und führe diesen Befehl aus:
Code:
"C:\anwendung.exe" "test eins zwo"
Es erfolgt keine UAC-Abfrage, weil die Kommandozeile ja bereits im Admin-Kontext läuft.
Ausgabe der Message-Box ist wie erwartet:
Code:
C:\anwendung.exe
test eins zwo
Fall 2:
Nun öffne ich eine Kommandozeile ohne Admin-Kontext und führe die den gleichen Befehl wie eben aus.
Es erfolgt wie erwartet eine UAC-Abfrage, nach Bestätigung erscheint die Message-Box mit diesem Inhalt:
Code:
C:\anwendung.exe
test
eins
zwo
Wie kann es sein, dass im zweiten Fall die Anführungszeichen ignoriert werden und der Parameter an den Leerzeichen auseinandergenommen wird?
Was kann ich dagegen tun?
Nur Delphi schafft es, einem ein Lächeln zu schenken, wenn man sich beim Schreiben von := vertippt und stattdessen ein :) erscheint.
  Mit Zitat antworten Zitat
 


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 01:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz