AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Drag & Drop mit aktiven UAC

Ein Thema von stOrM · begonnen am 28. Jan 2011 · letzter Beitrag vom 29. Jan 2011
Antwort Antwort
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#1

Drag & Drop mit aktiven UAC

  Alt 28. Jan 2011, 17:19
Hi,
ich hab da mal eine Frage zu Ole Drag & Drop in Verbindung mit Windows Vista oder Höher...
Bei mir schlägt gerade UIPI (User Interface Privilege Isolation) zu, da ich einem kleinen Tool von mir Drag & Drop spendieren wollte.

Das Ding hier ist, Drag und Drop funktionieren auch prächtig bis ich mein Tool mit erhöhten Rechten ausführe, was ich leider muss, da führt kein Weg dran vorbei.

Nun dachte ich mir gut, wenn UIPI mich schon nervt, erschlag ich das halt halbwegs über ChangeWindowMessageFilterEx (Denkste!) denn als ich das ganze in mein Tool eingebunden hatte viel mir ein das Ole Drag & Drop ja keine Messages eher Callbacks verwendet. Nun steh ich da

Hat jemand eine Idee wie ich trotzdem das Drag & Drop realisieren kann ohne!!! UAC abzuschalten?
Kann auch Dirty sein Hauptsache beides geht halt also Tool elevated inkl. Drag & Drop

Viele Grüße
s!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.202 Beiträge
 
Delphi 12 Athens
 
#2

AW: Drag & Drop mit aktiven UAC

  Alt 28. Jan 2011, 19:26
Ist das nicht auch ohne UAC verboten?

Fakt ist nunmal, daß Messages von Anwendungen mit niedrigeren Rechten nicht an welche mit höheren Rechten verschickt werden dürfen und daran läßt sich nichts ändern.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Drag & Drop mit aktiven UAC

  Alt 28. Jan 2011, 19:33
Naja wenn die Anwendung nicht mit erhöhten Rechten gestartet wird funzt das Drag & Drop wie gewohnt, mit halt nicht...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.202 Beiträge
 
Delphi 12 Athens
 
#4

AW: Drag & Drop mit aktiven UAC

  Alt 28. Jan 2011, 19:49
Mir wäre es ja auch lieb gewesen, wenn man gewisse Messages freischalten könnte und nicht gleich alles gesperrt wäre.
Aber MS hat das leider nicht so eingerichtet.

Und da das eine Sicherheitsmaßnahme ist, wäre es "blöd", wenn man dieses leicht umgehen könnte.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Drag & Drop mit aktiven UAC

  Alt 28. Jan 2011, 19:51
Naja der trouble fängt ja schon da an das es bei dem Drag & Drop nicht wirklich Messages gibt ...
MS hat ja die Möglichkeit geschaffen Messages wieder freizuschalten nur hats da leider keinen Sinn wenn die gar nicht erst generiert werden
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.202 Beiträge
 
Delphi 12 Athens
 
#6

AW: Drag & Drop mit aktiven UAC

  Alt 28. Jan 2011, 20:12
Ich dachte Drag&Drop arbeitet über Messages, zusammen mit dem Clipboard.

Die Steuerung über Messages und die Dateiliste liegt in der Zwischenablage.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Drag & Drop mit aktiven UAC

  Alt 29. Jan 2011, 00:42
Ist das nicht auch ohne UAC verboten?

Fakt ist nunmal, daß Messages von Anwendungen mit niedrigeren Rechten nicht an welche mit höheren Rechten verschickt werden dürfen und daran läßt sich nichts ändern.
1 Antwort später:

Naja wenn die Anwendung nicht mit erhöhten Rechten gestartet wird funzt das Drag & Drop wie gewohnt, mit halt nicht...
Da hat wohl Jemand nicht alle Beiträge verarbeitet
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Drag & Drop mit aktiven UAC

  Alt 29. Jan 2011, 09:23
@himitsu
ich hatte ihn so verstanden, dass sein Programm nur Probleme hat wenn es mit Administratorrechten ausgeführt wird....
So siehts aus, entweder Drag & Drop oder, mit erhöhten Rechten beides nada

