Avatar billede acp Nybegynder
18. juli 2002 - 15:59 Der er 8 kommentarer og
1 løsning

Se brugt diskplads

Hej

Er der en der kan hjælpe med dette ?

Jeg vil gerne have at jeg i mit program kan læse ud fra et label hvor meget diskplads der er ledig på C:

Altså sådan der:

Der er brugt "Brugt diskplads" ud af "Diskplads i alt"
Avatar billede snowball Novice
18. juli 2002 - 16:12 #1
Avatar billede acp Nybegynder
18. juli 2002 - 16:26 #2
Showball >> Jeg kan ikke rigtigt så det til at virke... kan du ikke lave et eksempel og sende til dig mig ???

Anders - ACP@DQD.DK
Avatar billede snowball Novice
18. juli 2002 - 16:38 #3
Jeg hverken bruger eller har VB, så det kan jeg desværre ikke !

Snowball
Avatar billede joern Nybegynder
18. juli 2002 - 16:38 #4
Hej acp.

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

Global retval, plads as single

I en kontrol:

retval = GetDiskFreeSpace("c:\", secPerClus, bytePerSec, freeClus, totalClus)

plads = Int((freeClus * secPerClus * bytePerSec) / 1000)

Taget fra eget projekt, har ikke haft brug for plads ialt.

m.v.h.  Jørn
Avatar billede acp Nybegynder
18. juli 2002 - 16:50 #5
Hej Joern

Når jeg lægger det nederste ind i form_load

label3.caption = = GetDiskFreeSpace("c:\", secPerClus, bytePerSec, freeClus, totalClus)

label4.caption = Int((freeClus * secPerClus * bytePerSec) / 1000)

får jeg følgende resultat = label3 = 1 og label 4 = 3050688

Hvad gør label3 ??? Er det muligt at lave label4 resultat om fra Byte og til Megabytes ?

Anders
Avatar billede joern Nybegynder
18. juli 2002 - 20:24 #6
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.

M.v.h.  Jørn
Avatar billede joern Nybegynder
18. juli 2002 - 20:29 #7
Hej jeg prøver at sætte ind her alligevel.

Modulet indeholder:

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)

'total = (totalClus * secPerClus * bytePerSec) / 1000
'MsgBox (netsti & ComputerName & ".386 " & total)

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
 
End Sub

Det var det hele

M.v.h. Jørn
Avatar billede acp Nybegynder
19. juli 2002 - 18:26 #8
Tak Jørn... Det virker nu.....
Avatar billede joern Nybegynder
19. juli 2002 - 19:40 #9
Godt klaret, sådan et vred kode ser lidt drabeligt ud.

m.v.h.  Jørn
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester