Français
Forum

Programme comme letztes finissons?

 
allô Profaner...

Gibt es une Possibilité un Programme beim Herunterfahren des Rechners comme letztes finissons trop laisser?
 
19.05.2005  
 



Avez- Du - qui Reihenfolge bestimmen - dans qui Kernel den Prozessen qui kill.app.message sendet?

ou bien meinst Du so quelque chose comment statt Autostart Autoend?

de beidem wüsste je pas comment - wäre pour mich mais quand même intéressant quoi oui c'est ca Du meinst.

Salve.
 
19.05.2005  
 



Verstehe qui Frage pas so entier, avec ~WM_QUERYENDSESSION dans einem Callback, kannste intercepter si Windows finissez wird. Du selber comme letztes, au maximum comme Service ou bien Skript sur NT-Systemen. je crois mais cela trifft es encore pas, ou bien ???
 
19.05.2005  
 



~WM_QUERYENDSESSION  ist aussi pas cela goldene vom ouf - là on dans NT-Systemen une QUERYENDSESSIONTimeout de 0 einstellen peux. alors sûrement ist solch Callback aussi pas umbedingt - aussi si presque ne...aucune Schwein den QUERYENDSESSIONTimeout de 20.000 sur 0 (ms) mets.

je cependant habs getan.

Salve.
 
19.05.2005  
 



[quote-part:0ca25bf230=iF]Avez- Du - qui Reihenfolge bestimmen - dans qui Kernel den Prozessen qui kill.app.message sendet?
[/quote-part:0ca25bf230]
allô IF...

oui, oui c'est ca. cela hängt u.a. de qui Startreihenfolge qui Prozesse ab. je vais la fois entier schwer en aus, qui cela gar pas ou bien seulement avec Trick allez.

@Thomas...
[quote-part:0ca25bf230]
Verstehe qui Frage pas so entier, avec ~WM_QUERYENDSESSION dans einem Callback, kannste intercepter si Windows finissez wird.
[/quote-part:0ca25bf230]
Im Augenblick regelt cela cela Programme sur un Subclassing de ~WM_QUERYENDSESSION par une zweite EXE, qui seul seulement pour cela Subclassing zuständig ist. je voulais la fois regarder, si es là encore irgendwelche anderen Opportunités gibt, comme cela Herunterfahren abzufangen.
[quote-part:0ca25bf230]
Du selber comme letztes, au maximum comme Service ou bien Skript sur NT-Systemen. je crois mais cela trifft es encore pas, ou bien ???
[/quote-part:0ca25bf230]
oui c'est ca um NT-Systeme ca va. Beim Herunterfahren des Systems wird oui à chaque Programme qui ~WM_QUERYENDSESSION gesendet.
cela Programme soll absolument solange courir, comment Windows fonctionne, c'est important!
si je es irgendwie erreichen pourrait, qui cela Prog sous NT seulement comme letztes qui ~WM_QUERYENDSESSION erhält, pourrait je mir cela Subclassing sparen et einiges serait quelque chose sauberer durchlaufen...
 
19.05.2005  
 




Michael
Wodrich
allô Andreas,

mir schmiert ab et à qui calculateur ab (avec Prozessen überladen) et voilà mir aufgefallen:

qui FireFox ist qui dernier, qui sich verabschiedet, là je toujours plusieurs Tabs offen habe. FireFox fragt maintenant, si il wirklich finissons soll. si je qui Frage sur dem Bildschirm lasse, ensuite ist sauf dem Fuchs rien plus aktiv.

dans Profan gibt es doch SetCloseMsg, vieleicht hilft cela oui.

MfG
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
19.05.2005  
 



allô Michael...

SetCloseMsg fällt sowieso flach, là je zur Zeit XProfan besitze.
FireFox pourrait cela sur cela Subclassing de ~WM_QUERYENDSESSION régulariser - cela voudrais je pas, là je dans mon Programme ensuite trop viel selbst régulariser devrait.
 
20.05.2005  
 



allô Thomas...

[quote-part:e3a546d485]
Du selber comme letztes, au maximum comme Service ou bien Skript sur NT-Systemen. je crois mais cela trifft es encore pas, ou bien ???
[/quote-part:e3a546d485]
Eventuell trifft es cela doch. sous Windows9x wäre oui c'est ca cela qui Solution (RegisterServiceProcess), là brauche je es mais pas. un weiteres Problem wäre, cela mon Service un la fenêtre hätte. je pourrait mir présenter, cela NT là peut-être. avec den Zugriffsrechten quelque chose streikt - là devrait je peut-être ensuite encore un un peu tricksen...
malheureusement habe je keinen blassen Schimmer, comment je sous NT une Service installiere. peux du - ou bien sonst quelqu'un - mir peut-être sur qui Sprünge aider?
 
20.05.2005  
 



