vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: VB6 PRG als Dienst 
Autor: Wöllmi
Datum: 13.04.07 22:45

Hi Oliver,

tja, was soll ich sagen. Die Messages abfangen habe ich auch getetset, hat aber dazu
geführt, daß die Sitzung überhaupt nicht mehr beendet werden konnte, ohne den Dienst
vorher zu beenden.

Also fest steht, daß selbst MS einen VB-Dienst nicht empfielt. Trotzdem
gibt es das Control und trotzdem geht es "irgendwie".

Die Ursache ist wohl in de Natur von VB zu sehen. Aber nun wieder zu den Fakten.

- Solange ich vermeide Objekte, die durch das Timerevent des Dienstes genutzt
werden in der Unload Routine zu "killen" wird der Dienst auch nach einer Abmeldung
tadellos fortgeführt. Ist eben ein "Dienst"

- Irgendwie spielt auch noch die Eigenschaft "NTService1.Interactive = True/FALSE"
eine Rolle. Solange der Dienst "unsichtbar" läuft, also "Normalität" sollte hier "FALSE"
eingestellt sein.

- Über einen Button den Dienst von der Form aus beenden scheint mit unlogisch.
Dazu müßte ja eine Benutzerinteraktion möglich sein. D.h. Form=sichtbar.
Zur Steuerung verwende ich folgendes Objekt über ein separates Programm.
Set oService = GetObject("WinNT://" & Environ("computername") & "/" & _
  sServicename & ",service")
Dabei ist "sServicename" der Name des zu steuernden Dienstes.

- Fest scheint zu stehen, daß vor dem beenden des Dienstes dieser "Gestoppt"
werden muß. Und ob sich der Dienst aus sich selber heraus "Stoppen" kann weis
ich nicht.

Stoppen tue ich über ein separates Programm als "Administrator" so:
' WMI-Objekt
Private oService As Object
 
Set oService = GetObject("WinNT://" & Environ("computername") & "/" & _
  sServicename & ",service")
    If Err.Number = 0 Then
       With oService
          Select Case Index
             Case 1
                If .Status = 4 Then
                   .Stop
                 '// ggf. Info senden
                End If
             Case 0
                If .Status = 1 Then
                   .Start
                 '// ggf. Info senden
                End If
          End Select
       End With
    End If
- Und zuletzt ist der Dienst ja schließlich als solcher über "-install" registriert.
D.h. wenn er nicht via z.B. "-uninstall" entfernt wird (vorher stoppen!), kann
der Dienst auch nicht so wie ein "normales" programm beendet werden.
Ist eben etwas anderer Natur.
Der Workshop hier bietet schon sehr gute Ansätze. Starte man den Dienst
mit dem Startparameter "-debug" verhält sich ja alles wie im "normalen"
Windows-Programmleben. ich kann den Workshop "VB6 Dienst erstellen" hier nur
empfehlen.
Incl. aller hier zu Tage getretenen "handicaps" habe sogar ich es hinbekommen.
Auc Dank Deiner Hilfe

Also dann, mehr kann ich momentan dazu nicht beitragen. Die Windows Interna
bzgl. Dienste sind mir auch noch verborgen geblieben.

Tschaui
Woellmi

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
VB6 PRG als Dienst1.307Wöllmi15.03.07 14:35
Re: VB6 PRG als Dienst667Sunshine0901.04.07 19:47
Re: VB6 PRG als Dienst669Wöllmi02.04.07 23:13
Re: VB6 PRG als Dienst642Sunshine0903.04.07 01:16
Re: VB6 PRG als Dienst691Wöllmi03.04.07 08:32
Re: VB6 PRG als Dienst688Wöllmi03.04.07 10:49
Re: VB6 PRG als Dienst640Sunshine0903.04.07 15:56
Re: VB6 PRG als Dienst628Wöllmi04.04.07 07:23
Re: VB6 PRG als Dienst691Wöllmi04.04.07 12:29
Re: VB6 PRG als Dienst605Sunshine0913.04.07 11:34
Re: VB6 PRG als Dienst640Wöllmi13.04.07 22:45

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel