Откриване на събитие при стартиране на системата

Бих искал да изпълня процедура, която трябва да се задейства само при стартиране на Windows системата, а стартирането тук не означава стартиране на програмата. Има ли нещо, което мога да направя, за да задействам процедурата си. Ако е възможно, бих искал да избегна бъркане в регистъра. Използвам delphi 2010.


person megatr0n    schedule 06.06.2011    source източник


Отговори (1)


Има много опции, но всички ще включват настройки, които изискват администраторски права. Тези опции включват:

  1. Поставете рутината си в услуга, която е настроена да стартира автоматично. Това ще се стартира, когато системата се стартира и преди някой потребител да е влязъл.
  2. Добавете запис към HKLM\Software\Microsoft\Windows\CurrentVersion\Run. Това ще се изпълни, когато интерактивен потребител влезе.
  3. Добавете планирана задача с подходящ тригер, напр. At startup.
person David Heffernan    schedule 06.06.2011
comment
@user познавам. Ето защо казах, че се изпълнява, когато интерактивен потребител влезе. Това всъщност може да е добре за OP. Особено ако функцията на приложението, която OP иска да изпълни, изисква контекста, предоставен от влязъл потребител. - person David Heffernan; 06.06.2011
comment
Имате ли примерен код, който мога да погледна някъде? Наясно съм, че настройването на exe файла да се зарежда при стартиране, но изглежда, че опциите, които сте очертали, просто ще заредят exe и той няма да знае дали е бил задействан от двукратно щракване на потребител върху пряк път или стартиране на системата. Има разлика между стартиране на програма и стартиране на система (прозорци) и ме интересува само второто. - person megatr0n; 06.06.2011
comment
Ако искате различно поведение, когато се извиква при стартиране на системата, тогава можете просто да настроите вашата планирана задача, да речем, да предава аргумент на командния ред, за да покаже, че тя се извиква при стартиране. - person David Heffernan; 06.06.2011