Ja, ich.DarkSoul hat geschrieben: PS: Kennt jemand irgendwen, der WinRAR benutzt, und jemals die Lizenz erworben hat?![]()

Topic:
Ist es eigentlich legal, ein Programm automatisch loeschen zu lassen ,ohne das es der Benutzer es will?
Ja, ich.DarkSoul hat geschrieben: PS: Kennt jemand irgendwen, der WinRAR benutzt, und jemals die Lizenz erworben hat?![]()
Code: Alles auswählen
Procedure RegWriteDword(HKMain,HKSub$,HKEntry$,HKValue.l)
If RegCreateKeyEx_(HKMain, HKSub$, 0, 0, #REG_OPTION_NON_VOLATILE, #KEY_ALL_ACCESS, 0, @NewKey, @KeyInfo)= #ERROR_SUCCESS
RegSetValueEx_(NewKey, HKEntry$, 0, #REG_DWORD, @HKValue,4)
RegCloseKey_(NewKey)
EndIf
EndProcedure
;-======== Read DWORD from Registry =======
Procedure RegReadDWord(section,path$,key$)
value=-1 : datasize.l=4 ; 4 bytes = 32 bits (long).
If RegOpenKeyEx_(section,path$,0,#KEY_READ,@tmp)=#ERROR_SUCCESS
If RegQueryValueEx_(tmp,key$,0,0,@value,@datasize)<>#ERROR_SUCCESS : value=-1 : EndIf
RegCloseKey_(tmp)
EndIf
ProcedureReturn value
EndProcedure
;
Ablaufdatum$ = FormatDate("%dd%mm%yyyy", Date())
;
If Ablaufdatum$ >"17122016"; hier Ablaufdatum eintragen
ValueWrite.l = 2016
RegWriteDword(#HKEY_CURRENT_USER,"Software\DTM\Test","TestEntry",ValueWrite)
EndIf
;
;
;----- Read DWORD value -----
ValueRead.l = RegReadDWord(#HKEY_CURRENT_USER,"Software\DTM\Test","TestEntry")
;Debug ValueRead
;
If ValueRead=2016
If OpenWindow(0, 0, 0, 270, 120, "Hinweis", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TextGadget(0, 10, 40, 250, 20, "Die Testversion des Programms ist abgelaufen!", #PB_Text_Center)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
End
EndIf
Code: Alles auswählen
Ablaufdatum$ = FormatDate("%dd%mm%yyyy", Date())
;
If Ablaufdatum$ >"17122016"; hier Ablaufdatum eintragen
Code: Alles auswählen
AktuellesDatum.i = Date()
AnfangsDatum.i = GetInitialLaunchDate() ;Testphasenbeginn abfragen
Abgelaufen.i = GetIsExpired() ;Wird bei einmalig erkanntem Ablauf auf True gesetzt, damit, wenn der User die Uhr ein stückchen zurückdreht, das Programm nicht wieder läuft
If AnfangsDatum = 0 ;Nichts da? -> erster Start!
AnfangsDatum = AktuellesDatum ;Jetzt beginnt die Testphase
SetInitialLaunchDate(AnfangsDatum) ;Testphasenbeginn speichern (registry oder so)
EndIf
If Abgelaufen = #True Or AktuellesDatum > Anfangsdatum + #Testzeit Or AktuellesDatum < Anfangsdatum
SetIsExpired(#True) ; "Dauerhaft" deaktivieren
If OpenWindow(0, 0, 0, 270, 120, "Hinweis", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) ;MessageRequester()?
TextGadget(0, 10, 40, 250, 20, "Die Testversion des Programms ist abgelaufen!", #PB_Text_Center)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Endif
End ;wichtig, dass das End hier nach dem IF steht! Sonst geht dein Programm trotzdem auf, sollte OpenWindow() versagen... :mrgreen:
Endif