AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Mit CreateProcessWithLogonW PDF starten? Alternative?
Thema durchsuchen
Ansicht
Themen-Optionen

Mit CreateProcessWithLogonW PDF starten? Alternative?

Ein Thema von freakfly · begonnen am 15. Dez 2004 · letzter Beitrag vom 15. Dez 2004
Antwort Antwort
freakfly
(Gast)

n/a Beiträge
 
#1

Mit CreateProcessWithLogonW PDF starten? Alternative?

  Alt 15. Dez 2004, 07:01
Guten Morgen!

Ich beschäftige mich zur Zeit mit MSDN-Library durchsuchenCreatProcessWithLogonW. Ich will darüber eine PDF starten, mit den Rechten eines anderen Benutzers. Leider startet die Funktion nur *.exe Dateien. Gibts da irgendwie ne Lösung/Alternative oder auch Kombination mit Shellexecute?

Gruß, freakfly
  Mit Zitat antworten Zitat
freakfly
(Gast)

n/a Beiträge
 
#2

Re: Mit CreateProcessWithLogonW PDF starten? Alternative?

  Alt 15. Dez 2004, 10:07
Hmmm.. Ich versuch gerade erst MSDN-Library durchsuchenLogonUser und dann ShellExecute zu machen, aber irgendwie will das nicht funzten!

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var bStart : boolean;
    s : string;
    h : THandle;
begin
  bStart := false;
  application.showmainform := false;
   //ParamStr (1)
   bStart := LogonUser(
      'user23',
      'mydomain',
      '007',
      LOGON32_LOGON_NETWORK,
      LOGON32_PROVIDER_DEFAULT,
      h);
    if not bStart then
      begin
          str(getLastError,s);
          showMessage('Prozess konnte nicht erstellt werden:'+ #13+
            SysErrorMessage(Strtoint(s)));
            Application.Terminate;
      end
    else
      begin
        ShellExecute(Application.Handle,'open',PCHar('\\server1\user23$\home.pdf'),nil,nil,sw_ShowNormal);
       // Application.Terminate;
      end;
end;
Weiss jemand warum das nicht geht, oder hat Tips zum Thema?

Gruß, freakfly
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Mit CreateProcessWithLogonW PDF starten? Alternative?

  Alt 15. Dez 2004, 10:15
Selbst wenn du per LogonUser erfolgreich einen anderen User anmeldest bekommst du nur ein Token zurück, dass du zb für CreateProcessAsUser o.ä. verwenden kannst. ShellExecute startet den neuen Prozess immer als Child-Prozess deines Prozesses und erbt damit auch den Security-Kontext. Was du machen könntest: den AcrobatReader (oder welches Programm auch immer mit PDF verknüpft ist) per CreateProcessWithLogonW starten und die zu öffnende PDF-Datei per DDE übergeben..
Manuel Pöter
  Mit Zitat antworten Zitat
freakfly
(Gast)

n/a Beiträge
 
#4

Re: Mit CreateProcessWithLogonW PDF starten? Alternative?

  Alt 15. Dez 2004, 10:44
An das dachte ich auch schon.. Da das Programm aber inner Domain verwendet werden soll, weiss ich ja nie, wo der Acrobat installiert ist. Schön wäre halt auch wenn es mit *.doc Dateien auch funktionieren würde...
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Mit CreateProcessWithLogonW PDF starten? Alternative?

  Alt 15. Dez 2004, 11:18
Zitat von freakfly:
An das dachte ich auch schon.. Da das Programm aber inner Domain verwendet werden soll, weiss ich ja nie, wo der Acrobat installiert ist. Schön wäre halt auch wenn es mit *.doc Dateien auch funktionieren würde...
Naja, man kann ja auslesen mit welchem Programm die Endung .pdf Verknüpft ist... und dasselbe einfach auch mit .doc ...
Manuel Pöter
  Mit Zitat antworten Zitat
freakfly
(Gast)

n/a Beiträge
 
#6

Re: Mit CreateProcessWithLogonW PDF starten? Alternative?

  Alt 15. Dez 2004, 11:24
Zitat:
Naja, man kann ja auslesen mit welchem Programm die Endung .pdf Verknüpft ist... und dasselbe einfach auch mit .doc ...
Hast du da etwa nen heißen Tip, ein paar Schlagwörter oder gar etwas Code dazu?
  Mit Zitat antworten Zitat
freakfly
(Gast)

n/a Beiträge
 
#7

Programmverknüpfung feststellen

  Alt 15. Dez 2004, 11:35
Wenn es jemanden interessieren sollte, hier hab ich was gefunden...

Delphi-Quellcode:
uses
ShellApi;

resourcestring
SFILE_NOT_FOUND = 'Die angegebene Datei "%s" konnte nicht gefunden werden.';
SNO_ASSOCIATED_EXE = 'Für den angegebenen Dateitypen ist kein ausführbares Programm verfügbar.';
SPATH_NOT_FOUND = 'Der angegebene Pfad "%s" konnte nicht gefunden werden.';
SEXE_INVALID = 'Das ausführbare Programm ist keine gültige Win32-Anwendung.';

function GetExecutable(const AFileName: string): string;
var
FileName, Directory: string;
begin
FileName := ExtractFileName(AFileName);
Directory := ExtractFilePath(AFileName);
Setlength(Result, MAX_PATH);
FillChar(Pointer(Result)^, Length(Result), #0);
case FindExecutable(Pointer(FileName), Pointer(Directory), Pointer(Result)) of
0: OutOfMemoryError;
31: MessageDlg(SNO_ASSOCIATED_EXE, mtError, [mbOk], 0);
ERROR_FILE_NOT_FOUND: MessageDlg(Format(SFILE_NOT_FOUND, [FileName]),
mtError, [mbOk], 0);
ERROR_PATH_NOT_FOUND: MessageDlg(Format(SPATH_NOT_FOUND, [Directory]),
mtError, [mbOk], 0);
ERROR_BAD_FORMAT: MessageDlg(SEXE_INVALID, mtError, [mbOk], 0);
end;
Setlength(Result, StrLen(Pointer(Result)));
end;
  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 08:40 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