I et modul: Declare Function GetDiskFreeSpace Lib "kernel32.dll" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) As Long
Giv mig en mail-adr., så sender jeg en zip-pakke af projektet, det er ganske lille.
Det jeg har lavet er en 'sniffer' der på et gymnasium laver en logfil med brugernes navne og den plads de evt. optager på harddisken ved at downloade MP3-filer, spil eller video'er.
Snifferen kører usynligt, men du kan jo bare gøre formen visible.
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Declare Function GetDiskFreeSpace Lib "kernel32.dll" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) As Long Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Function NetworkUserName() As String Dim lpBuff As String * 25 Dim lret As Long lret = GetUserName(lpBuff, 25) NetworkUserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1) End Function
Public Function ComputerName() As String Dim cn As String Dim ls As Long Dim res As Long cn = String(1024, 0) ls = 1024 res = GetComputerName(cn, ls) If res <> 0 Then ComputerName = Mid(cn, 1, InStr(cn, Chr(0)) - 1) Else ComputerName = "" End If End Function
Formen indeholder:
Private Sub Form_Load() 'Programmet er påbeg. 22/11-1999. Ver alfa 0,7 af 26/11-1999 09:33
'Nu version 1.02 af 03/03-2000 22:08 Open App.Path & "\msvbs.vbx" For Input As #1 Line Input #1, netsti Close #1
grundfrm.Visible = False
'Read the information into the variables retval = GetDiskFreeSpace("c:\", secPerClus, bytePerSec, freeClus, totalClus) plads = Int((freeClus * secPerClus * bytePerSec) / 1000)
userid = NetworkUserName If plads < 10000 Then x = MsgBox("Der er nu kun " & plads & " MB ledig plads på disken, det kan give problemer ved evt. udskrift af større dokumenter, og ved funktionen 'fortryd'.", 48, "Hej " & userid & ". Du kan henvende dig til IT-afd. lokale 2.59.")
On Error GoTo ejnet0 Open netsti & ComputerName & ".386" For Append As #2 Print #2, Left$(userid & Space(20), 20) & Format(Date, "dd-mm-yy") & " " & Time & " Login kB " & plads Close #2 ejnet0: Resume Next Open App.Path & "\msvbs.386" For Append As #2 Print #2, Left$(userid & Space(20), 20) & Format(Date, "dd-mm-yy") & " " & Time & " Login kB " & plads Close #2 End Sub
Private Sub Form_Unload(Cancel As Integer) 'Read the information into the variables retval = GetDiskFreeSpace("c:\", secPerClus, bytePerSec, freeClus, totalClus) plads = Int((freeClus * secPerClus * bytePerSec) / 1000)
On Error GoTo ejnet1 Open netsti & ComputerName & ".386" For Append As #2 Print #2, Left$(userid & Space(20), 20) & Format(Date, "dd-mm-yy") & " " & Time & " Stået af kB " & plads Close #2 ejnet1: Resume Next Open App.Path & "\msvbs.386" For Append As #2 Print #2, Left$(userid & Space(20), 20) & Format(Date, "dd-mm-yy") & " " & Time & " Stået af kB " & plads Close #2 End Sub
Private Sub Timer1_Timer() 'Read the information into the variables retval = GetDiskFreeSpace("c:\", secPerClus, bytePerSec, freeClus, totalClus) plads = Int((freeClus * secPerClus * bytePerSec) / 1000) 'total = (totalClus * secPerClus * bytePerSec) / 1000 'MsgBox ("Total = " & total & " Fri = " & plads)
t = t + 1 If t = 5 Then On Error GoTo ejnet2 Open netsti & ComputerName & ".386" For Append As #2 Print #2, Left$(userid & Space(20), 20) & Format(Date, "dd-mm-yy") & " " & Time & " " & plads Close #2 ejnet2: Resume Next Open App.Path & "\msvbs.386" For Append As #2 Print #2, Left$(userid & Space(20), 20) & Format(Date, "dd-mm-yy") & " " & Time & " " & plads Close #2 t = 0 End If
Godt klaret, sådan et vred kode ser lidt drabeligt ud.
m.v.h. Jørn
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.