Autor Beitrag
galagher
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2556
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mi 22.02.06 22:21 
Hallo!

Weiss jemand, wie man den "Ausführen als"-Dialog von Windows während der Laufzeit öffnet?

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Mi 22.02.06 22:32 
Such mal nach Suche in: Delphi-Forum RUNAS

AXMD
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 23.02.06 09:02 
RunAs ist nur das Konsolenprogramm, um einen Prozess unter einem anderen Benutzernamen auszuführen. Aber wie man an den Dialog kommt weiß ich im Moment auch nicht. :gruebel:
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Do 23.02.06 09:09 
Ich hab mir das eben mal mit dem Process Explorer angeschaut. Folgender Befehl könnte wohl funktionieren:

ausblenden Quelltext
1:
"C:\WINDOWS\system32\rundll32.exe" C:\WINDOWS\system32\shell32.dll,OpenAs_RunDLL [filename]"					
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2556
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Do 23.02.06 21:46 
user profile iconUGrohne hat folgendes geschrieben:
ausblenden Quelltext
1:
"C:\WINDOWS\system32\rundll32.exe" C:\WINDOWS\system32\shell32.dll,OpenAs_RunDLL [filename]"					

Das ist der "öffnen mit"-Dialog. Ich suche aber noch in shell32.dll!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2556
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Do 23.02.06 21:52 
user profile icongalagher hat folgendes geschrieben:
user profile iconUGrohne hat folgendes geschrieben:
ausblenden Quelltext
1:
"C:\WINDOWS\system32\rundll32.exe" C:\WINDOWS\system32\shell32.dll,OpenAs_RunDLL [filename]"					

Das ist der "öffnen mit"-Dialog. Ich suche aber noch in shell32.dll!

Edit:
Control_RunDLLAsUser ist es auch nicht - da tut sich gar nichts.

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2556
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Do 23.02.06 22:11 
CreateProcessAsUser lautet das Zauberwort, nur kann mir da bitte jemand ein praktisches Beispiel dafür geben? Ist ja der reinste Horror!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Do 23.02.06 22:13 
Hmm, stimmt, sorry.

Den krieg ich leider nicht mit dem Process Explorer, ich glaube der geht net über die shell32.dll. Naja, vielleicht finde ich noch was, ansonsten musst Du's wirklich mit dem Konsolenprogramm runas machen und dem die Parameter übergeben.
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Do 23.02.06 22:13 
Ist da bei MSDN nichts? Suche im MSDN CREATEPROCESSASUSER

AXMD
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2556
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Do 23.02.06 22:38 
user profile iconAXMD hat folgendes geschrieben:
Ist da bei MSDN nichts? Suche im MSDN CREATEPROCESSASUSER
AXMD

Also, ich finde nichts, was mir bei Delphi weiterhilft. Ein konkretes Beispiel wäre da hilfreich, aber so
ist CreateProcessAsUser nicht wirklich durchschaubar...

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 24.02.06 08:43 
So geht es: www.michael-puff.de/...ocessWithLogonW.html
Oder in meinem Programm RunAsUser gucken.
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Fr 24.02.06 11:19 
user profile icongalagher hat folgendes geschrieben:
CreateProcessAsUser lautet das Zauberwort,

Zeigt diese Funktion wirklich ein Dialog an? :gruebel:

_________________
Ein Nutzer der Ecke ;-)
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2556
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Fr 24.02.06 17:36 
user profile iconLuckie hat folgendes geschrieben:
So geht es: www.michael-puff.de/...ocessWithLogonW.html

Wenn ich das aber in der Form
ausblenden Delphi-Quelltext
1:
CreateProcessAsLogon('User''password''notepad''d:\delphi6\projects\1.txt');					

einsetze, wird eben d:\delphi6\projects\1.txt mit notepad.exe geöffnet, ausserdem muss ich einen User und ein Passwort angeben! Ich möchte ja aber doch den Ausführen-als-Dialog erst öffnen, mit dem man dann einen User wählt und das Passwort eingibt! Oder übersehe ich da etwas?

user profile iconMartin1966 hat folgendes geschrieben:
user profile icongalagher hat folgendes geschrieben:
CreateProcessAsUser lautet das Zauberwort,

Zeigt diese Funktion wirklich ein Dialog an? :gruebel:

Wird wohl so sein, aber WIE? Wie ruft man das auf - 11 Parameter! Ein einziges praktisches Beispiel wäre hier wirklich hilfreich!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Fr 24.02.06 17:43 
Lief unter Delphi 4 und ME nicht getestet.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
function SHRunDialog 
  (Owner, IconHandle, Unknow: longint; Title, Prompt: Pchar; Flags: longint): 
    longint; 
  stdcallexternal 'Shell32.dll' INDEX 61
 
