Bir Windows uygulamasını istediğiniz tarihte çalıştırın - sistem saatine dokunmadan
Tek bir uygulamanın saatini gelecek yıla ayarlayın, durdurun ya da hızlandırın; siz kahve yaparken 30 günlük bir deneme süresi dolsun. Makinenin geri kalanı gerçek zamanı korur - etki alanı oturumunuz, sertifikalarınız ve diğer tüm programlar her zamanki gibi çalışmaya devam eder.
Sonra da değişikliğin gerçekten işe yarayıp yaramadığını söyler.
Ücretsiz ve açık kaynak, GPL-3.0 Taşınabilir ya da kurulu Çalıştırmak için yönetici hakkı gerekmez İnternetle asla konuşmaz
Bir oturum nasıl görünür
23:59:50
18:12:33
Neden var
Tarihe bağlı her şeyi test etmek zamanı oynatmak demektir. Olağan iki seçenek de kötü.
Lisans süresinin dolması, deneme süreleri, abonelik yenilemeleri, sertifika geçerliliği, belirteç ömürleri, ay sonu ve yıl sonu raporları, faiz tahakkuku, hatırlatmalar.
Seçenek 1 - sistem saatini değiştirmek
Etki alanı oturumunu ve Kerberos’u bozar, TLS sertifikalarını geçersiz kılarak tarayıcının çalışmasını durdurur, Windows Update’i şaşırtır ve makinedeki diğer tüm uygulamaların yanlış zaman damgaları yazmasına yol açar. Bir etki alanına bağlı makinede grup ilkesi değişikliği genellikle engeller ya da birkaç dakika sonra geri alır; yani test tekrarlanabilir bile olmaz.
Seçenek 2 - beklemek
Yani: test etmemek. Böylece tarihe bağlı durumlar atlanır ve “lisans hiç dolmuyor” müşteriye ulaşır.
Ne yapar
Tek bir süreç zamanda yolculuk eder. Makinedeki başka hiçbir şey etmez.
İstediğiniz an
Belirli bir tarih ve saat ya da göreli bir an - +30 days, -1 year.
Akan, durmuş ya da hızlanmış
Normal hız, tutulmuş bir saat ya da tam sayı bir çarpan. x1440 bir günü bir
dakikaya çevirir.
Kendi saat dilimi
Yalnızca o süreç için sabit bir kayma; sistem dilimi tam olarak olduğu yerde kalır.
Alt süreçler de gelir
Yükleyiciler ve başlatıcılar alt süreçler oluşturur. Bu olmadan test, çalışanların yalnızca yarısını kapsar.
Oturum sırasında atlama
İleri ya da geri - bir dizüstü bilgisayarın zaman sunucusuyla yeniden eşitlendikten sonra yaptığı geri atlama dahil.
Electron ve Chromium da
Farklı bir mekanizmayla; çünkü saatleri, enjeksiyonun ulaşamadığı yalıtılmış bir renderer içinde yaşar.
Başka kimsenin yapmadığı kısım
İşe yaradığını nereden bileceksiniz?
Başka her araçta bilemezsiniz. Uygulama açılır, bir tarih gösterir ve siz varsayarsınız. Oysa saati aracın hiç yakalamadığı bir kanaldan okuyabilir - bir sunucudan, bir veritabanından, bir çalışma zamanı katmanından - ve o zaman “test geçti” hiçbir şey ifade etmez.
- →Gerçek test başlamadan bir karar: çalışıyor / kısmen çalışıyor / çalışmıyor
- →44 zaman kanalından hangilerinin kapsandığı ve uygulamanın her birini kaç kez sorguladığı
- →Hangi kanalların kapsanmadığı - açıkça söylenir, asla gizlenmez
- →Sonuçlarıyla birlikte uyarılar: “bu uygulama zamanı ağdan okuyor - yerel değişiklik yeterli olmayabilir”
İki dakikada tanışın
Keşfetmek için bir pencere, CI için bir komut satırı. İkisinin arkasında da aynı motor.
# Bir uygulamayı 2027’nin son saniyesiymiş gibi çalıştırın chrono run "C:\apps\test.exe" --at 2027-12-31T23:59:59 # Siz kahve yaparken 30 günlük bir deneme süresinin dolmasını izleyin: x1440, dakikada bir gündür chrono run "C:\apps\test.exe" --mode x1440 # Tarih yerine adlandırılmış bir senaryo kullanın ve kanıtı bir dosyaya yazın chrono run "C:\apps\test.exe" --preset year-rollover --report session.txt
Hesap makinesi tarih testinin diğer yarısını yanıtlar - hangi tarihin kullanılacağını:
$ chrono calc --preset year-2038 --zone +00:00 Chrono Mock - date calculator preset: year-2038 - 2038 boundary explains: Does the app survive the 32-bit Unix time boundary (2038-01-19T03:14:07Z)? base: 2038-01-19T03:14:07 result: 2038-01-19T03:14:07 formats: ISO date 2038-01-19 ISO datetime 2038-01-19T03:14:07+00:00 US 01/19/2038 PL 19.01.2038 epoch (s) 2147483647 epoch (ms) 2147483647000 FILETIME 137919572470000000 RFC 1123 Tue, 19 Jan 2038 03:14:07 GMT ... what this date lands on: at or past the 2038-01-19T03:14:07Z 32-bit time_t limit (Y2038)
Muhtemelen kullandığınız araçla karşılaştırma
RunAsDate gibi, eksik olan kısımlarla
RunAsDate beş duvar saati işlevini yakalar ve bunu iyi yapar. İkisinin nerede ayrıştığı burada - tam sayfa ise RunAsDate’in hâlâ daha iyi seçim olduğu yerleri de söylüyor.
| RunAsDate | Chrono Mock | |
|---|---|---|
| Bir uygulamayı sahte bir tarihte çalıştırır | evet | evet |
| Yakalanan zaman kanalları | 5 | 44 (30 kaydırılan, 14 sayılan) |
| Saati hızlandırır | hayır | evet |
| Bağımsız saat dilimi | belgelenmemiş | evet |
| Alt süreçleri izler | belgelenmemiş | evet |
| İşe yarayıp yaramadığını söyler | hayır | evet, kanal kanal |
| Kaynak kodu açık | freeware, kapalı | GPL-3.0 |
Edinin
İstediğiniz yere açıp çalıştırın ya da imzalı .msi'yi bilgisayardaki her hesap
için kurun. Çalıştırmak yönetici hakkı gerektirmez, zip sürümleri ise kayıt defterine hiçbir
şey yazmaz.