[quote-part:6298a5d2c1=AH]
malheureusement habe je keinen blassen Schimmer, comment je sous NT une Service installiere. peux du - ou bien sonst quelqu'un - mir peut-être sur qui Sprünge aider?[/quote-part:6298a5d2c1]
Hab Dir quoi aus dem CodeArchiv pour PureBasic rausgesucht. peux es Dir erstmal regarder, peut-être aussi selber übertragen, ansonsten meldest toi nochmal. Ist pas schwer (pour mich ist XProfan schwerer )
KompilierenMarqueSéparation
; English forum:
; Author: Richard Eikeland
; Date: 12. April 2003
; angepaßt an 3.93 ts-soft
; Apr. 12, 2003
; Converted to PB by Richard Eikeland
; This code is posted as is with out any waranties.
;
#SERVICE_WIN32_OWN_PROCESS = $10
#SERVICE_WIN32_SHARE_PROCESS = $20
#SERVICE_WIN32 = #SERVICE_WIN32_OWN_PROCESS + #SERVICE_WIN32_SHARE_PROCESS
#SERVICE_ACCEPT_STOP = $1
#SERVICE_ACCEPT_PAUSE_CONTINUE = $2
#SERVICE_ACCEPT_SHUTDOWN = $4
#SC_MANAGER_CONNECT = $1
#SC_MANAGER_CREATE_SERVICE = $2
#SC_MANAGER_ENUMERATE_SERVICE = $4
#SC_MANAGER_LOCK = $8
#SC_MANAGER_QUERY_LOCK_STATUS = $10
#SC_MANAGER_MODIFY_BOOT_CONFIG = $20
#STANDARD_RIGHTS_REQUIRED = $F0000
#SERVICE_QUERY_CONFIG = $1
#SERVICE_CHANGE_CONFIG = $2
#SERVICE_QUERY_STATUS = $4
#SERVICE_ENUMERATE_DEPENDENTS = $8
#SERVICE_START = $10
#SERVICE_STOP = $20
#SERVICE_PAUSE_CONTINUE = $40
#SERVICE_INTERROGATE = $80
#SERVICE_USER_DEFINED_CONTROL = $100
;#SERVICE_ALL_ACCESS = #STANDARD_RIGHTS_REQUIRED | #SERVICE_QUERY_CONFIG | #SERVICE_CHANGE_CONFIG | #SERVICE_QUERY_STATUS | #SERVICE_ENUMERATE_DEPENDENTS | #SERVICE_START | #SERVICE_STOP | #SERVICE_PAUSE_CONTINUE | #SERVICE_INTERROGATE |#SERVICE_USER_DEFINED_CONTROL
#SERVICE_DEMAND_START = $3
#SERVICE_ERROR_NORMAL = $1
;- SERVICE_CONTROL
#SERVICE_CONTROL_STOP = $1
#SERVICE_CONTROL_PAUSE = $2
#SERVICE_CONTROL_CONTINUE = $3
#SERVICE_CONTROL_INTERROGATE = $4
#SERVICE_CONTROL_SHUTDOWN = $5
;-SERVICE_STATE
#SERVICE_STOPPED = $1
#SERVICE_START_PENDING = $2
#SERVICE_STOP_PENDING = $3
#SERVICE_RUNNING = $4
#SERVICE_CONTINUE_PENDING = $5
#SERVICE_PAUSE_PENDING = $6
#SERVICE_PAUSED = $7
Global ServiceStatus.SERVICE_STATUS, hServiceStatus.l, SERVICE_NAME.s, Finish.l
Declare Handler(fdwControl.l)
Declare ServiceMain(dwArgc.l, lpszArgv.l)
Declare WriteLog(Value.s)
Procedure Main()
hSCManager.l
hService.l
ServiceTableEntry.SERVICE_TABLE_ENTRY
b.l
cmd.s
;Change SERVICE_NAME and app name as needed
AppPath.s = "C:DevPureBasicworkdirNTServiceMyService.exe"
SERVICE_NAME = "MyService"
cmd = Trim(LCase(ProgramParameter()))

