Avatar billede juks Novice
26. maj 2003 - 13:48 Der er 16 kommentarer og
1 løsning

script virker ikke i XP Wshshell.run

hvorfor virker Wshshell.run ikke i XP




Dim fs, f, s, fs1, f1, s1, filespec1, filespec, fso, f2

filespec1 = ("\\server\Auktion\Databaser\frontend\hmfrontend.mdb")
  Set fs1 = CreateObject("Scripting.FileSystemObject")
    filespec = ("c:\databaser\hmfrontend.mdb")
  Set fs = CreateObject("Scripting.FileSystemObject")

If fs.FileExists(filespec) And fs1.FileExists(filespec1) Then

      Set f1 = fs1.GetFile(filespec1)
    s1 = s1 & f1.DateLastModified
    Set f = fs.GetFile(filespec)
    s = s & f.DateLastModified
If s >= s1 Then
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run filespec
Set WshShell = Nothing
Else
Set WshShell = CreateObject("WScript.Shell")
WshShell.Popup "Ny version af databasen" & vbCrLf & "vent venligst! ", 2, "Opdatering Af frontend", 32




  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f2 = fso.GetFile(filespec1)
  f2.Copy (filespec)
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run filespec
Set WshShell = Nothing

End If
Else
If fs.FileExists(filespec) Then
msgbox " Du er ikke tilknyttet serveren" & vbCrLf & "Opdatering af frontenden ikke muligt" & vbCrLf & "Såfremt du er til knyttet serveren kontakt JHC 20706424"
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run filespec

Else
Set WshShell = CreateObject("WScript.Shell")
WshShell.Popup "Der er ingen frontend medens kopieringen foretages" & vbCrLf & "vent venligst! ", 2, "Opdatering Af frontend", 32


Set WshShell = Nothing
Set fso = CreateObject("Scripting.FileSystemObject")
  Set f2 = fso.GetFile(filespec1)
  f2.Copy (filespec)
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run filespec

  End If
  End If
Avatar billede medions Nybegynder
26. maj 2003 - 14:15 #1
Øhh hvilken fejl får du???

//>Rune
Avatar billede juks Novice
26. maj 2003 - 14:16 #2
jeg får ingen den kopier filen fint hvis ikke den eksitere eller skal opdateres men den åbner intet og ingen fejl
Avatar billede juks Novice
26. maj 2003 - 14:17 #3
jeg er lidt pressede sidder hos en kunde og det virker fint på deres W2k men ikke XP
Avatar billede juks Novice
26. maj 2003 - 14:20 #4
hvis jeg sætter en msgbox ind vises den også fint men den åbner ikke filen lige efter dne har givet mig msgbox



If s >= s1 Then
Set WshShell = CreateObject("WScript.Shell")
msgbox "ok"
WshShell.Run filespec
Set WshShell = Nothing
Avatar billede juks Novice
26. maj 2003 - 14:24 #5
meget mystisk hvis jeg sætter msgboxen ind bagefter så køre det men det er jo ikke så smart


Set WshShell = CreateObject("WScript.Shell")
WshShell.Run filespec
msgbox"ok"
Set WshShell = Nothing
Else
Avatar billede medions Nybegynder
26. maj 2003 - 14:25 #6
En MsgBox() stopper scriptet, så det ikke afvikles...!
Så du må finde en anden løsning!

//>Rune
Avatar billede medions Nybegynder
26. maj 2003 - 14:25 #7
Men i realiteten så burde programmet jo blive kørt idet du klikker Ok på MsgBoxen!

//>RUne
Avatar billede juks Novice
26. maj 2003 - 14:26 #8
jeg har jo ingen msgbox
Avatar billede medions Nybegynder
26. maj 2003 - 14:27 #9
Så prøv at fjern linjen:

Set WshShell = Nothing

//>Rune
Avatar billede juks Novice
26. maj 2003 - 14:28 #10
ja men det sjove er at det virker hvis jeg sidder på 2000
men det virker også hvis jeg sætter en msgbox ind efter w.run
Avatar billede juks Novice
26. maj 2003 - 14:29 #11
ja det har jeg prøvet det hjælper intet
Avatar billede medions Nybegynder
26. maj 2003 - 14:30 #12
Prøv lgie at fjern alle de steder hvor ud har skrevet
Set WshShell = Nothing

//>Rune
Avatar billede juks Novice
26. maj 2003 - 14:31 #13
det hjalp intet
Avatar billede medions Nybegynder
26. maj 2003 - 14:34 #14
Hvad hvis du gør sådan her:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run filespec
msgbox"ok"
Set WshShell = Nothing
MsgBox("Får du denne popup frem?")
Else

//>Rune
Avatar billede juks Novice
26. maj 2003 - 14:38 #15
så virker det hele perfekt programmet åbnes og begge popupperne virker
Avatar billede juks Novice
26. maj 2003 - 14:44 #16
min eneste løsning er sætte ---WshShell.Popup " ", 1, "", 32--- ind efter hver wshshell.run


men hvis der er nogen der har en smarter løsning vil gerne høre
Avatar billede adam_christensen Nybegynder
23. juli 2003 - 15:01 #17
Ved ikke om det gør en forskel, men der er ingen grund til at oprette shell og fil-objekter flere gange - de kan snildt genbruges. Nedenstående virker fint på min XP:

Dim fso, f, f1
Dim strServerFile, strClientCopy

Set WshShell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
 
strServerFile = "\\server\Auktion\Databaser\frontend\hmfrontend.mdb"
strClientCopy = "c:\databaser\hmfrontend.mdb"

If fso.FileExists(strClientCopy) And fso.FileExists(strServerFile) Then
  Set f1 = fso.GetFile(strServerFile)
  Set f = fso.GetFile(strClientCopy)

  If CDate(f.DateLastModified) >= CDate(f1.DateLastModified) Then
      ' Klient up-to-date. Start databasen
      WshShell.Run strClientCopy
  Else
      ' Nyere fil på serveren. Opdatér og start databasen
      WshShell.Popup "Ny version af databasen" & vbCrLf & "vent venligst! ", 2, "Opdatering Af frontend", 32
      f1.Copy (strClientCopy)
      WshShell.Run strClientCopy
  End If
Else
  ' Tjek om der er forbindelse til serveren. Hvis ikke, start databasen lokalt hvis den findes
  If Not fso.FileExists(strServerFile) Then
      msgbox "Du er ikke tilknyttet serveren" & vbCrLf & "Opdatering af frontenden ikke muligt" & vbCrLf & "Såfremt du er til knyttet serveren kontakt JHC 20706424"
      If fso.FileExists(strClientCopy) Then
        WshShell.Run strClientCopy
      Else
        MsgBox "Ingen lokal database", 16
      End If
  Else
      ' Der er forbindelse til filen på serveren - start kopiering
      Set WshShell = CreateObject("WScript.Shell")
      WshShell.Popup "Der er ingen frontend medens kopieringen foretages" & vbCrLf & "vent venligst! ", 2, "Opdatering Af frontend", 32
      Set f1 = fso.GetFile(strServerFile)
      f1.Copy (strClientCopy)
      WshShell.Run strClientCopy
  End If
End If

' Ryd op
Set f = Nothing
Set f1 = Nothing
Set fso = Nothing
Set WshShell = Nothing
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
Kategori
Kurser inden for grundlæggende programmering

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