Как да напишете свой собствен инсталатор
Стандартен град в Бутово: LCD стандартен град Бутово nationalrealty.ru.
Деинсталиране
И така, нека поговорим малко за деинсталирането.
В идеалния случай деинсталирането трябва да върне компютъра във вида, в който беше преди инсталацията. На практика това може да не е възможно за всички приложения, особено ако споделят ресурси с други програми.
Програмата за деинсталиране може, въз основа на този журнал, да деинсталира продукта.
Но всичко това са очевидни неща, както много други неща при деинсталирането. Можем да посочим за всяко действие на инсталационната програма действието, което да се предприеме по време на деинсталирането.
Създаване на директория Директория. | Изтриване на директория. |
Копирайте файла Sourcr в Target. | Изтриване на целевия файл. |
Копирайте споделения файл Sourcr в Target. Увеличете брояча на инсталиране с 1, ако вече съществува, или го задайте на 1 в противен случай. | Намалете инсталационния брояч с 1. Ако е 0, изтрийте целевия файл |
Създайте ключов раздел в системния регистър. | Изтрийте раздела Ключ в системния регистър. |
Създайте параметър стойност в системния регистър. | Изтрийте стойността в системния регистър. |
Променете стойността на параметъра Value от Old на New. | Задайте стойност на Old. |
Създайте нов INI файл. | Изтрийте INI файла. |
Създайте раздел в INI файла. | Изтриване на раздел в INI файл. |
Запишете параметъра в раздел на INI файла. Ако параметърът вече съществува, запазете съдържанието му. | Ако предишното съдържание на параметъра е запазено в дневника, ние го записваме. В противен случай премахнете параметъра от секцията. |
Обърнете внимание, че при деинсталиране дневникът трябва да се обработва в обратен ред. Например, ако по време на инсталацията първо е създадена директория и след това в нея са копирани няколко файла, тогава по време на деинсталирането първо се изтриват тези файлове, а след това директорията.
Статията за системния регистър ви казва как да поставите вашата програма в списъка с програми за деинсталиране (Контролен панел / Добавяне или премахване на програми).
Какво друго? Най-важното е, че сте измъчвани от премахването на самата програма за деинсталиране от твърдия диск. Факт е, че програмата не може да бъде премахната, докато работи - Windows затваря достъпа до нея. Какво да правя? Ако погледнем как обикновените инсталатори (като InstallShield и Wise) се справят с тази ситуация, виждаме, че те оставят програмата за деинсталиране на диска. Той става споделен ресурс, част от операционната система (поставен в директорията на Windows). Например имам C:\WINDOWS\UNINST16.EXE, C:\WINDOWS\UNINST.EXE (InstallShield) и C:\WINDOWS\UNWISE.EXE (Wise) на моето устройство. Това е доста правилно решение, тъй като много програми използват тези инсталатори. Можем да направим същото, като променим името на програмата за деинсталиране (uninst и unwise вече са заети :)
Можем също да копираме програмата за деинсталиране във временна директория и да я стартираме от там. Тя, разбира се, няма да бъде унищожена, но следващия път, когато временната директория бъде почистена, потребителят ще я изтрие. Какви проблеми могат да възникнат по пътя? Моля, обърнете внимание, че ще трябва да копираме програмата за деинсталиране във временна директория само по време на инсталацията - в противен случай потребителят може да я изтрие много по-рано, отколкото му е необходима за деинсталиране(и откъде знае какъв файл е?). Това означава, че опцията може да бъде: копирайте програмата, стартирайте я от нова директория и завършете текущото копие. Тук се крие проблемът: веднага щом нашата програма приключи, фокусът ще бъде прехвърлен обратно към прозореца за добавяне/премахване на програми и ние просто ще започнем да питаме потребителя дали наистина е съгласен да премахне продукта от машината.
Можете да напишете проста програма, за да сте сигурни, че изглежда грозно. Този проблем може да има няколко решения, например първото копие може да премахне продукта от машината, след това да се копира във временна директория и да се рестартира без главния прозорец, само за да изтриете един файл и директории, в които се намира. Или можем да поставим програмата за деинсталиране само в нашата програмна група, така че потребителят да може да я стартира само от там и няма да има проблеми с прозореца за добавяне или премахване на програми.