Name Datenträger schreiben und lesen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

pauliv_de
*
Beiträge: 17
Registriert: Fr, 31.08.2007 08:56

Name Datenträger schreiben und lesen

Beitrag von pauliv_de »

Hallo, ich möchte die Dateinamen von Disketten und USB-Sticks in eine MySQL-Datenbank eintragen. Dazu ist es notwendig die Disketten eindeutig zu benennen und zu erkennen, wie man dies mit dem Befehl " label " , und auch wieder lesen wie man es mit dem Befehl " vol " machen kann...

In OOO (V3) finde ich dazu keine passenden Funktionen bzw. Befehle. die die Datenträgerbezeichnung bzw. den Volumename schreiben bzw. zurückgeben.

Ich würde mich freuen, hier eine Lösung bzw. einen Lösungsweg genannt zu bekommen.
Vielen Dank im Voraus
Paul
Garfield
Beiträge: 7
Registriert: Fr, 14.11.2008 22:28

Re: Name Datenträger schreiben und lesen

Beitrag von Garfield »

Hallo Paul,

eine direkten Weg mit OOo-Basic eine LW-Bezeichnung zu lesen oder zu schreiben kenne ich nicht.
Man kann es aber z.B. über eine Batch-Datei die man mit Basic beschreibt lösen.
Ist aber doch besser als nix. Oder?

Erstelle Dir mit einem Texteditor eine leere Datei mit dem Namen "Label.bat" und lege diese z.B auf dem Desktop ab.
(Direkt unter "C:" funktioniert bei mir komischerweise nicht.)

Mit folgendem Code kannst Du dann die Batchdatei beschreiben und diese wird dann auch direkt ausgeführt:

Code: Alles auswählen

Sub Disk_Label_schreiben
	aFile = "C:/Dokumente und Einstellungen/Juergen/Desktop/Label.bat" 'Pfad zur BAT-Datei
	bFile = converttoURL(aFile)
			iNumber = Freefile
			newLabel = "MYLABEL" 'Neuer Name für LW
			Open bFile For Output As #iNumber
			'BAT_Datei schreiben
			Print #iNumber, "CD \"
			Print #iNumber, "LABEL E: " & newLabel 'Laufwerksbuchstaben anpassen!!
			Print #iNumber, "EXIT"
			Close #iNumber			
	oSer = createUNOService("com.sun.star.system.SystemShellExecute")
	oSer.execute(aFile,0,0)'BAT-Datei ausführen
End Sub
Das Auslesen könnte man über die Registry realisieren:

Code: Alles auswählen

Sub Disk_Label_lesen
	GlobalScope.BasicLibraries.LoadLibrary("ImportWizard")
						'Pfad anpassen
	sTemplateKeyName = "Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\{cf49ef11-462b-11dd-9a20-806d6172696f}"
	sTemplateValueName = "_LabelFromReg"
	HD_Label = QueryValue(HKEY_CURRENT_USER, sTemplateKeyName, sTemplateValueName)
	msgbox "HD Label= " & HD_Label
End Sub
Du musst "nur" den Richtigen Pfad im

Code: Alles auswählen

MountPoints2\
finden, der bei mir z.B so lautete:

Code: Alles auswählen

{cf49ef11-462b-11dd-9a20-806d6172696f}
Ist das ein Lösungsansatz?

Garfield

Edit: Eventuell kann die Deine Firewall das Ausführen der BAT-Datei unterdrücken. Also die FW entsprechend einstellen!!!
Antworten