Witam!
Pracuję w Visual c#, chciałem zapytać czy da się wywołać jakiś kod w czasie/pod koniec instalacji. Chodzi o zapisanie pewnej wartości do pliku tekstowego.
ale jakiej instalacji?
Odpalasz .exe, wiec nie musisz nic instalowac. Chyba, ze napisales swoj wlasny instalator (mogles tez uzyc jakiegos).
Wiec pytanie co to za instalator?
Chodzi o to, że jeśli komuś wyślę plik .exe, on musi go zainstalować na swoim urządzeniu. Ja chcę żeby w czasie instalacji/pierwszego użycia aplikacji zapisać pewną wartość do pliku .txt.
Chodzi o inny komputer niż mój.
Jakbym wiedział jak zrobić instalator to bym nie zadawał tego pytania.
Ale co to za problem instalator zrobić?
Robisz instalator, który wypakowuje z siebie samego folder rar do folderu, na koniec pliku instalator dopisujesz plik rara, plik rar jest czytany od tyłu pliku, a exe od przodu, i tak oto zrobiłeś sobie instalator z skompresowanymi plikami :)
No to się dowiedz jak się tworzy instalator. Np
Inno Setup.
Jak wyślesz komuś sam exe to on nic nie instaluje. Jak exe korzysta z jakiejś biblioteki niestandardowe to się nie uruchomi bez niej.
jacek.placek napisał(a):
No to się dowiedz jak się tworzy instalator. Np
Inno Setup.
Nie dowiaduj się, po prostu użyj Inno Setup.
A jeśli to ma być jakieś działanie przy pierwszym uruchomieniu, to rozpoznaj pierwsze uruchomienie:
Odczytaj z rejestru jakiś konkretny klucz. Jeśli go nie ma, to znaczy, że program jest uruchomiony pierwszy raz. I wtedy możesz sobie zrobić co tam chcesz. Oczywiście musisz zapisać potem wartość w rejestrze, żeby przy kolejnym uruchomieniu już wiedzieć, że to nie jest pierwsze. Rozumiesz?
Nie rozumiem tutaj: ''odczytaj z rejestru''. Nw co to jest, ani czy odczytuje się z tego tak jak z pliku.
I czy jeśli komuś prześlę to bez rejestrów?
Zobaczyłem coś o tym Inno Setup, ale jak włożyć tam trochę kodu C#?
C# się nie da. Możesz albo napisać jakimś maly program, który cos zrobi po instalacji i się usunie albo napisać coś w pascalopodovnym języku.
Ale najpierw KONIECZNIE się dowiedz co to jest rejestr.
Na około idziecie. Jeśli ma to być prosty exe, to tam bym sprawdzał File.Exist..., czy dany plik istnieje, np. w katalogu roboczym i jeśli nie to go tworzył. Niemniej to strasznie lamerskie podejście które niesie sporo zagrożeń. Tak na serio to bym trzymał te dane albo w rejestrze, albo w folderze AppData(https://social.msdn.microsoft.com/Forums/vstudio/en-US/67159d80-eacb-41d9-911b-7f520715a074/how-to-use-the-appdata-folder?forum=csharpgeneral). Do instalacji i konfiguracji (generowanie pliku) natomiast użył bym https://wixsharp.codeplex.com. Zachowujemy stos C#, bo InnoSetup dobrze sprawdza się w przypadku pisania apek dla Delphi, ale używania jego zamiast Wix'a jest lekko karkołomne, a Wix zrobi fajnie i prosto *.msi
JanuszKodingu napisał(a):
Nie rozumiem tutaj: ''odczytaj z rejestru''. Nw co to jest, ani czy odczytuje się z tego tak jak z pliku.
I czy jeśli komuś prześlę to bez rejestrów?
Naucz się najpierw zupełnych podstaw. Czym jest rejestr, co to AppData, jak działa C# (co to .NET, co to CLR). Dopiero później bierz się za programowanie. To dobra rada. W między czasie poczytaj jak działa Windows (komunikaty). Bo przekładając to na język ludzki - nie wiesz jak działa śrubokręt, a chcesz skręcić meble z Ikei.