Avatar billede azerty Juniormester
25. maj 2016 - 19:22 Der er 6 kommentarer og
1 løsning

vbs-fil med udløbsdato

Jeg har lavet et program med Iexpress.exe, hvor jeg blandt andet bruger nedenstående vbs-fil til at sætte en udløbsdato for programmet.

----------

idag = date()
testdag = #17/12/2016#

If DateDiff("d", idag, testdag) >= 0 Then
    Dim WSHShell
    Set WSHShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run("%TEMP%\enfil.exe")

Else
    Set WSHShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run("%TEMP%\timeout.exe")

End If

----------

Programmet kører uden fejl og virker efter hensigten.

I hvert fald på en dansk computer. Men hvordan vil scriptet virke på for eksempel en engelsk eller amerikansk computer, hvor datoer skrives på en anden måde?

Jeg har ikke mulighed for at undersøge det selv, da alle mine computere er med dansk styresystem.

Hvis der er problemer med datosætningen: Er det muligt i vbs-filen tydeligt at angive "dag", "måned" og "år", så computeren uanset sprog behandler datoangivelsen korrekt?

På forhånd tak :-)
Avatar billede tryltryl Juniormester
27. maj 2016 - 14:47 #1
Der findes denne funktion:

DateSerial(year, month, day)
Avatar billede azerty Juniormester
27. maj 2016 - 21:08 #2
http://www.eksperten.dk/spm/1010917

Takker for input.

Jeg har googlet lidt på "DateSerial(year, month, day)" og har prøvet at putte det ind i mit script, som jeg i øvrigt fik af eksperten-brugeren "claes57" for en del år siden:

http://www.eksperten.dk/spm/938510#reply_7777330

Jeg kan ikke få det til at fungere, så jeg står stadig tilbage med mit spørgsmål: Vil mit script virke på udenlandske computere med andre standarder for datoskrivning...

Og hvis ikke: Hvordan kan scriptet så skrives?
Avatar billede azerty Juniormester
27. maj 2016 - 21:10 #3
Undskyld. Jeg kom til at skrive linket til det aktuelle spørgsmål øverst i ovenstående indlæg. Ignorer det venligst :-)
Avatar billede tryltryl Juniormester
27. maj 2016 - 23:21 #4
testdag = DateSerial(2016, 12, 17)

Gør du sådan? Det burde virke :)
Avatar billede azerty Juniormester
28. maj 2016 - 09:06 #5
Aha...

Jo, det virker :-)

Tusind tak.

Læg et svar, tryltryl, og få nogle point til kontoen.
Avatar billede azerty Juniormester
29. maj 2016 - 00:30 #6
Til orientering

Scriptet ser nu således ud:

----------
today = date()
expire = DateSerial(2016, 12, 17)

If DateDiff("d", today, expire) >= 0 Then
    Dim WSHShell
    Set WSHShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run("%TEMP%\enfil.exe")

Else
    Set WSHShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run("%TEMP%\timeout.exe")

End If
----------
Filen virker til og med den 17. december 2016 (kører "enfil.exe"). Efter denne dato køres "timeout.exe".
Avatar billede azerty Juniormester
31. maj 2016 - 21:37 #7
Da jeg stillede dette spørgsmål, var Eksperten stadig i den gamle udgave. Undervejs forvandlede Eksperten sig, og nu er jeg i tvivl om, hvordan jeg afslutter spørgsmålet.

I "gamle dage" ville jeg lade spørgsmålet hænge lidt, indtil min hjælper, tryltryl, kommer med et svar, hvorefter han ville få de udlovede point.

Subsidiært ville jeg tage pointene selv, hvis tryltryl ikke vil have point (det er/var der mange, der ikke vil have).

Men nu er der ikke noget, der hedder point mere, så nu ved jeg ikke, hvordan jeg lukker for spørgsmålet...

What to do?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester