vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 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

VB.NET - Ein- und Umsteiger
Re: "Uncloseable App" 
Autor: rub
Datum: 19.07.06 09:45

Mache das Programm doch als windows Dienst, den Du mit Adminrechten installierst.
Du hast dann zwar keine Benutzeroberfläche, aber er läuft immer und kann nicht abgeschaltet werden, wenn er richtig installiert ist. Außerdem macht er ja sowieso nichts anderes als zu prüfen, ob die momentan laufenden Anwendungen beendet werden sollen, bzw. die gerade startende Anwewndung. Hierfür suche nach WMI
und Process bzw. Processes, damit kannst Du Anwendungen steuern. Ach Ich habe Dir auch ein kleines Beispiel. Das Stellt zwar nur die Prio des Prozesses ein, aber hilft bestimmt um die Funktionsweise zu verstehen. Natürlich kannst Du den Prozess Abschießen, wenn du das etwas modifizierst.
    Public Enum enumPrio
        RealTime = 1
        High = 2
        AboveNormal = 3
        Normal = 4
        BelowNormal = 5
        Idle = 6
    End Enum
 
    '*** Beschreibung:  Diese Funktion Stellt die Priorität der übergebenen 
    ' Anwendung auf 
    '***                den übergebenen Prioritätswert ein.
    '*** Hinweis:       Der Anwendungsname muss ohne '.exe' eingegeben werden.
    '*** Hinweis:       Bei der Ausführung über die Entwicklungsumgebung muss
    '***                '.vshost' an den Anwendungsnamen angefügt werden um das 
    '***                Aktuelle Programm an zu sprechen.
    Public Sub setPrio(ByVal Anwendungsname As String, ByVal curPrio As _
      enumPrio)
        Dim Stoppuhr As New cup_co.co_TimerInterface
        If System.Diagnostics.Debugger.IsAttached = True Then
            Stoppuhr.ZeitStoppenStarten()
        End If
 
        Try
            Dim processes As Object = Process.GetProcesses _
              'System.Collections.IEnumerable = Process.GetProcesses
            'Prozesse nach dem Anwendungsnamen durchsuchen.
 
            For i As Integer = 0 To processes.length - 1
                If processes(i).ProcessName.ToString = Anwendungsname Then
                    'Prio neu vergeben.
                    If Not processes(i).PriorityClass.ToString = _
                      curPrio.ToString Then
                        '   MsgBox(p.PriorityClass.ToString & " : " & curPrio)
                        Select Case curPrio
                            Case enumPrio.RealTime
                                processes(i).PriorityClass = _
                                  System.Diagnostics.Process.GetCurrentProcess._
                                  PriorityClass.RealTime
                            Case enumPrio.High
                                processes(i).PriorityClass = _
                                  System.Diagnostics.Process.GetCurrentProcess._
                                  PriorityClass.High
                            Case enumPrio.AboveNormal
                                processes(i).PriorityClass = _
                                  System.Diagnostics.Process.GetCurrentProcess._
                                  PriorityClass.AboveNormal
                            Case enumPrio.Normal
                                processes(i).PriorityClass = _
                                  System.Diagnostics.Process.GetCurrentProcess._
                                  PriorityClass.Normal
                            Case enumPrio.BelowNormal
                                processes(i).PriorityClass = _
                                  System.Diagnostics.Process.GetCurrentProcess._
                                  PriorityClass.BelowNormal
                            Case enumPrio.Idle
                                processes(i).PriorityClass = _
                                  System.Diagnostics.Process.GetCurrentProcess._
                                  PriorityClass.Idle
                            Case Else
                                processes(i).PriorityClass = _
                                  System.Diagnostics.Process.GetCurrentProcess._
                                  PriorityClass.Normal
                        End Select
                        Exit For
                    End If
                End If
            Next
 
            processes = Nothing
        Catch ex As Exception
            If Not IsNothing(cup_System.cls_System_Global.PersonalID) Then
                Me.Co_SystemComponent1.ErrorMail("co_Windows", _
                  cup_System.cls_System_Global.PersonalID.ToString & " WinUser" & _
                  ": " & GetWindowsUser(), New StackFrame().GetMethod().Name, _
                  ex, "", True, True, False, False)
            Else
                Me.Co_SystemComponent1.ErrorMail("co_Windows", "WinUser : " & _
                  GetWindowsUser(), New StackFrame().GetMethod().Name, ex, "", _
                  True, True, False, False)
            End If
        End Try
 
        If System.Diagnostics.Debugger.IsAttached = True Then
            Stoppuhr.ZeitStoppenBeenden("co_Windows  Funktion:" & New _
              StackFrame().GetMethod().Name, True)
        End If
 
    End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
"Uncloseable App"803comDEX19.07.06 08:39
Re: "Uncloseable App"616rub19.07.06 09: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