J'ai un programme de service de fenêtre et j'ai besoin de démarrer un autre exécutable, mais aucune des fonctions ne sont exécutées dans SvcMain. J'ai cherché la solution, mais trouvé quelque part écrit que l'initialisation devrait être achevée en moins d'une seconde ou sinon il ne sera pas exécuté createprocess
ils disent que pour cela fonctionne, vous devez définir SetServiceStatus
à , mais je ne peux pas trouver un document pour l'illustrer. Comment puis-je faire ceci?comment puis-je exécuter à partir du service
Répondre
Essayez d'exécuter un thread secondaire à partir de SvcMain et laissez ce thread effectuer le travail de démarrage de l'exécutable externe.
dois-je signaler l'état chaque fois du fil secondaire ??? – user428447
Peut-être que j'ai mal compris vos besoins. Vous pouvez les décrire plus en détail dans vos questions originales afin que les gens comprennent exactement ce que vous essayez de faire. – joekoyote
Fondamentalement, c'est aussi simple que cela puisse paraître. Avant d'appeler le CreateProcess
, créez un objet SERVICE_STATUS
, définissez le SERVICE_STATUS.dwCurrentState
sur SERVICE_START_PENDING
et appelez le SetServiceStatus(handle_to_your_service, &the_service_status);
.
Il est probablement plus facile de rendre l'objet SERVICE_STATUS
global. Vous appelez le SetServiceStatus
plus d'une fois, et la plupart des membres resteront constants au fil du temps. Par exemple. .dwServiceType
ne devrait pas changer du tout, et .dwControlsAccepted
ne le fait généralement pas.
- 1. Comment exécuter une application à partir du service Windows
- 2. Exécuter EXE à partir du client
- 3. Comment exécuter l'application jar à partir du registre de service de la fenêtre?
- 4. Exécuter le service Windows à partir de winform
- 5. exécuter un programme à partir d'un service Windows
- 6. Comment obtenir l'URL du client à partir du service WCF?
- 7. Comment exécuter un exe à partir du service Windows et arrêter le service lorsque le processus exe se ferme?
- 8. Retour 401 à partir du service WCF
- 9. Comment exécuter un script bash à partir du programme C++
- 10. Comment exécuter des tests NUnit à partir du code C#
- 11. comment exécuter l'application console à partir du formulaire Windows?
- 12. Comment exécuter la fonction PostgreSQL à partir du code VBA?
- 13. Comment exécuter une application xulrunner à partir du code java?
- 14. Comment faire pour exécuter l'ODE HelloWorld à partir du navigateur?
- 15. Android Bluetooth à partir du service
- 16. Processus lancé à partir du service ne peut pas exécuter Fusion et publipostage dans Win7
- 17. Redémarrer le service Windows à partir du service
- 18. Comment exécuter un service distant
- 19. Exécuter py.test à partir d'emacs
- 20. Comment exécuter du code sur chaque demande de service?
- 21. Comment exposer ma collection à partir du service Web (WCF)
- 22. Comment renvoyer un DataTable à partir du service Web .Net?
- 23. comment retourner arraylist d'objet personnalisé à partir du service Web?
- 24. Comment appeler un service Web à partir du contrôleur?
- 25. Comment lire le flux à partir du service WCF
- 26. Retour du fichier Docx à partir du service Web Asp.net
- 27. Comment autoriser une barre latérale à exécuter du code javascript à partir du document principal?
- 28. comment exécuter (F5) le service Windows à partir de Visual Studio
- 29. Exécuter un programme externe à partir du code C#
- 30. Chargement du code XML à partir du service Web
Si c'est pour Windows, et il semble qu'il en soit ainsi, merci de le marquer comme tel. –