Voici mon problème.
J'ai développé un script autoit qui effectue la fonction suivante :
-> il interroge un service sur un serveur qui récupère des informations sur des imprimantes industrielles (ex : nombre d'étiquettes imprimées),
-> je fait appel à un timer pour interroger le service périodiquement,
-> à réception de ces données, il les stockent dans une base SQL Server Lite en utilisant l'authentification NT pour l'accès à la base,
-> il utilise une interface graphique qui s'ouvre "cachée" avec une icône dans la traybar. Un clic sur l'option "show" de la traybar permet de montrer l'interface graphique (c'est une simple fenêtre avec les logs de l'application).
Le script fonctionne correctement.
Cependant, j'ai voulu transformer ce script en service pour qu'il tourne en automatique sur une machine.
J'ai utilisé pour cela l'include "services.au3" version "3.2.10++" créé par "Engine, Arcker, Shminkyboy et udgeen".
J'ai inclus mon code entre les lignes :
Code : Tout sélectionner
Func _Svc_Main()
main_init()
logPrint("main start")
logPrint("main loop. evnt=" & _WinAPI_WaitForSingleObject($service_stop_event, 0))
While $gServiceStateRunning
_principal() ;<============= APPEL DE MON CODE
WEnd
logPrint("main outer. evnt=" & _WinAPI_WaitForSingleObject($service_stop_event, 0))
_Service_Cleanup()
logPrint("main stopped.")
EndFunc ;==>mainQuand je démarre le service créé, le service se lance correctement mais plus rien ne se passe ! (
La base de donnée ne se remplie pas. Visiblement la connection au server sql ne fonctionne plus.
J'ai exécuté le service avec "interact with desktop" -> le programme se lance mais plante ensuite à cause de droits d'accès à la base sql.
J'ai exécuté le service avec des droits spécifiques (qui a les droits pour accèder à la base). Le programme ne plante plus, mais du coup : l'icone n'apparait plus dans la traybar et ça ne marche pas mieux.
Qu'en pensez vous ?
-> Cela vient-il du fait que mon programme utilise un timer et que l'include "services.au3" utilise aussi un timer ?
-> Problème de droit ?
-> Problème d'implémentation de mon code ?
Merci de votre aide !



