Français
Forum

Programme comme letztes finissons?

 
- page 1 -


allô Profaner...

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



 
- page 1 -


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  
 



 
- page 2 -


ok.

Salve.
 
20.05.2005  
 




CB
allô Andreas!
[quote-part:4cca043a78]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:4cca043a78]
entier simple: (Admin)
Systemsteuerung - Verwaltung - Dienste.
Ggf. dois Du auparavant dans Menu anpassen: Verwaltung Montrer aktivieren.
Re. souris sur une Dienst - Eigenschaften.
et déjà peux Du toi austoben.

Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
20.05.2005  
 



Bestens Dank pour eure Mithilfe, voilà déjà très viel brauchbares dabei.

@Thomas:
dans Profan kenne je mich droite bien aus - chez anderen Sprachen sieht cela déjà schlechter aus .
qui APIs, qui dans deinem Voir le texte source vorkommen, entsprechen eigentlich denen, qui je mir jusqu'alors angesehen habe (CreateService, OpenSCManager). qui l'affaire devrait alors aussi dans Profan machbar son. Sämtliche Flags stehen scheinbar aussi avec drin (habs seulement survolés), scheint alors im Prinzip brauchbar trop son...

@Christian: merci pour den Tipp, je werde la fois regarder, si cela sous 2000 aussi allez!
 
20.05.2005  
 



allô Andreas,
hab la fois un le morceau des Codes pour XProfan traduit, so cela qui reste eigentlich simple trop ersehen ist. je hoffe es hilft Dir plus.
KompilierenMarqueSéparation
 $H windows.ph
 $H Structs.ph
Global ServiceStatus.SERVICE_STATUS, hServiceStatus.l, SERVICE_NAME.s, Finish.l
Declare ServiceStatus# , hServiceStatus&, SERVICE_NAME$, Finish&
Dim ServiceStatus#, ~SERVICE_STATUS
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

Proc Handler

    Parameters fdwControl&

    If fdwControl& = ~SERVICE_CONTROL_PAUSE

        ** Do whatever it takes To pause here.
        ServiceStatus#.dwCurrentState = ~SERVICE_PAUSED

    ElseIf fdwControl& = ~SERVICE_CONTROL_CONTINUE

        ** Do whatever it takes To continue here.
        ServiceStatus#.dwCurrentState = ~SERVICE_RUNNING

    ElseIf fdwControl& = ~SERVICE_CONTROL_STOP

    ElseIf fdwControl& = ~SERVICE_CONTROL_INTERROGATE

    EndIf

    ~SetServiceStatus(hServiceStatus&, Addr(ServiceStatus#))

../references-fonction/XProfan/endproc/'>ENDPROC


Ist seulement soviel, comment pour qui Übersetzung erforderlich ist. Solltest Du pas klarkommen, werde Je l' reste aussi anpassen, cela peux ensuite mais quelque chose dauern, là je encore autre Dinge erledigen doit

Salut
Thomas
 
20.05.2005  
 



... peux quelque chose dauern, jusqu'à je mich avec cela beschäftigen peux, je denke mais, je viens bien sûr. Besten Dank!
 
20.05.2005  
 



qui Solution pour mon Problem scheint qui API SetProcessShutdownParameters trop son.
 
15.07.2005  
 



Ok, cela était qui Solution. avec cette API läßt sich festlegen, quand oui c'est ca mon Anwendung beim Herunterfahren finissez wird.
 
16.07.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.883 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