Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Ersatz für Winfile.exe-Funktionalität

trara01 / 3 Antworten / Baumansicht Nickles

Winfile.exe bietet unter Win NT 4.0 die Möglichkeit unter Eigenschaft einer Datei zu sehen, von wem diese in Benutzung ist und hier kann man dann auch gleich jemanden oder alle Anwender rausschmeißen. Aber genau dies geht wenn ich winfile.exe unter Windows 2000 starte leider nicht mehr.
Schade eigentlich. Für gelegentliche Datenbankreparaturen aus der Ferne könnte man dies immer wieder gut gebrauchen..... Vielleicht kennt ja jemand eine andere Möglichkeit, oder ein Codebeispiel für VB, mit dem diese Funktionalität ebenfalls gewährleistet werden kann.


Danke!

bei Antwort benachrichtigen
T-Rex trara01 „Ersatz für Winfile.exe-Funktionalität“
Optionen

Wenn es Dir um Datenbanken geht, habe ich hier was mit ADO für Dich:

Option Explicit

' ACHTUNG:
' Code funktioniert nur, wenn "Microsoft ActiveX Data Objects" unter
' Projekt-Verweise aktiviert ist!

Private Function EntferneNullChar(ByVal ZeichenKette As String) As String
' Ist ein Nullchar enthalten?
If (InStr(1, ZeichenKette, vbNullChar) > 0) Then
' Ja, also den Text davor zurückgeben
ZeichenKette = Left(ZeichenKette, InStr(1, ZeichenKette, vbNullChar) - 1)
End If

' Rückgabe setzen
EntferneNullChar = ZeichenKette
End Function

Public Sub AngemeldeteBenutzer(DieListe As Control, DatenbankOrt As String)
' Speicher reservieren
Dim dbConnect As ADODB.Connection
Dim rsAbfrage As ADODB.Recordset
Dim strConnect As String
Dim strLogin As String
Dim strComputer As String
Dim strAusgabe As String
Dim rsCount As Long

' Verbindung zum Datenbank-Objekt aufbauen
Set dbConnect = New ADODB.Connection

' Verbindungstext zur Datenbank erstellen
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DatenbankOrt

' Datenbank öffnen
dbConnect.Open strConnect

' Schema öffnen
Set rsAbfrage = dbConnect.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")

' An das Ende der Abfrage gehen
rsAbfrage.MoveLast

' An den Anfang der Abfrage gehen
rsAbfrage.MoveFirst

' Alle Datensätze durchlaufen
For rsCount = 1 To rsAbfrage.RecordCount
' Den UserNamen kopieren
strLogin = EntferneNullChar(rsAbfrage.Fields("Login_Name").Value)

' Den ComputerNamen kopieren
strComputer = EntferneNullChar(rsAbfrage.Fields("Computer_Name").Value)

' Ausgabe erstellen
strAusgabe = "Benutzer " & strLogin & " vom Computer " & strComputer

' Ausgabe in die Liste einfügen
Select Case LCase(TypeName(DieListe))
Case "combobox", "listbox:"
DieListe.AddItem strAusgabe
Case Else
Debug.Print strAusgabe
End Select

' Nächster Datensatz
rsAbfrage.MoveNext
Next rsCount

' Abfrage schließen
rsAbfrage.Close

' Verbindung trennen
dbConnect.Close
End Sub

 GrüßeT-Rex 
bei Antwort benachrichtigen
trara01 T-Rex „Wenn es Dir um Datenbanken geht, habe ich hier was mit ADO für Dich: Option...“
Optionen

Hallo T-Rex,

Danke für Deine prompte Antwort.
Ich werde mir die Sache gleich mal anschauen.
Soweit mir bekannt ist, werden die verwendeten Access-Datenbanken nach dem Doa-Modell genutzt, insofern weiß ich leider noch nicht, ob ich hiermit weiterkommen werde. Ich versuchs halt mal einfach.

Gruß
Trara01

bei Antwort benachrichtigen
T-Rex trara01 „Hallo T-Rex, Danke für Deine prompte Antwort. Ich werde mir die Sache gleich...“
Optionen

Das ist egal. Wenn alle anderen mit DAO darauf zugreifen, kannst Du die Datenbank trotzdem mit ADO befragen.

 GrüßeT-Rex 
bei Antwort benachrichtigen