Select cmd

    Case "install" ;Install service on machine
    hSCManager = OpenSCManager_(0, 0, #SC_MANAGER_CREATE_SERVICE)
    hService = CreateService_(hSCManager, SERVICE_NAME, SERVICE_NAME, #SERVICE_ALL_ACCESS, #SERVICE_WIN32_OWN_PROCESS, #SERVICE_DEMAND_START, #SERVICE_ERROR_NORMAL, AppPath, 0, 0, 0, 0, 0)
    CloseServiceHandle_(hService)
    CloseServiceHandle_(hSCManager)
    Finish = 1
    Case "uninstall" ;Remove service from machine
    hSCManager = OpenSCManager_(0, 0, #SC_MANAGER_CREATE_SERVICE)
    hService = OpenService_(hSCManager, SERVICE_NAME, #SERVICE_ALL_ACCESS)
    DeleteService_(hService)
    CloseServiceHandle_(hService)
    CloseServiceHandle_(hSCManager)
    Finish = 1
    Default
    *sname.s = SERVICE_NAME
    ;Start the service
    ServiceTableEntrylpServiceName = @SERVICE_NAME
    ServiceTableEntrylpServiceProc = @ServiceMain()
    b = StartServiceCtrlDispatcher_(@ServiceTableEntry)
    WriteLog("Starting Service bResult=" + Str(b))

    If b = 0

        Finish = 1

    EndIf

EndSelect

Repeat

Until Finish =1

End
EndProcedure
Procedure Handler(fdwControl.l)
b.l

Select fdwControl

    Case #SERVICE_CONTROL_PAUSE
    ;** Do whatever it takes To pause here.
    ServiceStatusdwCurrentState = #SERVICE_PAUSED
    Case #SERVICE_CONTROL_CONTINUE
    ;** Do whatever it takes To continue here.
    ServiceStatusdwCurrentState = #SERVICE_RUNNING
    Case #SERVICE_CONTROL_STOP
    ServiceStatusdwWin32ExitCode = 0
    ServiceStatusdwCurrentState = #SERVICE_STOP_PENDING
    ServiceStatusdwCheckPoint = 0
    ServiceStatusdwWaitHint = 0 ;Might want a time estimate
    b = SetServiceStatus_(hServiceStatus, ServiceStatus)
    ;** Do whatever it takes to stop here.
    Finish = 1
    ServiceStatusdwCurrentState = #SERVICE_STOPPED
    Case #SERVICE_CONTROL_INTERROGATE
    ;Fall through To send current status.
    Finish = 1
    ;Else

EndSelect

;Send current status.
b = SetServiceStatus_(hServiceStatus, ServiceStatus)
EndProcedure
Procedure ServiceMain(dwArgc.l, lpszArgv.l)
b.l
WriteLog("ServiceMain")
;Set initial state
ServiceStatusdwServiceType = #SERVICE_WIN32_OWN_PROCESS
ServiceStatusdwCurrentState = #SERVICE_START_PENDING
ServiceStatusdwControlsAccepted = #SERVICE_ACCEPT_STOP | #SERVICE_ACCEPT_PAUSE_CONTINUE | #SERVICE_ACCEPT_SHUTDOWN
ServiceStatusdwWin32ExitCode = 0
ServiceStatusdwServiceSpecificExitCode = 0
ServiceStatusdwCheckPoint = 0
ServiceStatusdwWaitHint = 0
hServiceStatus = RegisterServiceCtrlHandler_(SERVICE_NAME, @Handler())
ServiceStatusdwCurrentState = #SERVICE_START_PENDING
b = SetServiceStatus_(hServiceStatus, ServiceStatus)
;** Do Initialization Here
ServiceStatusdwCurrentState = #SERVICE_RUNNING
b = SetServiceStatus_(hServiceStatus, ServiceStatus)
;** Perform tasks -- If none exit
;** If an error occurs the following should be used for shutting
;** down:
; SetServerStatus SERVICE_STOP_PENDING
; Clean up
; SetServerStatus SERVICE_STOPPED
EndProcedure
Procedure WriteLog(Value.s)
sfile.s = "MyServiceLog.txt"

If OpenFile(0, sfile)

    WriteStringN(Value)
    CloseFile(0)

Else

    If CreateFile(0,sfile)

        WriteStringN(Value)
        CloseFile(0)

    EndIf

EndIf

EndProcedure
Main()

sais maintenant bloß pas quoi cela HL avec dem Code pouvoir

Salut
thomas
(ts-soft)
 
20.05.2005  
 



qui Code wird nix nutzen - là wirken seulement PureBasic-Befehle pour den PureBasic-Compiler - et qui compilé oui native.

dans C++ z.B. ists eigendlich aussi seulement une Projekteinstellung - um comme Dienst trop compilieren.

Salve.
 
20.05.2005  
 



*.l sommes long
*.s sommes string
*.b sommes byte
*allô hierbei handelt es sich um strukturen

#xxxx sommes konstanten

funktionen avec _ am Ende sommes Api-funktionen

Salut
Thomas

 
20.05.2005  
 



[quote-part:676b84de14=iF]qui Code wird nix nutzen - là wirken seulement PureBasic-Befehle pour den PureBasic-Compiler - et qui compilé oui native.

dans C++ z.B. ists eigendlich aussi seulement une Projekteinstellung - um comme Dienst trop compilieren.

Salve.[/quote-part:676b84de14]là liegste quelque chose verkehrt, denke je, sommes seulement API appel avec gefüllten Strukturen, sowie auswertung qui übergebenen Commandos. Sollte machbar son. cela Programme wird seulement comme Service registriert et reagiert entsprechen. si AH sich cela angesehen hat, et meint es könne so aller, werde je es pour XProfan umsetzen, hoffe je

Salut
Thomas
 
20.05.2005  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

3.878 Views

Untitledvor 0 min.
H.Brill18.11.2023
W.L.05.07.2017

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie