AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Windows API Funktion um Befehlsziel zu ermitteln?
Thema durchsuchen
Ansicht
Themen-Optionen

Windows API Funktion um Befehlsziel zu ermitteln?

Ein Thema von Experience1986 · begonnen am 27. Mai 2006 · letzter Beitrag vom 28. Mai 2006
Antwort Antwort
Seite 1 von 2  1 2      
Experience1986

Registriert seit: 7. Sep 2003
Ort: 66333 Völklingen
22 Beiträge
 
Delphi 7 Personal
 
#1

Windows API Funktion um Befehlsziel zu ermitteln?

  Alt 27. Mai 2006, 19:48
Guten Abend,

ich entwickel zur Zeit eine neue Version meiner Software "AutostartAdministrator" zur Verwaltung von Windows Autostarts.

Info: http://support.lothargeisinger.de/pr...&application=2

Hierbei ist wichtig Befehle die in Autostart-Einträgen vermerkt sind zu interpretieren und deren Ziel zu ermitteln. Beispiele:

Code:
Befehl: Explorer.exe
Ziel: C:\Windows\Explorer.exe
Parameter=

Befehl=%windir%\system32\regedit.exe /s c:\test.reg
Ziel: C:\Windows\System32\regedit.exe
Parameter: /s c:\test.reg
Bislang hab ich eine eigene Funktion hierfür, diese geht den vorliegenden String Zeichen für Zeichen durch, solange bis der Pfad existiert. Dies ist sehr Rechenintensiv und führt nicht immer zum Ziel.

Deshalb wollt ich wissen ob die Windows API hier etwas zur Verfügung stellt, schließlich muss auch Windows (Beispiel: Start->Ausführen) solche Befehle interpretieren.

Vielen Dank schon mal im Voraus.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Windows API Funktion um Befehlsziel zu ermitteln?

  Alt 27. Mai 2006, 19:54
gehst du jedes zeischen durch und probierst ob die Datei/Ordner existiert oder gehst du bis zum ersten leerzeischen?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Experience1986

Registriert seit: 7. Sep 2003
Ort: 66333 Völklingen
22 Beiträge
 
Delphi 7 Personal
 
#3

Re: Windows API Funktion um Befehlsziel zu ermitteln?

  Alt 27. Mai 2006, 19:59
// Wurde von mir wieder entfernt... Also alles Weichenweise... Über den Leerstring lässt sich das nicht bei allem Befehlen machen:
c:\Dokumente und Einstellungen\Datei.txt
"c:\Dokumente und Einstellungen\Datei.txt"
usw...

Gibt einfach zu viele Schreibweisen hierfür.
  Mit Zitat antworten Zitat
Experience1986

Registriert seit: 7. Sep 2003
Ort: 66333 Völklingen
22 Beiträge
 
Delphi 7 Personal
 
#4

Re: Windows API Funktion um Befehlsziel zu ermitteln?

  Alt 27. Mai 2006, 20:01
Dann kanns ja noch passieren das der Nutzer keine Dateiendung angibt, somit müssen diese auch noch geprüft werden.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Windows API Funktion um Befehlsziel zu ermitteln?

  Alt 27. Mai 2006, 20:15
ich würde empfehlen bis zum ersten leerzeischen bzw. bis zum ende zu suchen. Denn sonst kannst du durch aus die falsche datei finden.

hast du zum beispiel den String:
e:\benutername\liste.txt
würdest du die Datei
e:\benuter
finden.
Anstelle nach jedem Buchstaben zu prüfen ob die Datei bis dahin existiert würde ich also empfehlen nach jedem leerzeichen zu prüfen.

[Edit]
Wenn die gefundene Datei keine Ausführbare Datei ist kannst du dann eigentlich davon ausgehen das die Zeischen die dahinter folgen keine Parameter sind sondern zum Dateinamen gehören.
[/Edit]
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Experience1986

Registriert seit: 7. Sep 2003
Ort: 66333 Völklingen
22 Beiträge
 
Delphi 7 Personal
 
#6

Re: Windows API Funktion um Befehlsziel zu ermitteln?

  Alt 27. Mai 2006, 20:18
Dennoch wird das ganze zu lange dauern, so wie es jetzt ist läuft es ja, identifiziert nur bestimmte einträge nicht:
%systemroot%\system32\dumprep 0 -k

Keine Ahnung warum.
Ich will deshalb gerne eine Windows Funktion nutzen... Die müsste es doch geben, nach welchen Schlagworten könnt man da suchen?
  Mit Zitat antworten Zitat
Benutzerbild von KingIR
KingIR

Registriert seit: 19. Feb 2006
81 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Windows API Funktion um Befehlsziel zu ermitteln?

  Alt 27. Mai 2006, 20:24
Die shlwapi.dll hat eine Menge Funktionen, die in diesem Zusammenhang nützlich sein könnten:

z.B.:
PathUnExpandEnvStrings -- edit: bzw. DoEnvironmentSubst
PathRemoveArgs
Einfach mal die Liste da browsen

Und uses shlwapi; nicht vergessen
  Mit Zitat antworten Zitat
Experience1986

Registriert seit: 7. Sep 2003
Ort: 66333 Völklingen
22 Beiträge
 
Delphi 7 Personal
 
#8

Re: Windows API Funktion um Befehlsziel zu ermitteln?

  Alt 27. Mai 2006, 20:32
Einen rießen Dank schonmal für die DLL!

Aber wenn ich im Uses Bereich "shlwapi" eintrage heißt es: Fehler: Datei nicght gefunden "shlwapi.dcu"...

Gibts die Unit nicht standardgenäß in Delphi und wenn dem so ist woher bekomm ich die DLL Header her, so das ich die Funktion implementieren kann?
  Mit Zitat antworten Zitat
Benutzerbild von KingIR
KingIR

Registriert seit: 19. Feb 2006
81 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Windows API Funktion um Befehlsziel zu ermitteln?

  Alt 27. Mai 2006, 20:40
Hm also bei Delphi 2006 ist die shlwapi.pas/dcu schon dabei. Du kannst sie dir aber auch von http://delphi-jedi.org/APILIBRARY herunterladen ("Microsoft Shell Lightweight Utility API, v.1.2.").
  Mit Zitat antworten Zitat
Experience1986

Registriert seit: 7. Sep 2003
Ort: 66333 Völklingen
22 Beiträge
 
Delphi 7 Personal
 
#10

Re: Windows API Funktion um Befehlsziel zu ermitteln?

  Alt 27. Mai 2006, 21:07
So ich kann also nun die Funktionen ansteuern, danke schon mal.
Leider tut keiner der obengenannten Funktion das was ich erwarte. Auch die anderen auf der MSDN Seite mit Path* Prefix tun nichts dergleichen.

Die einzige Fúnktion die hier nützlich war ist PathGetArgs() bzw. PathRemoveArgs().
Auch eine weitere recherche über Google ergab nichts wirklich brauchbares...

Hat noch jemand eine Idee?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:48 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