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 4. Apr 2013
Antwort Antwort
CodeX

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

Problem mit ParamStr, Leerzeichen und UAC

  Alt 1. Apr 2013, 18: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
ringli

Registriert seit: 7. Okt 2004
504 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Problem mit ParamStr, Leerzeichen und UAC

  Alt 2. Apr 2013, 11:53
Kannst du dein Projekt hier mal anhängen? Ich habe versucht dein Problem mal nachzuvollziehen, kann hier aber kein Problem feststellen.
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#3

AW: Problem mit ParamStr, Leerzeichen und UAC

  Alt 3. Apr 2013, 23:54
Mein Projekt ist zu umfangreich, um es hier anzuhängen. Aber ich werde zum Wochenende eine neue "nackte" Anwendung anlegen und schauen, ob das Problem dort auch auftritt. Sollte ich es dort ebenfalls reproduzieren können, hänge ich das neue Projekt hier an.
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
CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#4

AW: Problem mit ParamStr, Leerzeichen und UAC

  Alt 4. Apr 2013, 23:01
@ringli
Danke fürs "Drauf-Hinstoßen", dass es eigentlich doch funktionieren sollte.
Das hat mich überhaupt erst dazu bewogen, den Fehler intensiver in meiner eigenen Anwendung zu suchen. Und in der Tat ist eine für mich bereits in Vergessenheit geratene Komponente dafür zuständig gewesen, dass dieses Problem entstehen konnte. Es war also definitiv ein spezielles eigenes Problem.

Sorry für die Verwirrung - aber Deine Analyse, dass es bei Dir damit keine Probleme gibt, hat mich dann erst auf die richtige Spur gebracht.
Danke!
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
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 12:22 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