Hy Leute,
viele von Euch die das jetzt lesen, denken wieder mein Gott - bitte nicht !! aber es muß leider sein. Ich hab hier nen Dienst der mir in späterer Folge einen Webservice der mit einer Datenbank verbunden ist kontaktiert und dann im Falle der Statusänderung eine .exe aufruft.
Nun ist das unter Vista nicht mehr so leicht zu realisieren. wie unter XP ..... aber vielleicht hat ja einer von Euch ne Idee.
Ausgangslage: Der Dienst läuft auf einem Rechner auf dem Windows Vista (32Bit) installiert ist.
So schaut die Klasse aus - zumindest ein schneller Entwurf davon (Sorry für die Notation...)
THX - für jede Hilfe, und bitte verzichtet auf: Warum eillst du unbedingt eine .exe starten.....
viele von Euch die das jetzt lesen, denken wieder mein Gott - bitte nicht !! aber es muß leider sein. Ich hab hier nen Dienst der mir in späterer Folge einen Webservice der mit einer Datenbank verbunden ist kontaktiert und dann im Falle der Statusänderung eine .exe aufruft.
Nun ist das unter Vista nicht mehr so leicht zu realisieren. wie unter XP ..... aber vielleicht hat ja einer von Euch ne Idee.
Ausgangslage: Der Dienst läuft auf einem Rechner auf dem Windows Vista (32Bit) installiert ist.
So schaut die Klasse aus - zumindest ein schneller Entwurf davon (Sorry für die Notation...)
Code:
Imports System.IO
Imports System.Environment
Imports System.Diagnostics
Public Class cStartenViewer
Dim watcher As New FileSystemWatcher()
'Die wo Du starten willst
Dim mAusfuerenExe As String = "C:\Program Files\Test.exe"
'Da hast an Property für dein Teamviewer.exe
Public Property AusfuerenExe() As String
Get
Return mAusfuerenExe
End Get
Set(ByVal value As String)
mAusfuerenExe = value
End Set
End Property
Public Sub DS_aenderung()
Try
Dim startInfo As System.Diagnostics.ProcessStartInfo = Nothing
startInfo = New System.Diagnostics.ProcessStartInfo(mAusfuerenExe)
Dim ss As New System.Security.SecureString()
ss.AppendChar("A")
ss.AppendChar("B")
ss.AppendChar("7")
startInfo.Domain = "Domain"
startInfo.UserName = "User"
startInfo.Password = ss
startInfo.WindowStyle = ProcessWindowStyle.Normal
Dim pStart As New System.Diagnostics.Process
EventLog.WriteEntry("TestDienst", "Pfad der Datei: " & AusfuerenExe)
startInfo.UseShellExecute = False
pStart.StartInfo = startInfo
EventLog.WriteEntry("TestDienst", "pStart wurde angestossen")
If pStart.Start() Then
'EventLog.WriteEntry("TestDienst", "nach p.Start-oben")
Dim p As String = "TestProzessTVw"
p = pStart.ProcessName
'EventLog.WriteEntry("TestDienst", p.ToString & " vorher")
pStart.WaitForExit(10)
EventLog.WriteEntry("TestDienst", "Prozessende: " & p.ToString)
EventLog.WriteEntry("TestDienst", "Test.exe wurde aufgerufen")
Else
EventLog.WriteEntry("TestDienst", "Test.exe konnte nicht aufgerufen werden")
End If
Catch ex As Exception
EventLog.WriteEntry("TestDienst", ex.Message)
End Try
End Sub
'Stoppen der Überwachung
Public Sub StopWatching()
watcher.EnableRaisingEvents = False
End Sub
End Class
THX - für jede Hilfe, und bitte verzichtet auf: Warum eillst du unbedingt eine .exe starten.....