Fakt ist nunmal, daß Messages von Anwendungen mit niedrigeren Rechten nicht an welche mit höheren Rechten verschickt werden dürfen und daran läßt sich nichts ändern.

Hatte ich im ersten Post ja bereits erwähnt das UIPI da zuschlägt, wie auch das MS ja eine Funktion spendiert hat für diesen Fall um trotzdem an gewisse Messages zu kommen, nur klappt das halt nich wenn es sich um Sachen handelt die keine Messages generieren und genau da liegt ja das Problem!

Delphi-Quellcode:
  ChangeWindowMessageFilterEx(Handle, WM_DROPFILES, MSGFLT_ADD, nil);
  ChangeWindowMessageFilterEx(Handle, WM_COPYDATA, MSGFLT_ADD, nil);
  ChangeWindowMessageFilterEx(Handle, WM_COPYGLOBALDATA, MSGFLT_ADD, nil);
Wären lt. diversen MSN Blogs die Nachrichten die man Freischalten müsste.
Was aber keinen Einfluß hat auf:

Delphi-Quellcode:
    fDropHelper : IDropTargetHelper; //A helper that implements details for drag and drop
    function DragEnter(const dataObj: IDataObject; grfKeyState: DWORD;
      pt: TPoint; var dwEffect: DWORD): HResult; stdcall;
    function DragOver(grfKeyState: DWORD; pt: TPoint;
      var dwEffect: DWORD): HResult; reintroduce; stdcall;
    function DragLeave: HResult; stdcall;
    function Drop(const dataObj: IDataObject; grfKeyState: DWORD; pt: TPoint;
      var dwEffect: DWORD): HResult; stdcall;
Denn oben erwähnte Messages werden hierbei nicht generiert.

Geändert von stOrM (29. Jan 2011 um 09:38 Uhr) Grund: Alzheimer
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#9

AW: Drag & Drop mit aktiven UAC

  Alt 29. Jan 2011, 11:39
Mal ne andere Frage: Was ist, wenn du eine weitere Anwendung erstellst, die mit niedrigeren Rechten auskommt und das OLE-Drag+Drop für dich übernimmt und dann die Ergebnisse per Message/Pipe/sonstwas an das Programm mit höheren Rechten schickt? - Du musst dann quasi nur das Parent deines "kleineren" Programms umstellen und als User sollte man davon nichts mitbekommen.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#10

AW: Drag & Drop mit aktiven UAC

  Alt 29. Jan 2011, 15:31
Also ich habe mir das mal angesehen.
Die Möglichkeit WM_DROPFILES freizuschalten ist gut möglich und funktioniert auch. Nur darf man kein COM verwenden, wie z.B. IDropTarget.
TJvFilenameEdit und TJvDragDrop funktionierten nach dem ersten Prinzip. TJvDropTarget verwendet COM, daher funktioniert es damit nicht.

Ich habe schon die COM Einstellungen für den Prozess heruntergefahren ohne Erfolg (COM Implementation von IAccessControl). Andersherum kann man den Zugriff für Drag&Drop einschränken, d.h. COM Sicherheit nach oben schrauben.
Da IAccessControl.IsAccessAllowed im ersten Fall nie aufgerufen wird, vermute ich, dass COM schon vorher die Prüfung selbst durchführt und die Nachrichten daher erst garnicht gesendet werden.

Internet Explorer macht es so wie rollstuhlfahrer es beschrieben hat. Es gibt einen Hauptprozess und für jedes Tab einen eigenen Prozess. Wenn man nun eine Datei in den IExplorer fallen lässt, dann wird dies in einem Medium Integrity Level (MIL) Tab geöffnet. Webseiten werden jeweils in einem Low Integrity Level Tab dargestellt.
D.h. der Hauptprozess vom IE übernimmt das Drag&Drop, was ja auch funktioniert, da es im MIL ausgeführt wird. Und die Fenster selbst sind wohl Prozessübergreifend verbunden. Das sieht man im ProcessExplorer, wenn man mal die verschiedenen Bereiche mit dem FindWindow Feature anklickt. Dann sieht man, dass es jedesmal ein anderer Prozess ist.

Mit Spy sollte man keine Nachrichten sehen können, weil bei IDropTarget alles nur noch über COM Callbacks geht.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  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 18:39 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