tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
2441
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    realYeti realYeti ist offline Mitglied Bronze
    Registriert seit
    Apr 2007
    Beiträge
    30
    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...)

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    
    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.....
     

  2. #2
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Öhm ja, und wo genau ist das Problem? Gibt es Fehlermeldungen? Wird die Anwendung nicht ausgeführt?

    Hat dein Dienst die entsprechenden Berechtigungen diese Anwendung auszuführen usw. Fragen über Fragen.
     

  3. #3
    realYeti realYeti ist offline Mitglied Bronze
    Registriert seit
    Apr 2007
    Beiträge
    30
    Hy Norbert,

    ja klar kommt ne Fehlermeldung, er führt das Programm wohl nicht in der selben Session aus. Weis jetzt aber ehrlich gesagt auch ned so recht wie ich das hinbekommen kann. Eigentlich müsste er des ja als der User machen, dem ich ihn explizit im Thread zugewiesen habe. Der Dienst wird unter dem selben Namen ausgeführt (Administrator Rolle)

    Code :
    1
    
    Fehlerhafte Anwendung TeamViewer.exe, Version 3.5.4140.0, Zeitstempel 0x47d79a5f, fehlerhaftes Modul USER32.dll, Version 6.0.6001.18000, Zeitstempel 0x4791a7a6, Ausnahmecode 0xc0000142, Fehleroffset 0x00009cac, Prozess-ID 0x700, Anwendungsstartzeit 01c8afa897f68450.

    THX für die Hilfe.
     

  4. #4
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Schon versucht eine etwaige Exception abzufangen und mitzuschreiben? Eventuell erhältst du daraus mehr Informationen.
     

  5. #5
    realYeti realYeti ist offline Mitglied Bronze
    Registriert seit
    Apr 2007
    Beiträge
    30
    Klar kann ich den Debuggen, aber das bring nicht mehr als die Ausgaben im Event log.

    Bei CodeProject hab ich ein C++.NET Projekt gesehen der genau das macht was ich eigentlich vorhabe.... nur leider ist mein C++ ziemlich für die Fische. Irgendwie holt er sich da ein Token und .....

    hier mal der Link falls des einer lesen kann.. Klick
     

Ähnliche Themen

  1. Vista, Windows Dienst und Soundausgabe
    Von DannyP im Forum .NET Grafik und Sound
    Antworten: 0
    Letzter Beitrag: 16.08.09, 16:01
  2. Antworten: 0
    Letzter Beitrag: 11.02.08, 14:09
  3. Dienst unter Vista als nicht-admin starten
    Von riseX im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 30.08.07, 10:54
  4. Dienst unter WinXP per script de-/aktivieren
    Von Caliterra im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 06.09.06, 13:09
  5. Neuer Dienst unter win2k
    Von fungo im Forum Microsoft Windows
    Antworten: 3
    Letzter Beitrag: 11.09.02, 13:55