AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Dienste und NotifyServiceStatusChangeW

Dienste und NotifyServiceStatusChangeW

Ein Thema von stOrM · begonnen am 23. Aug 2011 · letzter Beitrag vom 9. Sep 2011
Antwort Antwort
Benutzerbild von stOrM
stOrM

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

AW: Dienste und NotifyServiceStatusChangeW

  Alt 23. Aug 2011, 11:25
Das solltest du lieber nicht tun denn:
Zitat von MSDN:
Note that certain functions in the Windows API, including NotifyServiceStatusChange and other SCM functions, use remote procedure calls (RPC); these functions might perform an alertable wait operation, so they are not safe to call from within the callback function
Die Lösung ist:
Zitat von MSDN:
Instead, the callback function should save the notification parameters and perform any additional work outside the callback.
Ah ja
Glaub ich bin zu Doof dazu, ich krieg das irgendwie nicht gelöst das mir der Callback ein weiteres mal ausgelöst wird. Ich hab schon mittlerweile noch ein Event eingebaut, was ich im Callback zurücksetzen wollte geht irgendwie auch nicht. Gleich nehm ich Variante 1 und machs doch mit polling

Geändert von stOrM (23. Aug 2011 um 13:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Dienste und NotifyServiceStatusChangeW

  Alt 23. Aug 2011, 14:29
Ich würde mir das Notify im Callback wegschreiben, von deinem Thread auswerden lassen (eventuell an Hauptthread weiterreichen) und dann deinen Thread das NotifyServiceStatusChange mit dem gleichen Notify-Buffer wieder aufrufen lassen.

Ich hab damit vorhin mal rumgespielt und bin mit einem zusätzlichen Thread klargekommen.

Wenn du noch ein bißchen Zeit hast, kann ich dir vielleicht auch was von meine Code zukommen lassen. Er ist nur im Moment nicht wirklich lesbar.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

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

AW: Dienste und NotifyServiceStatusChangeW

  Alt 23. Aug 2011, 18:51
Ich würde mir das Notify im Callback wegschreiben, von deinem Thread auswerden lassen (eventuell an Hauptthread weiterreichen) und dann deinen Thread das NotifyServiceStatusChange mit dem gleichen Notify-Buffer wieder aufrufen lassen.

Ich hab damit vorhin mal rumgespielt und bin mit einem zusätzlichen Thread klargekommen.

Wenn du noch ein bißchen Zeit hast, kann ich dir vielleicht auch was von meine Code zukommen lassen. Er ist nur im Moment nicht wirklich lesbar.
ja das wär was feines wenn du das machen würdest ?
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Dienste und NotifyServiceStatusChangeW

  Alt 23. Aug 2011, 19:11
Ich seh zu, das ich den Code morgen aufräume. Dann sag ich wieder Bescheid.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

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

AW: Dienste und NotifyServiceStatusChangeW

  Alt 23. Aug 2011, 19:15
Ich seh zu, das ich den Code morgen aufräume. Dann sag ich wieder Bescheid.
Optimal! Schon mal vielen Dank im vorraus!
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Dienste und NotifyServiceStatusChangeW

  Alt 24. Aug 2011, 08:58
So ... hier (http/svn) der aufgeräumte Code.

Theoretisch ist für dich nur die Klasse TServiceStatusChangeThread interessant.
Wenn was nicht klar ist, sags einfach.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)

Geändert von chaosben (24. Aug 2011 um 09:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

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

AW: Dienste und NotifyServiceStatusChangeW

  Alt 24. Aug 2011, 14:54
Krass!
Ich muß da erstmal durchsteigen was Du da alles gebaut hast, so kompliziert hatte ichs mir nicht vorgestellt aber sieht gut aus. Ich hab grad mal einen kleinen Test gebaut für deine Kompo. Bei Uninstall bzw. Install wird der ServiceName jeweils 2 malig ausgegeben?

Neee war mein Fehler funktioniert bestens, schade das es sowas nicht für Processe gibt

Viele Grüße

Geändert von stOrM (24. Aug 2011 um 16:24 Uhr) Grund: Edit
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz