¿Cómo puedo programar una tarea usando delphi 7 como Google updater?
No estoy usando el registro porque el antivirus Kaspersky lo detecta como una falsa alarma.
Todo lo que agregue en el registro como elemento de arranque se detecta como troyano, así que decidí usar el programa de tareasCómo programar una tarea mediante programación
Respuesta
El siguiente fragmento de código muestra cómo eliminar y crear la tarea que ejecutará la aplicación en el sistema inicio con privilegios de sistema. Utiliza la siguiente línea de comando:
Sin embargo, el Programador de tareas desde Windows Vista admite la creación forzada de tareas, no lo usaría para compatibilidad con Windows XP, donde este indicador no existe. El siguiente ejemplo intenta eliminar la tarea (si ya existe) y luego crea la nueva.
ejecuta estos comandos:
schtasks/borrar/f/tn "myjob"
schtasks/crear/tn "myjob"/tr "C: \ aplicación.exe"/sc ONSTART/"Sistema" ru/eliminar - eliminar la tarea
/f - suprimir la confirmación
/crear - crear parámetro de tarea
/tn - nombre único de la tarea
/tr - nombre de archivo de un archivo ejecutable
/sc - tipo de programación, ONSTART - ejecutarse en el inicio
/ru - tarea se ejecute en los permisos del usuario especificado
Y aquí está el código:
uses
ShellAPI;
procedure ScheduleRunAtStartup(const ATaskName: string; const AFileName: string;
const AUserAccount: string);
begin
ShellExecute(0, nil, 'schtasks', PChar('/delete /f /tn "' + ATaskName + '"'),
nil, SW_HIDE);
ShellExecute(0, nil, 'schtasks', PChar('/create /tn "' + ATaskName + '" ' +
'/tr "' + AFileName + '" /sc ONSTART /ru "' + AUserAccount + '"'),
nil, SW_HIDE);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ScheduleRunAtStartup('myjob', 'C:\Application.exe', 'System');
end;
Bueno, se completó satisfactoriamente en la tarea programada, pero no se ejecutará en Windows, espero que mi (kaspersky antivirus) no bloquee la tarea programada. qué hacer ? Traté de reemplazar al usuario del "sistema" porque mi usuario actual inició sesión pero aún falló. – user1023395
@ user1023395: si desea usar su propia cuenta de usuario, también deberá proporcionar la contraseña correspondiente (utilizando el interruptor de comando '/ RP'). Si su cuenta todavía no tiene una contraseña, tendrá que asignarla. (No se puede usar una cuenta de usuario sin contraseña con la programación.) –
Confieso que no he probado si la aplicación se ejecuta (no tengo mucha experiencia con tareas programadas), solo la he probado si se han creado. Y @AndriyM tiene razón, tendrá que tener y conocer la contraseña de la cuenta o modificar la configuración del registro. Una es clara, las tareas programadas sin esta protección de contraseña serían un gran agujero para la seguridad de su sistema. – TLama
averiguado el problema aquí es que funciona bien
probado en windows 7 Pro si alguien puede probar para mí en XP PRO sería apreciada ayb
procedure ScheduleRunAtStartup(const ATaskName: string; const AFileName: string;
const GetPCName: string ; Const GetPCUser: String);
begin
ShellExecute(0, nil, 'schtasks', PChar('/delete /f /tn "' + ATaskName + '"'),
nil, SW_HIDE);
ShellExecute(0, nil, 'schtasks', PChar('/create /tn "' + ATaskName + '" ' + '/tr "' + QuotedStr(AFileName) + '" /sc ONLOGON /ru "' + GetPCName+'\'+GetPCUser + '"'), nil, SW_HIDE)
end;
Lo he intentado en Windows XP Professional SP3, pero no, no funciona sin contraseña. Es lo mismo que si creara una tarea programada a través del Asistente de tareas programadas. Cuando terminé el asistente, recibí el mensaje de advertencia 'La nueva tarea se ha creado, pero no se puede ejecutar porque no se pudo establecer la información de la cuenta. El error específico es: 0x80070005: Acceso denegado. Y soy administrador sin contraseña en esa máquina. Entonces, realmente, si no tienes una contraseña establecida en tu cuenta, entonces no funcionará. Sería un riesgo de seguridad muy alto para su sistema. – TLama
Esto no es una respuesta. Debería indicar * por qué * es una respuesta en lugar de simplemente borrar un código (y pedirle a otros que lo prueben en otras plataformas lo hace incluso * más * no una respuesta. – casperOne
sin quotedstr (AFileName) estableció la ruta como parámetro para que no ejecutaría la prueba de aplicación en Windows 7 @TLAMA reemplazar ONSTART con ONLOGON – user1023395
- 1. ¿Cómo programar (y restablecer) una tarea mediante programación con SpringFramwork?
- 2. Cómo programar una tarea Maven
- 3. Programar mediante programación una etiqueta de varias líneas
- 4. ¿Cómo programar una tarea periódica en Java?
- 5. Cómo programar una tarea en segundo plano
- 6. Programar tarea en android
- 7. ¿Cómo detengo/inicio una tarea programada en una computadora remota mediante programación?
- 8. ¿Consulta mediante programación MSDN?
- 9. Cómo programar una tarea para su futura ejecución en la Tarea Biblioteca paralela
- 10. Cómo reiniciar mediante programación?
- 11. Cómo establecer una carga de archivo mediante programación utilizando Paperclip
- 12. Cómo interactuar con una aplicación mediante programación
- 13. Cómo agregar una referencia mediante programación
- 14. ¿Cómo ocultar una vista mediante programación?
- 15. ¿Cómo se puede programar mediante programación un HTML SELECT para desplegar (por ejemplo, debido al mouseover)?
- 16. Cómo programar la tarea para el inicio de cada hora
- 17. ¿Cómo programar una consulta MySQL?
- 18. Cómo ejecutar NUnit mediante programación
- 19. ¿Cómo obtener privilegios de root mediante programación?
- 20. mediante programación en C#
- 21. Hacer una llamada telefónica mediante programación
- 22. Rechazar una llamada mediante programación en BlackBerry
- 23. crecer mediante programación una figura en matplotlib
- 24. Seleccionar mediante programación una fila en JTable
- 25. ¿Cómo puedo programar una GUI en MATLAB?
- 26. creando uiview mediante programación?
- 27. Deshabilitar mediante programación window.location.reload?
- 28. Editando Web.config mediante programación
- 29. Generar propiedades mediante programación
- 30. Cerrar mediante programación una aplicación de AIR
Utilice la API [Programador de tareas] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa383614 (v = vs.85) .aspx). La documentación de MSDN a la que enlace contiene muchos ejemplos. –
Uno tiene que preguntarse por qué está siendo marcado como un troyano. Tal vez hay un problema real. –
bien prog no es dañino en absoluto su aplicación muy simple pero Kasper-sky detecta la aplicación como troyano si usa ** RegSetValueEx Software \ Microsoft \ Windows \ CurrentVersion \ Run ** para configurar el registro en cualquier lugar del código. API del programador de tareas ¿tiene algún ejemplo en ejecución para Delphi? – user1023395