Autor Beitrag
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Di 12.02.08 14:20 
Hallo,

ich bräuchte ein wenig Unterstützung bei dem Tanz mit den Vista Berechtigungen.

Folgendes Problem Stellt sich da, meine Anwendung arbeitet zusammen mit COM-Server A und Anwendung B, welche der Standard Mail Client ist. Das ist unter Win XP alles kein Problem, interessant wird es erst, wenn das zusammenspiel unter Vista klappen soll. Der COM-Server A scheint mit erhöhten rechten zu laufen, denn der Zugriff auf dessen Funktionen klappt nur, wenn ich meine Anwendung per Manifest Datei mir erhöhten Rechten Starte (highestAvailable). Ich kann auch dann noch E-Mails aus meiner Anwendung über den Standard Client versenden solange dieser noch nicht vom user gestartet wurde. Wenn der user aber seinen Mail Client Manuell startet (soll ja vorkommen) geschieht dies in der Regel mit normalen Benutzerrechten (AsInvoker), was zur folge hat, dass meine Anwendung nicht mehr drauf zugreifen kann und eine sehr schön sinnlose Windows Fehlermeldung zu tage fördert (-2146959355).

Meine Frage nun, wie kann ich dem Problem beikommen? Ich kann ja schlecht das rechtelevel andere Anwendungen ändern und ich kann meine auch nicht auf mehreren ebenen gleichzeitig laufen lassen.

Natürlich währe es schön, wenn jemand von euch einen Tick wüsste wie ich trotz erhöhter Rechte den Client auch weiterhin erfolgreich per MAPI ansteuere, mir würde es aber auch schon Helfen, wenn mir jemand einen Weg nennen könnte wie ich Feststellen kann ob eine Anwendung bereits auf einem anderen Rechtelevel läuft.

Kann mir jemand Tanzstunden geben?

Klabautermann

PS: Wer es mal ausprobieren will kann einfach unter Vista WinWord mit Administratorrechten starten, Outlook (damit der test auch mit reinrassiger M$ Software läuft) einfach per Doppelklick öffnen und dann ein wenig getippsel über die in Word integrierte Funktion "als E-Mai Versenden" aus Word verschicken.
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Di 12.02.08 20:41 
Hi Björn,

ich bin zwar nicht so tief drin in COM Server Client Anwendungen. Ich würde es auf zwei Wegen probieren, es ist wie gesagt nur eine Idee. Bevor Du auf den Mail-client draufzugreifst, überprüfen, ob eine Instanz vom Mailclient offen ist und diese schliessen. Ist zwar etwas unsauber, sollte aber funktionieren.

Als zweiten Weg würde ich vorschlagen, dass Du einfach eine zweite Instanz öffnest und damit arbeitest.

Ich hoffe ich konnte Dir einen kleinen Denkanstoß geben.
Klabautermann Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Di 12.02.08 21:38 
Hallo user profile iconbis11,

vielen dank für deine Vorschläge ich fürchte nur, dass beide nicht praktikabel sind. Denn wenn dich das Vista Rechtesystem richtig verstehe wird sämtliche Kommunikation zwischen Threads auf unterschiedlichen Rechteebenen unterbunden, darunter dürften auch Messages zum beenden von Programmen fallen. Das starten einer zweiten Instanz eines Mail Programms wird in der Regel von diesem unterbunden, wahrscheinlich dammit die beiden Instanzen sich nicht bei den Server zugriffen ins Gehege kommen.

Dennoch danke
Björn
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Di 12.02.08 22:29 
user profile iconKlabautermann hat folgendes geschrieben:
Denn wenn dich das Vista Rechtesystem richtig verstehe wird sämtliche Kommunikation zwischen Threads auf unterschiedlichen Rechteebenen unterbunden, darunter dürften auch Messages zum beenden von Programmen fallen.

Ich habe aber es doch richtig verstanden, dass Du Dein Programm mit erweiterten Rechten ausführst oder nicht ? Gesetz den Fall es ist so, hat Dein Programm doch mehr Rechte als das Mail Programm. Mit diesen erweiterten Rechten kann ich doch das andere Programm dann beenden. Den Prozess beenden, so als wenn ich es über den Task-Manager mache.

Gege zu eine etwas harte Methode.