procedure ausfuehren(AnzeigeLetzterBefehl, modal: boolean; icon: Hicon); 
var 
  flg, own: longint; 
begin 
  if modal then own := application.handle else own := 0
  if AnzeigeLetzterBefehl then flg := 0 else flg := 2
  shrundialog(own, icon, 0'Ausführen'
    'Geben Sie den Namen eines Programms, Ordners, ' + 
    'Dokuments oder einer Internetressource an.', flg); 
end
 

procedure TForm1.Button3Click(Sender: TObject); 
begin 
  ausfuehren(true, true, application.icon.handle); 
end;
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2556
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Fr 24.02.06 17:56 
user profile iconBlackheart666 hat folgendes geschrieben:
Lief unter Delphi 4 und ME nicht getestet.

Läuft und funktioniert zwar, aber weder Text noch Titel werden in lesbaren Zeichen angezeigt (nur diese Kästchen). Aber vor allem: Es ist nicht der Ausführen-als-Dialog! :? Trotzdem danke!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 24.02.06 18:22 
user profile icongalagher hat folgendes geschrieben:
user profile iconLuckie hat folgendes geschrieben:
So geht es: www.michael-puff.de/...ocessWithLogonW.html

Wenn ich das aber in der Form
ausblenden Delphi-Quelltext
1:
CreateProcessAsLogon('User''password''notepad''d:\delphi6\projects\1.txt');					

einsetze, wird eben d:\delphi6\projects\1.txt mit notepad.exe geöffnet, ausserdem muss ich einen User und ein Passwort angeben! Ich möchte ja aber doch den Ausführen-als-Dialog erst öffnen, mit dem man dann einen User wählt und das Passwort eingibt! Oder übersehe ich da etwas?

Nein tust du nicht. Aber man kann sich ja einen eigenen Dialog drumrumbauen. ;)
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2556
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Fr 24.02.06 18:43 
user profile iconLuckie hat folgendes geschrieben:
Nein tust du nicht. Aber man kann sich ja einen eigenen Dialog drumrumbauen. ;)

Das bedeutet also:
1. Einen eigenen "Ausführen-als"-Dialog basteln. Wird ja weiters kein Problem sein, es wäre aber schön, wenn ich die im System bekannten Benuzternamen in eine ComboBox einlesen könnte, aber wie?
2. Die eingegebenen Werte an CreateProcessAsLogon übergeben.

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 24.02.06 18:57 
user profile icongalagher hat folgendes geschrieben:
user profile iconLuckie hat folgendes geschrieben:
Nein tust du nicht. Aber man kann sich ja einen eigenen Dialog drumrumbauen. ;)

Das bedeutet also:
1. Einen eigenen "Ausführen-als"-Dialog basteln. Wird ja weiters kein Problem sein, es wäre aber schön, wenn ich die im System bekannten Benuzternamen in eine ComboBox einlesen könnte, aber wie?
2. Die eingegebenen Werte an CreateProcessAsLogon übergeben.



user profile iconLuckie hat folgendes geschrieben:
So geht es: www.michael-puff.de/...ocessWithLogonW.html
Oder in meinem Programm RunAsUser gucken.
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2556
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Fr 24.02.06 19:19 
user profile iconLuckie hat folgendes geschrieben:
user profile iconLuckie hat folgendes geschrieben:
So geht es: www.michael-puff.de/...ocessWithLogonW.html
Oder in meinem Programm RunAsUser gucken.

Ich will ja nicht undankbar erscheinen und weiss auch, was du meinst: MpuWinNT, MpuNTUser, MpuRegistry einbinden und dann gibt's in MpuNTUser eine Funktion oder Prozedur, die das kann. Aber beim Compilieren erhalte ich gleich mal einen Gruss von Delphi:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
[Fehler] MpuNTUser.pas(133): Undefinierter Bezeichner: 'NET_API_STATUS'
[Fehler] MpuNTUser.pas(199): Undefinierter Bezeichner: 'NERR_InvalidComputer'
[Fehler] MpuNTUser.pas(200): Undefinierter Bezeichner: 'NERR_NotPrimary'
[Fehler] MpuNTUser.pas(200): Doppeltes Case-Label
...

Ich will doch nur Strings in eine ComboBox schreiben! Nur das! :(

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 24.02.06 19:30 
Ich kann mein Programm problems kkompilieren. :gruebel: Ich mache dir nachher mal ein Beispiel.