Datei kopieren und vorher Programm beenden (wenn aktiv)
Hallo Habe folgendes Script:
Option Explicit
' Variablendeklaration
Dim objFSO, objShell
Dim strUser
Dim strPathQuelle, strPathZiel
Dim strFile, strFileQuelle, strFileziel
' Objekte erzeugen
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Wscript.shell")
' Jetzt die weiteren Aktionen starten…
strPathZiel = "C:\KB\"
strPathQuelle = "\\\"
strFile ="TEST.chm"
strFileQuelle = strPathQuelle & strFile
strFileziel = strPathZiel & strFile
If objFSO.FileExists(strFileQuelle) = True And objFSO.FileExists(strFileziel) _
= False Then
' kopiere die Datei wenn Sie auf dem Quelllaufwerk vorhanden ist aber nicht
' auf dem Ziellaufwerk
objFSO.Copyfile strFileQuelle, strFileziel, True
ElseIf objFSO.FileExists(strFileQuelle) = True And objFSO.FileExists( _
strFileziel) = True Then
' kopiere die Datei wenn die auf dem Quelllaufwerk aktueller ist als die
' auf dem Ziellaufwerk
Set strFileQuelle = objFSO.getfile(strFileQuelle)
Set strFileZiel = objFSO.getfile(strFileziel)
If strFileQuelle.DateCreated > strFileZiel.DateCreated Then
objFSO.Copyfile strFileQuelle, strFileziel, True
End If
ElseIf objFSO.FileExists(strFileQuelle) = False And objFSO.FileExists( _
strFileziel) = True Then
' lösche die Datei wenn Sie auf dem Quelllaufwerk nicht vorhanden ist aber
' auf dem Ziellaufwerk
objFSO.DeleteFile strFileziel
End If
Sobald ich dieses aber ausführe und das CHM ist geöffnet gibt erscheint eine FM Erlaubnis verweigert.
Habe mir gedacht, beende CHM wenn aktiv:
Set WshShell = WScript.CreateObject("WScript.Shell")
If WshShell.AppActivate("TEST") Then
WScript.Sleep 100
WshShell.SendKeys "%{F4}"
End If
Versuche ich aber das beenden Script in das vorherige zu integrieren ( an verschiedenen Stellen) bekomme ich aber nur ein Ausführungsfehler.
Wie kann ich beide Scripte zu einem Zusammen fassen.
Sprich prüfe ob CHM ausgeführt wird, wenn ja dann beende und setzte script fort, wenn CHM nicht aktiv, dann setzte Script fort
Option Explicit
' Variablendeklaration
Dim objFSO, objShell
Dim strUser
Dim strPathQuelle, strPathZiel
Dim strFile, strFileQuelle, strFileziel
' Objekte erzeugen
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Wscript.shell")
' Jetzt die weiteren Aktionen starten…
strPathZiel = "C:\KB\"
strPathQuelle = "\\\"
strFile ="TEST.chm"
strFileQuelle = strPathQuelle & strFile
strFileziel = strPathZiel & strFile
If objFSO.FileExists(strFileQuelle) = True And objFSO.FileExists(strFileziel) _
= False Then
' kopiere die Datei wenn Sie auf dem Quelllaufwerk vorhanden ist aber nicht
' auf dem Ziellaufwerk
objFSO.Copyfile strFileQuelle, strFileziel, True
ElseIf objFSO.FileExists(strFileQuelle) = True And objFSO.FileExists( _
strFileziel) = True Then
' kopiere die Datei wenn die auf dem Quelllaufwerk aktueller ist als die
' auf dem Ziellaufwerk
Set strFileQuelle = objFSO.getfile(strFileQuelle)
Set strFileZiel = objFSO.getfile(strFileziel)
If strFileQuelle.DateCreated > strFileZiel.DateCreated Then
objFSO.Copyfile strFileQuelle, strFileziel, True
End If
ElseIf objFSO.FileExists(strFileQuelle) = False And objFSO.FileExists( _
strFileziel) = True Then
' lösche die Datei wenn Sie auf dem Quelllaufwerk nicht vorhanden ist aber
' auf dem Ziellaufwerk
objFSO.DeleteFile strFileziel
End If
Sobald ich dieses aber ausführe und das CHM ist geöffnet gibt erscheint eine FM Erlaubnis verweigert.
Habe mir gedacht, beende CHM wenn aktiv:
Set WshShell = WScript.CreateObject("WScript.Shell")
If WshShell.AppActivate("TEST") Then
WScript.Sleep 100
WshShell.SendKeys "%{F4}"
End If
Versuche ich aber das beenden Script in das vorherige zu integrieren ( an verschiedenen Stellen) bekomme ich aber nur ein Ausführungsfehler.
Wie kann ich beide Scripte zu einem Zusammen fassen.
Sprich prüfe ob CHM ausgeführt wird, wenn ja dann beende und setzte script fort, wenn CHM nicht aktiv, dann setzte Script fort
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 150499
Url: https://administrator.de/contentid/150499
Ausgedruckt am: 23.11.2024 um 08:11 Uhr
1 Kommentar
Hallo svenac2010!
Versuch es mit folgendem Code zum Schließen der "TEST.chm":
Grüße
bastla
Versuch es mit folgendem Code zum Schließen der "TEST.chm":
Dim objWMIService, colItems
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_Process WHERE CommandLine LIKE '%" & strFile & "'")
For Each objItem in colItems
objItem.Terminate
Next
bastla