Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programm mir Benutzerrechten starten (https://www.delphipraxis.net/116962-programm-mir-benutzerrechten-starten.html)

kuba 9. Jul 2008 12:24


Programm mir Benutzerrechten starten
 
Hallo,

folgende Programmzeile steht in meinem Programm:

Delphi-Quellcode:
BEGIN
      winexec('iexplore.exe',SW_SHOW);
END.
Wenn ich mein Programm mit Administratorrechten starte funktioniert es wie gewünscht. Starte ich das Programm nur mit Benutzerrechten dann funktioniert es nicht.

Wo ist der Fehler ? Was läuft falsch ?

KUBA

Die Muhkuh 9. Jul 2008 12:28

Re: Programm mir Benutzerrechten starten
 
WinExec ist veraltet, nutze lieber ShellExecute oder CreateProcess. Zu beidem findest Du hier im Forum Hilfe ;)

Was heißt funktioniert nicht? :glaskugel:

kuba 9. Jul 2008 12:30

Re: Programm mir Benutzerrechten starten
 
Zitat:

Zitat von Die Muhkuh
WinExec ist veraltet, nutze lieber ShellExecute oder CreateProcess. Zu beidem findest Du hier im Forum Hilfe ;)

Was heißt funktioniert nicht? :glaskugel:

Internet Explorer startet mit normalen Benutzerrechten nicht :gruebel:

Jetzt hab ich gerade nochmal den "Code" umgeschrieben, hier das "komplette" Programm:

Delphi-Quellcode:
program ich;

uses
  Windows;

BEGIN
      winexec('notepad.exe',SW_SHOW);
END.
Mit Notepad.exe funktioniert es einwandfrei, warum nicht mit Internet Explorer ?

KUBA

PS: IExplore.exe hat übrigens auch nicht mit Adminrechten gestartet ...

RavenIV 9. Jul 2008 12:57

Re: Programm mir Benutzerrechten starten
 
Zitat:

Zitat von kuba
Mit Notepad.exe funktioniert es einwandfrei, warum nicht mit Internet Explorer ?

Weil:
a) WinExec ist veraltet (siehe Beitrag #2 von Die Muhkuh)
b) Notepad will auch nicht irgendwelche DLLs oder ActiveX-Sachen laden. Ausserdem greift der IE auf das Benutzerverzeichnis zu wegen z.B. der Favoriten.

Luckie 9. Jul 2008 13:03

Re: Programm mir Benutzerrechten starten
 
Warum wird eigentlich immer auf eine anständige Fehlerbehandlung verzichtet und stattdessen gehofft, das wir hier im Forum hellseherische Fähigkeiten haben? Selbst wenn du, wider den Empfehlungen auf MSDN-Library durchsuchenWinExec bestehst, auch diese Funktion hat einen Rückgabewert, den man auswerten kann. Dann kannst du uns zumindets schon mal eine gescheite Fehlermeldung nennen anstatt einen aussagelosen "funktioniert nicht".

kuba 9. Jul 2008 13:09

Re: Programm mir Benutzerrechten starten
 
Zitat:

Zitat von Luckie
Warum wird eigentlich immer auf eine anständige Fehlerbehandlung verzichtet und stattdessen gehofft, das wir hier im Forum hellseherische Fähigkeiten haben? Selbst wenn du, wider den Empfehlungen auf MSDN-Library durchsuchenWinExec bestehst, auch diese Funktion hat einen Rückgabewert, den man auswerten kann. Dann kannst du uns zumindets schon mal eine gescheite Fehlermeldung nennen anstatt einen aussagelosen "funktioniert nicht".

Tja, :gruebel: , mit Shellexecute funktioniert es. Mit winexec bekomme ich keine Fehlermeldung, nur : funktioniert nicht, warum ?

@RavenIV
Die Erklärung leuchtet mir ein, sorry bin Anfänger - probiere stundenlang herum und wundere mich warum nix geht :stupid:

KUBA

thkerkmann 9. Jul 2008 13:11

Re: Programm mir Benutzerrechten starten
 
Hi,

nun mal nicht so hastig. Ich hab's mal ausprobiert.

Delphi-Quellcode:
program ich;
{$APPTYPE CONSOLE}
uses
  SysUtils,
  Windows;

BEGIN
      writeln ('returncode: ',SysErrorMessage(winexec('iexplore.exe',SW_SHOW)));
END.
und siehe da:
Delphi-Quellcode:
C:\Dokumente und Einstellungen\thomas\Eigene Dateien>ich
returncode: Das System kann die angegebene Datei nicht finden

C:\Dokumente und Einstellungen\thomas\Eigene Dateien>
WinExec scheint nicht die im Path angegebenen Verzeichnisse zu durchsuchen, und kann somit die Datei nicht finden.

Gruss

kuba 9. Jul 2008 14:20

Re: Programm mir Benutzerrechten starten
 
Aha :roll:

Ich hab noch ne "doofe" Frage, mein Programm versucht ein paar Einträge aus der Registry zu lesen.
Darf es das mit Benutzerrechten ??

Wenn nein, warum nicht (lesen) ?
Wenn ja, warum gehts bei mir nicht (bekomme keine Fehlermeldung)

Hier mein Codeschnipsel :

Delphi-Quellcode:
     if not IsExeRunning(PW) then
     begin
     ReadEXE(PW);
     showmessage(PW);   //meine Testzeile
     end;
Ich erhalte immer ein Showmessage ohne Inhalt.

KUBA

RavenIV 9. Jul 2008 14:25

Re: Programm mir Benutzerrechten starten
 
Zitat:

Zitat von kuba
Ich hab noch ne "doofe" Frage, mein Programm versucht ein paar Einträge aus der Registry zu lesen.
Darf es das mit Benutzerrechten ??

Im Prinzip:
Neue Frage, neuer Thread.

Und wie immer:
Mehr Info und Code. :glaskugel:

kuba 9. Jul 2008 14:47

Re: Programm mir Benutzerrechten starten
 
OK ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:53 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-2025 by Thomas Breitkreuz