Ein VBScript in Visual Studio 2013 als Windows Forms Anwendung anwenden
Hallo zusammen,
ich würde gerne folgendes VBScript mit einer Windows Forms Anwendung anwenden, leider funktioniert es nicht (16 Fehler). Das Script habe ich in den Button eingefügt, was mache ich da falsch?. Als normales Script läuft es. Muss ich das Script umschreiben?
ich würde gerne folgendes VBScript mit einer Windows Forms Anwendung anwenden, leider funktioniert es nicht (16 Fehler). Das Script habe ich in den Button eingefügt, was mache ich da falsch?. Als normales Script läuft es. Muss ich das Script umschreiben?
Const strPath = "C:\Users\Max\Desktop\Test1"
Const strPath2 = "C:\Users\Max\Desktop\Test2"
Const intInterval = "2"
strDrive = Split(strPath,"\")(0)
strFolder = Replace(Split(strPath,":")(1),"\","\\") & "\\"
strDrive2 = Split(strPath2,"\")(0)
strFolder2 = Replace(Split(strPath2,":")(1),"\","\\") & "\\"
Set fso = WScript.CreateObject("Scripting.Filesystemobject")
Set objShell = CreateObject("Wscript.Shell")
Set objWMIService = GetObject( "winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2" )
strQuery = "Select * From __InstanceOperationEvent" _
& " Within " & intInterval _
& " Where Targetinstance Isa 'CIM_DataFile'" _
& " And ((TargetInstance.Drive='" & strDrive & "'"_
& " And TargetInstance.Path='" & strFolder & "') or "_
& "(TargetInstance.Drive='" & strDrive2 & "'"_
& " And TargetInstance.Path='" & strFolder2 & "'))"
Set colEvents = objWMIService.ExecNotificationQuery (strQuery)
Do
Set objEvent = colEvents.NextEvent()
Set objTargetInst = objEvent.TargetInstance
Select Case objEvent.Path_.Class
Case "__InstanceCreationEvent"
objShell.Run """F:\Programe\\Droi\Droi.exe"""
End Select
Loop
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 305684
Url: https://administrator.de/contentid/305684
Ausgedruckt am: 22.11.2024 um 04:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo Knueffi,
ein set gibt es in VB.Net nicht für das Zuordnen von Objekten zu einer Variablen, etc. pp. ein einfaches übernehmen ist also in den seltensten Fällen möglich und meist auch sehr ineffizient da einem in VB.NET durch das NET-Framework so viel mehr Funktionalität zur Verfügung steht.
Außerdem hast du mit VB.Net einfachere Möglichkeiten als den WMI-Notification Filter, namentlich den Filesystemwatcher der das selbe macht, das sähe dann z.B. so aus um zwei Ordner auf neue Dateien zu überwachen:
Sorry aber du solltest dich dann vielleicht doch erst mal in die grundlegenden Unterschiede beider Programmiersprachen einlesen, damit du auch was lernst.
Grüße Uwe
ein set gibt es in VB.Net nicht für das Zuordnen von Objekten zu einer Variablen, etc. pp. ein einfaches übernehmen ist also in den seltensten Fällen möglich und meist auch sehr ineffizient da einem in VB.NET durch das NET-Framework so viel mehr Funktionalität zur Verfügung steht.
Außerdem hast du mit VB.Net einfachere Möglichkeiten als den WMI-Notification Filter, namentlich den Filesystemwatcher der das selbe macht, das sähe dann z.B. so aus um zwei Ordner auf neue Dateien zu überwachen:
Public Class Form1
' Filesystemwatcher initialisieren
WithEvents watcher1 As New System.IO.FileSystemWatcher("C:\Users\Max\Desktop\Test1", "*")
WithEvents watcher2 As New System.IO.FileSystemWatcher("C:\Users\Max\Desktop\Test2", "*")
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
' Filesystemwatcher aktivieren (Überwachung starten)
watcher1.EnableRaisingEvents = True
watcher2.EnableRaisingEvents = True
End Sub
' Event wenn in Ordner 1 eine Datei erstellt wird
Private Sub watcher1_Created(sender As Object, e As System.IO.FileSystemEventArgs) Handles watcher1.Created
RunApplication()
End Sub
' Event wenn in Ordner 2 eine Datei erstellt wird
Private Sub watcher2_Created(sender As Object, e As System.IO.FileSystemEventArgs) Handles watcher2.Created
RunApplication()
End Sub
' Sub die deine Anwendung startet
Private Sub RunApplication()
Process.Start("F:\Programe\Droi\Droi.exe")
End Sub
' Wenn Form geschlossen wird , beende die Überwachung der Ordner sauber
Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
watcher1.EnableRaisingEvents = False
watcher2.EnableRaisingEvents = False
End Sub
End Class
Grüße Uwe