Bonjour et merci pour le conseil.
J'ai effectivement trouvé une réponse à ma question sur le forum anglais (
ici)
L'auteur à en fait créé un fichier dll générique qui peu être enployer avec n'importe quel programme pour inscrire des évenements windows "propres". Il fourni également un UDF pour l'utilisé.
Ca marche relativement bien, même avec la petite erreur contenue dans sa fonction d'enregistrement de la source (je suis en cours d'inscription sur le forum pour lui faire part de ma découverte).
Pour corriger l'erreur vous même la fonction
_SetLog de
_CustomEventLog.au3
Code : Tout sélectionner
Func _SetLog($vName,$dll)
Local $vAppKey
$dll = _PathFull($dll)
If NOT FileExists($dll) then Return SetError(1,0,-1)
$vAppKey = Regread("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\" & $vName , "EventMessageFile")
If $vAppKey <> $dll then
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\" & $vName, "EventMessageFile", "REG_EXPAND_SZ",$dll)
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\" & $vName, "TypeSupported", "REG_DWORD",31)
Return $vName
Else
Return $vName
EndIf
EndFunc
doit être changé en :
Code : Tout sélectionner
Func _SetLog($vName,$dll)
Local $vAppKey
$dll = _PathFull($dll)
If NOT FileExists($dll) then Return SetError(1,0,-1)
$vAppKey = Regread("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\" & $vName , "EventMessageFile")
If $vAppKey <> $dll then
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\" & $vName, "EventMessageFile", "REG_EXPAND_SZ",$dll)
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\" & $vName, [color=#FF0000]"TypesSupported"[/color], "REG_DWORD",31)
Return $vName
Else
Return $vName
EndIf
EndFunc
Ca n'empeche pas le bon fonctionnement du programme mais toutes les autres clés de registres sont comme ça donc j'imagine qu'il y a une erreur.
Voici mon nouveau code si besoin :
► Afficher le texte
Code : Tout sélectionner
#include <_CustomEventLog.au3>
$pathDLL = @ScriptDir & "\AutoIteventmsg.dll"
FileInstall("AutoIteventmsg.dll", $pathDLL)
$MyEventName = "MonService"
$EventLog = _SetLog($MyEventName, $pathDLL)
_RegisterEvent($EventLog, $ERROR, $App_Error, "Un beau log d'erreur sans blabla inutile.")