AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi FindWindow in einem Service unter Vista
Thema durchsuchen
Ansicht
Themen-Optionen

FindWindow in einem Service unter Vista

Ein Thema von Shark99 · begonnen am 4. Mai 2009 · letzter Beitrag vom 5. Mai 2009
Antwort Antwort
Seite 2 von 3     12 3      
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#11

Re: FindWindow in einem Service unter Vista

  Alt 4. Mai 2009, 17:46
Poste bitte den Code, wenn du wieder zu Hause bist.
  Mit Zitat antworten Zitat
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#12

Re: FindWindow in einem Service unter Vista

  Alt 5. Mai 2009, 06:45
Die Lösung für Dein Problem:
Benutz einen anderen IPC Mechanismus. Mit Window Messages rumspielen in nem Service ist nicht nur relativ dämlich (weil Du auf Deine eigene Terminal Session begrenzt bist) sondern kann durchaus auch die ein oder andere Gefahr in sich bergen. Sollte Dein Service übrigens ein Window erzeugen um Window Messages zu empfangen, darf ich Dir an dieser Stelle sogar zu Deinem ersten exploitbaren Sicherheitsproblem gratulieren .

Das Problem wieso Dein FindWindow innerhalb eines Service unter Vista nicht funktioniert, ist recht einfach. Anders als bei XP rennen Services unter Vista in einer eigenen Terminal Service Session. Da alle Fenster und Fenster Handles nur für die jeweilige Session gelten in der sie auch erstellt wurden, findet Dein Service (der in Session 0 läuft) keinerlei Fenster von Applikationen die Du als Nutzer gestartet hast (welche nämlich in Session 1 laufen). Selbst wenn du übrigens ein Fenster Handle bekommen solltest, wäre es unmöglich von Session 0 heraus eine Message an Session 1 zu schicken.

Ich persönlich würde Dir zur Kommunikation Named Pipes empfehlen, da Du Dir um die Synchronisation weit weniger Gedanken machen muss als z.B. bei Memory Mapped Files. Entsprechende Beispiele findest Du hier im Board zu genüge.

Solltest Du mehr über die Hintergründe der Änderung wissen möchten, empfehle ich Google mit "vista session 0 isolation" und "shatter attacks" als Suchbegriffe.
Fridolin Walther
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#13

Re: FindWindow in einem Service unter Vista

  Alt 5. Mai 2009, 08:37
Da springe ich doch mal schnell in den Thread rein und schreibe
"ich bin wie immer in diesem Fall für TCP/IP, funktioniert immer und wird auch immer funktionieren"


...mal gucken in wie vielen anderen Threads, die das Thema "Window Messages /Services /Vista" behandeln ich noch diesen Satz schreiben werde...ich sollte mir einen Counter dafür anlegen
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#14

Re: FindWindow in einem Service unter Vista

  Alt 5. Mai 2009, 09:23
Zitat von Tyrael Y.:
"ich bin wie immer in diesem Fall für TCP/IP, funktioniert immer und wird auch immer funktionieren"
"Immer" ist relativ. Named Pipes habe auch den Vorteil, dass sie einen Sicherheitskontext mitbringen.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#15

Re: FindWindow in einem Service unter Vista

  Alt 5. Mai 2009, 09:28
Zitat von Tyrael Y.:
"ich bin wie immer in diesem Fall für TCP/IP, funktioniert immer und wird auch immer funktionieren"
Immer na ja: Wenn der Listener beim öffnen des TCP/IP-Port nur lokale verbindungen zu lässst dürften 99,9% der Firewalls still halten. Ansonsten gibt es genügend Firewalls die das (teilweise ohne Meldung) die Port-Öffnung blocken.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#16

Re: FindWindow in einem Service unter Vista

  Alt 5. Mai 2009, 09:29
Zitat von nicodex:
"Immer" ist relativ. Named Pipes habe auch den Vorteil, dass sie einen Sicherheitskontext mitbringen.
Wir reden hier über Interprozesskommunikation in diesem Fall wird TCP/IP immer funktionieren.
Wer weiss wie lange Named Pipes noch funktionieren werden. Da kann Microsoft auf die Idee kommen die nicht mehr zu unterstützen. Wie könnten sie aber auf die Idee kommen TCP/IP nicht mehr zu unterstützen?
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#17

Re: FindWindow in einem Service unter Vista

  Alt 5. Mai 2009, 09:35
Zitat von Tyrael Y.:
Wer weiss wie lange Named Pipes noch funktionieren werden. Da kann Microsoft auf die Idee kommen die nicht mehr zu unterstützen. Wie könnten sie aber auf die Idee kommen TCP/IP nicht mehr zu unterstützen?
Sie könnten auch auf die Idee kommen, TCP/IP abzuschaffen.
Bei Named Pipes hast du als Entwickler den Vorteil, dass es der Implementation überlassen bleibt, welches Transportprotokoll verwendet wird (und "Lokales RPC" dürfte schneller sein, als deine TCP/IP-Verbindung).
Wie Bernhard Geyer bereits schrieb, ist eher die Praxis das Problem (Software-Firewalls).
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#18

Re: FindWindow in einem Service unter Vista

  Alt 5. Mai 2009, 09:38
Zitat von nicodex:
Wie Bernhard Geyer bereits schrieb, ist eher die Praxis das Problem (Software-Firewalls).
Seit wann blockt man eingehende Verbindungen von 127.0.0.1 (localhost) oO?
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#19

Re: FindWindow in einem Service unter Vista

  Alt 5. Mai 2009, 10:07
Zitat von Tyrael Y.:
Seit wann blockt man eingehende Verbindungen von 127.0.0.1 (localhost) oO?
Das musst du unsere Kunden fragen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: FindWindow in einem Service unter Vista

  Alt 5. Mai 2009, 10:12
Zitat von Tyrael Y.:
Wer weiss wie lange Named Pipes noch funktionieren werden. Da kann Microsoft auf die Idee kommen die nicht mehr zu unterstützen.
Also wenn du so anfängst zu argumentieren, dann solltest du besser keine Programme für Windows mehr schreiben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 04:33 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