Comment Planifier une tâche par programmation
Comment puis-je planifier une tâche à l'aide de delphi 7 comme Google updater?
Je ne suis pas en utilisant le registre car il est détecté par l'antivirus Kaspersky comme une fausse alarme.
Tout ce que je ajouter dans le registre comme une start-up élément sera détecté comme un cheval de troie, donc j'ai décidé d'utiliser l'horaire de la tâche
- Utiliser le Planificateur de Tâches API. La documentation MSDN pour qui j'ai un lien contient de nombreux exemples.
- On doit se demander pourquoi vous obtenez signalé comme un cheval de Troie. Peut-être il y a un réel problème.
- bien prog n'est pas nocif à tous son application très simple mais Kaspersky détecter application de Troie si l'utilisation de RegSetValueEx Software\Microsoft\Windows\CurrentVersion\Run pour la base de registre n'importe où dans le code. le planificateur de tâches de l'API ne u un exemple de Delphi ?
- Parce que beaucoup de logiciels malveillants, essayez d'ajouter des entrées à la \Run, la plupart des AV va le marquer comme un comportement suspect. En outre, les programmes, il y aura ralentir le démarrage du système. Préférable de les ajouter en tant que tâche planifiée et de les exécuter lorsque le système est inactif, de préférence. De cette façon, vous offrir une "meilleure expérience utilisateur". Ne signifie pas que votre application est le seul cours d'exécution sur le système d'un utilisateur 🙂
- exactement ! puis-je obtenir toute tâche planifiée de l'API de travail exemple pour Delphi
- Avez-vous essayez de regarder l'un des exemples à partir de MSDN?
- vouliez-vous dire celui-ci ? Travail sur elle..
- Par exemple que l'on pourrait faire. Je remarque que l'utilisateur n'a pas dit précisément ce type de tâche est souhaitée.
- Ma conclusion personnelle, je préfère
command line
utilitaire pour créer des tâches planifiées. - j'ai essayé ce
ShellExecute(0, NIL, 'cmd.exe', Pchar('/C SCHTASKS /CREATE /TN "myjob" /TR ' + '"' + QuotedStr(Pchar('C:\Program Files\myapp\myapp.exe')) + '" /SC ONSTART /RU "System"'), Nil, SW_SHOWNORMAL);
mais l'application ne fonctionne pas comme d'ordinateur a commencé, j'ai réellement besoin à la fois d'xp et windows 7 compatible - Vous avez eu un supplément de citations dans le nom de fichier de paramètre. Voir ma réponse ci-dessous 😉
- Peut-être que vous devriez obtenir une signature numérique sur votre application si Kaspersky est l'attraper.
Vous devez vous connecter pour publier un commentaire.
Le morceau de code suivant montre comment supprimer et créer la tâche qui va lancer l'application au démarrage du système avec les privilèges du système. Il utilise la ligne de commande suivante:
Cependant le Planificateur de Tâches depuis Windows Vista prend en charge la force de la création des tâches, je ne voudrais pas l'utiliser pour assurer la compatibilité avec Windows XP, où cet indicateur n'existe pas.
Ainsi l'exemple ci-dessous tente de supprimer la tâche (si elle existe déjà) et puis créer un nouveau.
Il exécute ces commandes:
Et voici le code:
/RP
commutateur de commande). Si votre compte n'a pas reçu un mot de passe encore, vous devez l'affecter. (Un sans mot de passe de compte d'utilisateur ne peut pas être utilisé pour la planification de l'.)Compris le problème, ici, il fonctionne très bien
Testé sur windows 7 Pro si quelqu'un peut tester pour moi sur XP PRO b s'est félicité de
The new task has been created, but may not run because the account information could not be set. The specific error is: 0x80070005: Access is denied.
Et je suis un administrateur sans mot de passe sur cet ordinateur. Alors, vraiment, si vous n'avez pas de mot de passe de votre compte, alors il ne fonctionnera pas. Il serait très élevé de risque de sécurité pour votre système.