svenac2010
Goto Top

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

Content-ID: 150499

Url: https://administrator.de/contentid/150499

Ausgedruckt am: 23.11.2024 um 08:11 Uhr

bastla
bastla 07.09.2010 um 22:44:56 Uhr
Goto Top
Hallo svenac2010!

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
Grüße
bastla