Od ponad 20 lat dzielę się z Wami swoją pasją oraz tworzę dla was moim zdaniem ciekawe i przede wszystkim przydatne rzeczy. Całkowicie za darmo! To się nigdy nie zmieni.
Niestety, sprzęt komputerowy (laptop) na którym obecnie pracuję zestarzał się - ma już 12 lat i jest to już niestety mocno odczuwalne. Moja obecna sytuacja finansowa nie pozwala mi na zakup nowego laptopa, dzięki któremu nadal będę mógł realizować swoją pasję, a tym samym dzielić się nią z Wami.
Mam nadzieję, że dzięki Waszej pomocy będę mógł zakupić sprzęt, który posłuży równie długo co obecny. Jak wiemy, sprzęt komputerowy jest dzisiaj horrendalnie drogi (zwłaszcza laptopy). Mam nadzieję, że wspólnie to się uda.
Dlatego też postanowiłem założyć specjalną zrzutkę na uznanej platformie crowd-fundingowej, dzięki której w transparentny sposób można dorzucić coś od siebie. Cel jest ambitny, ale wierzę w siłę społeczności!
; GetIEVersion ; ; Funkcja oparta na funkcji Yazno, http://yazno.tripod.com/powerpimpit/ ; Wartość zwracana jest na górze stosu ; 1-6 (Zainstalowana wersja IE) ; lub ; '' (IE nie jest zainstalowany) ; ; Sposób użycia: ; Call GetIEVersion ; Pop $R0 ; Zmienna $R0 ma wartość "5" lub inną Function GetIEVersion Push $R0 ClearErrors ReadRegStr $R0 HKLM "Software\Microsoft\Internet Explorer" "Version" IfErrors lbl_123 lbl_456 lbl_456: ; IE 4+ Strcpy $R0 $R0 1 Goto lbl_done lbl_123: ; Starsza wersja IE ClearErrors ReadRegStr $R0 HKLM "Software\Microsoft\Internet Explorer" "IVer" IfErrors lbl_error StrCpy $R0 $R0 3 StrCmp $R0 '100' lbl_ie1 StrCmp $R0 '101' lbl_ie2 StrCmp $R0 '102' lbl_ie2 StrCpy $R0 '3' ; Domyślnie w IE3, jeśli nie 100, 101, lub 102. Goto lbl_done lbl_ie1: StrCpy $R0 '1' Goto lbl_done lbl_ie2: StrCpy $R0 '2' Goto lbl_done lbl_error: StrCpy $R0 '' lbl_done: Exch $R0 FunctionEnd
; IsDotNETInstalled ; ; Funkcja oparta na funkcji GetDotNETVersion ; http://nsis.sourceforge.net/Get_.NET_Version ; ; Sposób użycia: ; Call IsDotNETInstalled ; Pop $0 ; StrCmp $0 1 found.NETFramework no.NETFramework Function IsDotNETInstalled Push $0 Push $1 StrCpy $0 1 System::Call "mscoree::GetCORVersion(w, i ${NSIS_MAX_STRLEN}, *i) i .r1" StrCmp $1 0 +2 StrCpy $0 0 Pop $1 Exch $0 FunctionEnd
; IsFlashInstalled ; ; Napisał Yazno, http://yazno.tripod.com/powerpimpit/ ; Warość zwracana jest na górze stosu ; 0 (Flash nie jest zainstalowany) ; lub ; 1 (Flash jest zainstalowany) ; ; Sposób użycia: ; Call IsFlashInstalled ; Pop $R0 ; Zmienna $R0 ma wartość "1" lub "0" Function IsFlashInstalled Push $R0 ClearErrors ReadRegStr $R0 HKCR "CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}" "" IfErrors lbl_na StrCpy $R0 1 Goto lbl_end lbl_na: StrCpy $R0 0 lbl_end: Exch $R0 FunctionEnd
; ConnectInternet (funkcja używa wtyczki Dialer) ; Napisał: Joost Verburg ; ; Funkcja ta próbuje utworzyć połączenie z internetem, jeśli nie jest dostępne żadne połączenie. ; Jeśli nie jesteś pewien czy system, na którym uruchomiono instalatora ma aktywne połączenie ; z internetem, wywołaj tę funkcję przed pobieraniem plików przez wtyczkę NSISdl. ; ; Funkcja wymaga Internet Explorera 3, lecz pyta o ręczne połączenie, jeśli nie jest on zainstalowany. Function ConnectInternet Push $R0 ClearErrors Dialer::AttemptConnect IfErrors noie3 Pop $R0 StrCmp $R0 "online" connected MessageBox MB_OK|MB_ICONSTOP "Błąd połączenia z internetem." Quit ; Zamyka instalatora. Możesz dodać własną obsługę błędów. noie3: ; IE3 nie zainstalowany MessageBox MB_OK|MB_ICONINFORMATION "Proszę, połącz się teraz z internetem." connected: Pop $R0 FunctionEnd
System::Call 'kernel32::GetModuleFileName(p 0, t .R0, i 1024) i r1' ; Zmienna $R0 będzie zawierała nazwę instalatora
Wstaw poniższy fragment kodu do funkcji .onInit:
System::Call 'kernel32::CreateMutex(p 0, i 0, t "myMutex") p .r1 ?e' Pop $R0 StrCmp $R0 0 +3 MessageBox MB_OK|MB_ICONEXCLAMATION "Instalator jest już uruchomiony." Abort
Wartość 'myMutex' powinna być zastąpiona dowolną unikalną wartością.
Więcej użytecznych skryptów możesz znaleźć w NSIS Wiki, na forum NSIS oraz na stronie NSIS.