AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi aus Dienst herraus Anwendung starten
Thema durchsuchen
Ansicht
Themen-Optionen

aus Dienst herraus Anwendung starten

Ein Thema von mexx81 · begonnen am 26. Nov 2007 · letzter Beitrag vom 26. Nov 2007
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#11

Re: aus Dienst herraus Anwendung starten

  Alt 26. Nov 2007, 13:16
Im anderen Forum regst Du Dich darüber auf, dass andere Entwickler ihre Anwendungen nicht Vista-Kompatibel machen.
Zitat:
Wir haben zahlreiche Programme auf den Laptops laufen, welche unter Vista nicht gehen.
Genau aus diesem Grund sollten wir alle darauf achten, dass unsere Programme unter allen Systemen laufen.

Sonst schimpft nämlich auch in Zukunft jeder über das Betriebssystem. Und das, obwohl gerade solche Ignoranten alá "unter XP läuft das doch" oder auch alá "Warum glauben alle nur, dass Vista ein Thema ist." ausschliesslich alleine daran schuld sind, dass die Anwendungen da nicht drauf laufen - und eben nicht das Betriebssystem oder dessen Hersteller die Schuld trägt.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#12

Re: aus Dienst herraus Anwendung starten

  Alt 26. Nov 2007, 13:25
Genau das ist das Problem: Hätten sich die Entwickler an die Richtlinien gehalten, die es übrigens schon seit NT gibt, dann gäbe e so gut wie keine Probleme mit Vista. Da aber genau aus diesem Grund die meisten unter XP als Administrator arbeiten, merken sie nicht, wie schelocht die Software programmiert ist, mit der sie arbeiten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#13

Re: aus Dienst herraus Anwendung starten

  Alt 26. Nov 2007, 13:38
*zustimm*

daher: mut zu vista!
ich selber nutze sogar das ganz ganz böse vista... Vista 64 Business..
also falls jemand seine programme unter [ironie] nieeeeeeeemals sich etablierenden/benutztbaren [/ironie] systemen testen mag: immer her mit der exe

ich erinnere mich noch dunkel... es ist nicht so lange her aber man verdrängt es gerne... ich erinnere mich an aussagen *inversiv glaskugel hervorhol* "boah scheisse was soll das für ein OS sein?! XP?? pah! ich bleib auf 98.. da läuft wenigstens alles und super stabil!!" oder wie wärs mit dem hier: "für das neue xp entwickeln? quatsch.. zu viel aufwand für ein OS was nieeeee!! nieeee! produktiv in firmen zum einsatz kommen wird!!"


gruß
reli
  Mit Zitat antworten Zitat
Dezipaitor

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

Re: aus Dienst herraus Anwendung starten

  Alt 26. Nov 2007, 13:53
if WTSQueryUserToken(WtsGetActiveConsoleSessionID, hToken) then Das Problem mit dieser Zeile ist, dass immer die physikalische Konsole verwendet wird. D.h. wenn kein Benutzer lokal eingeloggt ist, dann schlägt die Funktion fehl. Dies kann z.b. passieren wenn jemand über RemoteDesktop eingeloggt ist (ohne den Desktop als ConsoleSession zu starten).
Auf jeden Fall kann die gestartete Anwendung auf dem falschen Desktop gestartet werden.

Am einfachsten kann man dieses Problem lösen, wenn der Benutzer eine Aktion auslöst, die diese Anwendung startet. D.h. eine Anwendung kommuniziert mit dem Service, der dann einen neuen Prozess startet. Durch die Kommunikation kann der Service erfahren, in welche Session und Desktop die Anwendung steht und dort den neuen Prozess starten.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
madas

Registriert seit: 9. Aug 2007
207 Beiträge
 
#15

Re: aus Dienst herraus Anwendung starten

  Alt 26. Nov 2007, 14:18
Zitat von Dezipaitor:
if WTSQueryUserToken(WtsGetActiveConsoleSessionID, hToken) then Das Problem mit dieser Zeile ist, dass immer die physikalische Konsole verwendet wird. D.h. wenn kein Benutzer lokal eingeloggt ist, dann schlägt die Funktion fehl. Dies kann z.b. passieren wenn jemand über RemoteDesktop eingeloggt ist (ohne den Desktop als ConsoleSession zu starten).
Auf jeden Fall kann die gestartete Anwendung auf dem falschen Desktop gestartet werden.

Am einfachsten kann man dieses Problem lösen, wenn der Benutzer eine Aktion auslöst, die diese Anwendung startet. D.h. eine Anwendung kommuniziert mit dem Service, der dann einen neuen Prozess startet. Durch die Kommunikation kann der Service erfahren, in welche Session und Desktop die Anwendung steht und dort den neuen Prozess starten.
Also ich verwende das für einen Update Service. Die Anwendung fragt dann den Service, ob ob ein Update machbar ist oder nicht. Um dem User Infos zum Updatevorgang zu zeigen, gibt es einen Update Monitor. Falls er nicht läuft wird er vom Service im Userkontext gestartet.

Klingt doch eigentlich nach deiner "Problemlösung", oder?

Ich frage deshalb nochmal, weil auf gleiche Weise dann auch wieder die Anwendung selber nach einen Update gestartet wird. Sie muss ja auch wieder im User Kontext laufen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:50 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