Lotus Notes / Domino Sonstiges > Tipps und Tricks
Systeminformationen (API)
manuel:
Ich hab' da noch was:
Standard-Drucker ermitteln
--- Code: ---
Private Declare Function GetProfileString Lib "kernel32" _
Alias "GetProfileStringA" (ByVal lpAppName As String, _
ByVal lpKeyName As String, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Long) _
As Long
Private Sub GetStdPrinterName()
Dim PrinterName$, Driver$, Port$
Dim Buffer$, r&, X&, Y&
Buffer = Space(8192)
r = GetProfileString("windows", "Device", "", Buffer, Len(Buffer))
If r Then
Buffer = Mid(Buffer, 1, r)
X = InStr(Buffer, ",")
PrinterName = Mid(Buffer, 1, X - 1)
Y = InStr(X + 1, Buffer, ",")
Driver = Mid(Buffer, X + 1, Y - X - 1)
Port = Mid(Buffer, Y + 1)
Else
PrinterName = "?"
Driver = "?"
Port = "?"
End If
End Sub
--- Ende Code ---
oder eine VolumeInformation
--- Code: ---
Private Declare Function GetVolumeInformation& Lib "kernel32" _
Alias "GetVolumeInformationA" (ByVal lpRootPathName _
As String, ByVal pVolumeNameBuffer As String, ByVal _
nVolumeNameSize As Long, lpVolumeSerialNumber As Long, _
lpMaximumComponentLength As Long, lpFileSystemFlags As _
Long, ByVal lpFileSystemNameBuffer As String, ByVal _
nFileSystemNameSize As Long)
Const MAX_FILENAME_LEN = 256
Public Function SerNum(Drive$) As Long
Dim No&, S As String * MAX_FILENAME_LEN
Call GetVolumeInformation(Drive & ":\", S, MAX_FILENAME_LEN, _
No, 0&, 0&, S, MAX_FILENAME_LEN)
SerNum = No
End Function
--- Ende Code ---
CD-Fach öffnen/schließen
--- Code: ---
Private Declare Function mciExecute Lib "winmm.dll" _
(ByVal lpstrCommand As String) As Long
' Laufwerkstür öffnen
Call mciExecute("Set CDaudio door open")
' Laufwerkstür schließen
Call mciExecute("Set CDaudio door closed")
--- Ende Code ---
Dauer seit Anmeldung
--- Code: ---
Private Declare Function GetTickCount Lib "kernel32" () As Long
Dim H As Single, M As Single, S As Single, MS As Single
Dim strH$, strM$, strS$, strMS$
MS = GetTickCount()
MS = MS / 1000
H = Int(MS / 3600)
MS = MS - H * 3600
M = Int(MS / 60)
MS = MS - M * 60
S = Int(MS)
MS = Int((MS - S) * 10)
strH = CStr(H)
strM = Format(CStr(M), "##00")
strS = Format(CStr(S), "##00")
strMS = CStr(MS)
'lblTime.Caption = strH & ":" & strM & ":" & strS & ":" & strMS
--- Ende Code ---
eknori (retired):
Danke dir. Die Sache mit dem Standarddrucker funktioniert in deinem Fall leider nur unter Win 9x, da Win NT und 2000 die Informationen in der Registry ablegen.
Die VolInformation habe ich bereits implementiert
- Seriennummer
- Volumenname
- FileSystem
des Laufwerks
außerdem habe ich noch Funktionen zur Ermittllung verschiedener Parameterwerte des Arbeitsspeichers eingebaut. Wenn ich die Tests heute noch schaffe, stelle ich die neue Version auf meinen Server.
Wegen der Drucker habe ich noch ein anderes Projekt am Laufen.
Ich bin dabei eine neue Klasse zu schreiben, die es ermöglicht, den Standarddrucker temporär per LS zu wechseln, um z.B. NotesDokumente oder Attachments in das PDF Format umzuwandeln.
Ist aber nicht so einfach, weil, wie schon gesagt, die Infos zum Drucker nicht konsistent über alle Windows Versionen an einer Stelle stehen.
Ist ein ganz schöner Brocken, das kann ich sagen.
eknori
eknori (retired):
@All
habe gerade eine neue Version hochgeladen.
folgende Funktionen sind hinzugekommen.
Grösse des Arbeitsspeichers ermitteln
grösse des virtuellen ASrbeitsspeichers ermitteln
Seriennummer der Festpaltte
Dateisystem
Volume Name der Festplatte
und für Christopher noch die Funktionen
zum
shutdown
reboot
logoff und
poweroff
unter Windows 2000
zusätzlich noche eine Funktion zum Sperren der Workstation ( nur für W2K )
bei der Reboot funktion habe ich im ActionButton der Ansicht eine Sperre eingebaut. (der code ist gnadenlos, daher bitte vorher alle anderen Anwendungen schließen !!! )
probiert es mal aus und gebt mir bitte ein Feedback, ob irgendwelche unbeabsichtigten Fehlermeldungen auftauchen.
bisher bekannte Fehler :
die Funktion zur ermittlung der Soundkarte scheint irgendwie den Stack durcheinander zu bringen. Wenn man dann die IP des Host ermitteln will, crasht Notes.
viel Spaß beim Testen.
eknori
manuel:
Ich habe folgende Fehlermeldung bekommen:
Cannot find external name: GETREGISTEREDOWNER
Die Funktion ist auch nirgends deklariert!
eknori (retired):
Stimmt, ist noch in dem AktionButton als Funktionsaufruf enthalten.
Habe ich aber vorerst aus der Klasse verbannt.
Habs nochmal neu hochgeladen
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln