Win9x services


Cet article montre comment écrire un service pour Win9X
Services
l'Un des plus caractéristiques bénéfiques sur windows Nt et windows 2000 est la capacité d'exécuter des applications en arrière-plan, le traitement des requêtes en coulisses.
C'est une honte que Windows95/98 n'ont pas la même fonction, c'est évidemment parce qu'il n'était pas censé être un serveur de réseau en tout genre. Toutefois, il est parfois nécessaire de disposer d'une tâche en cours d'exécution en tant que service sur Windows95/98, de sorte que le peuple de nice à Microsoft a décidé de mettre en œuvre ce que je considère être un 'hack'.
Écrivez votre application, dans le projet de source de le faire.

begin
& nbsp & nbsp Application.Initialiser
& nbsp & nbsp Application.ShowMainForm := False //< & Ajouter à cela !!

Ceci empêchera votre formulaire principal apparaissant lorsque votre application est exécutée.
Maintenant, dans le registre

\Software\MicroSoft\Windows\CurrentVersion\Run
Faire une chaîne de caractères entrée pointant vers votre application.
Enfin, dans le OnCreate de votre formulaire d'appel
InternalRegisterServiceProcess(True)
Le code pour InternalRegisterServiceProcess est comme suit.
type
& nbsp & nbsp TServiceFunc = function (aProcessID: DWord

& ! & ! & ! & nbsp aType: DWord): WordBool stdcall
fonction de InternalRegisterServiceProcess(
& nbsp & nbsp const StartService : Boolean) : Boolean
var
& nbsp & nbsp HKernel32: THandle
& nbsp & nbsp P: TServiceFunc
& nbsp & nbsp dwProcess: DWord
& nbsp & nbsp dwType: DWord
begin
& nbsp & nbsp Result := False
& nbsp & nbsp HKernel32 := LoadLibrary('Kernel32.dll')
& nbsp & nbsp si HKernel32 > 0, alors
& nbsp & nbsp essayer
& ! & ! & ! & nbsp P := GetProcAddress(HKernel32,'RegisterServiceProcess')
& ! & ! & ! & nbsp si Affecté(P)
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp dwProcess := GetCurrentProcessID
& ! & ! & ! & ! & ! & nbsp dwType := 0
& ! & ! & ! & ! & ! & nbsp cas StartService de
& ! & ! & ! & ! & ! & ! & ! & nbsp Vrai : dwType := 1
& ! & ! & ! & ! & ! & ! & ! & nbsp Faux : dwType := 0
& ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & nbsp Résultat := P(dwProcess, dwType)
& ! & ! & ! & nbsp fin
& nbsp & nbsp enfin
& ! & ! & ! & nbsp FreeLibrary(HKernel32)
& nbsp & nbsp fin
fin









Win9x services


Win9x services : Plusieurs milliers de conseils pour vous faciliter la vie.


Cet article montre comment ecrire un service pour Win9X
Services
l'Un des plus caracteristiques benefiques sur windows Nt et windows 2000 est la capacite d'executer des applications en arriere-plan, le traitement des requetes en coulisses.
C'est une honte que Windows95/98 n'ont pas la meme fonction, c'est evidemment parce qu'il n'etait pas cense etre un serveur de reseau en tout genre. Toutefois, il est parfois necessaire de disposer d'une tache en cours d'execution en tant que service sur Windows95/98, de sorte que le peuple de nice a Microsoft a decide de mettre en œuvre ce que je considere etre un 'hack'.
Ecrivez votre application, dans le projet de source de le faire.

begin
& nbsp & nbsp Application.Initialiser
& nbsp & nbsp Application.ShowMainForm := False //< & Ajouter a cela !!

Ceci empechera votre formulaire principal apparaissant lorsque votre application est executee.
Maintenant, dans le registre

\Software\MicroSoft\Windows\CurrentVersion\Run
Faire une chaîne de caracteres entree pointant vers votre application.
Enfin, dans le OnCreate de votre formulaire d'appel
InternalRegisterServiceProcess(True)
Le code pour InternalRegisterServiceProcess est comme suit.
type
& nbsp & nbsp TServiceFunc = function (aProcessID: DWord

& ! & ! & ! & nbsp aType: DWord): WordBool stdcall
fonction de InternalRegisterServiceProcess(
& nbsp & nbsp const StartService : Boolean) : Boolean
var
& nbsp & nbsp HKernel32: THandle
& nbsp & nbsp P: TServiceFunc
& nbsp & nbsp dwProcess: DWord
& nbsp & nbsp dwType: DWord
begin
& nbsp & nbsp Result := False
& nbsp & nbsp HKernel32 := LoadLibrary('Kernel32.dll')
& nbsp & nbsp si HKernel32 > 0, alors
& nbsp & nbsp essayer
& ! & ! & ! & nbsp P := GetProcAddress(HKernel32,'RegisterServiceProcess')
& ! & ! & ! & nbsp si Affecte(P)
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp dwProcess := GetCurrentProcessID
& ! & ! & ! & ! & ! & nbsp dwType := 0
& ! & ! & ! & ! & ! & nbsp cas StartService de
& ! & ! & ! & ! & ! & ! & ! & nbsp Vrai : dwType := 1
& ! & ! & ! & ! & ! & ! & ! & nbsp Faux : dwType := 0
& ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & nbsp Resultat := P(dwProcess, dwType)
& ! & ! & ! & nbsp fin
& nbsp & nbsp enfin
& ! & ! & ! & nbsp FreeLibrary(HKernel32)
& nbsp & nbsp fin
fin


Win9x services

Win9x services : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation