- Offizieller Beitrag
Hi,
@ Ritzelrocker04 : Danke, das war ich doch schon länger
Oscar : Sieht ganz gut aus, außer dass die Anzeige beim Update kurz verschwindet.
Wenn du noch was einbauen willst, dann bin ich ja mal gespannt.
So long,
Mega
Hi,
@ Ritzelrocker04 : Danke, das war ich doch schon länger
Oscar : Sieht ganz gut aus, außer dass die Anzeige beim Update kurz verschwindet.
Wenn du noch was einbauen willst, dann bin ich ja mal gespannt.
So long,
Mega
Hallo Oscar,
auf meiner gedrittelten HDD wird nur auf dem letzten Teil (E:\) das Gerät ausgegeben.
Gruß !
Man liest sich...
Euer Ritzelrocker04
Ja, ebenso:
C: ,D: (NTFS) unbekannt
G: (FAT32) WDC ...
@Ritzelrocker & Prog@ndy: Könnt ihr beide mal die 2 Scripte aus dem Anhang ausführen und mir die Log-Dateien als PN zuschicken?
Als ich mir die Funktionen genauer betrachtet hatte, hatte ich schon so eine Befürchtung, dass es mit mehreren Partitionen Probleme gibt. Meine Platten haben jeweils immer nur eine Partition, weshalb es bei mir klappt.
Falls ihr Bedenken habt wegen den Daten in den Log-Dateien: das sind Angaben über die Laufwerke, die in eurem Rechner eingebaut sind. Ich versichere euch, dass ich die Daten nur für die Anpassung des Scripts verwende und sie anschließend löschen werde. Ich hoffe, ihr vertraut mir, ansonsten müßte ich mir eine Festplatte aus einem alten Rechner ausbauen und diese entsprechend partitionieren / formatieren, um das selbst testen zu können.
Kommando zurück! Ich denke, dass ich es auch so hingekriegt habe. Theoretisch müßte diese Version die Hardware auch bei mehreren Partitionen anzeigen. Könnt ihr das mal testen?
Version: 3.4.1.0
Hallo Oscar,
das hat mal wieder gut hin gehauen. Bei mir funktioniert es und auch das Optionsfenster sieht besser aus.
Tipp bzw. Herausforderung:
Windows kann bei mir auch Brenn- und Leselaufwerke erkennen (CD/DVD)
Weiterhin viel Erfolg !
Hi,
ein Vresuch:
[autoit]MsgBox(0, 'My CDRW Drive is:', _detectBurnDrive())
[/autoit][autoit][/autoit][autoit]Func _detectBurnDrive()
Local $Drive = ''
Local $VolReg = RegRead('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CD Burning', 'CD Recorder Drive')
If Not @error Then
Local $MD = 'HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices'
Local $VolReg = RegRead($MD, '\?' & StringMid($VolReg, 3, StringLen($VolReg) - 3))
For $i = 1 To 50
$var = RegEnumVal($MD, $i)
If @error <> 0 Then ExitLoop
If RegRead($MD, $var) = $VolReg And StringLeft($var, 4) = '\Dos' Then $Drive = StringRight($var, 2)
Next
EndIf
Return $Drive
EndFunc ;==>_detectBurnDrive
So long,
Mega
Ich habe das jetzt so gelöst:
Func _CheckWriter($drive)
Local $reg, $k, $tmp, $val
$reg = RegRead('HKLM\SYSTEM\MountedDevices', '\DosDevices\' & $drive)
If Not @error Then
For $k = 1 To StringLen($reg) - 2 Step 2
$tmp = _HexToString(StringMid($reg, $k, 2))
If $tmp <> "" Then
$val = $val & $tmp
EndIf
Next
$reg = StringSplit($val, '#')
$reg[1] = StringReplace($reg[1], '\??\', '')
$tmp = RegRead('HKLM\SYSTEM\CurrentControlSet\Enum\' & $reg[1] & '\' & $reg[2] & '\' & $reg[3], 'LowerFilters')
EndIf
If @error Then
Return 0
Else
Return 1
EndIf
EndFunc
Das Programm erkennt also jetzt einen Brenner. Außerdem wird jetzt überprüft, ob SpaceBar bereits gestartet ist (_Singleton), so dass es nur einmal (im Sinne von gleichzeitig) gestartet werden kann. Das Problem mit dem Update habe ich auch behoben.
Version: 3.4.1.1
Hallo Oscar,
richtig Gut jetzt geworden, funktioniert klasse
Weiterhin viel Erfolg !
Kommando zurück! Ich denke, dass ich es auch so hingekriegt habe. Theoretisch müßte diese Version die Hardware auch bei mehreren Partitionen anzeigen. Könnt ihr das mal testen?
Version: 3.4.1.0
Bei mir geht es noch nicht. Zwei Partitionen haben die gleiche ID ?!?
//Edit: Ach ja, die erweiterten Partitionen ...
Computer: localhost
==========================================
Antecedent: \\**\root\cimv2:Win32_DiskPartition.DeviceID="Disk #0, Partition #0"
Dependent: \\**\root\cimv2:Win32_LogicalDisk.DeviceID="C:"
EndingAddress: 62915166719
StartingAddress: 32256
---------------------NewLine--------------------------------
Antecedent: \\**\root\cimv2:Win32_DiskPartition.DeviceID="Disk #0, Partition #1"
Dependent: \\**\root\cimv2:Win32_LogicalDisk.DeviceID="D:"
EndingAddress: 136317565439
StartingAddress: 62915198976
---------------------NewLine--------------------------------
Antecedent: \\**\root\cimv2:Win32_DiskPartition.DeviceID="Disk #0, Partition #1"
Dependent: \\**\root\cimv2:Win32_LogicalDisk.DeviceID="G:"
EndingAddress: 200038809599
StartingAddress: 197061290496
---------------------NewLine--------------------------------
Alles anzeigen
@Prog@ndy: Kannst Du diese Version mal testen. Damit sollte auch dieser Spezialfall 'erschlagen' sein.
Version: 3.4.1.2
Noch ein paar kleine Änderungen:
- gemountete TrueCrypt-Laufwerke werden anders als normale Festplatten angezeigt (anderes Icon und bei den Datenträger-Informationen nicht mehr als 'Unbekannt')
- Das Einlegen einer Audio-CD wird jetzt auch automatisch erkannt
- Wenn ein Netzwerklaufwerk nicht erreichbar ist, wird das jetzt entsprechend dargestellt (anderes Icon)
Version: 3.4.1.3
Screenshot:
autoit.de/wcf/attachment/1800/
Ja, jetzt gehts.
//Neue Version:
Änderungen V 3.4.1.4:
- EjectMedia wird Mit FileInstall erstellt.
- close-icon als ressource eingebaut
(Wenn nicht kompiliert + close.ico fehlt, dann wird shell32.dll, -132 [rotes X] verwendet)
- Optionsdialog mit Transparenz.
- Object-Bug durch einmaliges Erstellen umgangen
- In Funktionen $title durch den HWnd in $gui ersetzt
- Lässt sich nur noch andocken, wenn sich das Fenster am rechten Rand befindet.
Alles anzeigen
Coole Sache! Jetzt geht das ein-/ausfahren viel schneller.
Das mit der Transparenz finde ich persönlich überflüssig, aber das ist ja Geschmackssache.
Bei der _Refresh()-Funktion bleibe ich aber lieber beim:
[autoit]
GUISetState(@SW_HIDE, $GUI)
[...]
GUISetState(@SW_SHOW, $GUI)
Das kurze aus- und wieder einblenden ist mir lieber als das 'Blättern' der GUI-Elemente.
Trotzdem: Gute Zusammenarbeit! So nebenbei lerne ich immer noch was dazu.
Ich fürchte nur, mir sind die Ideen ausgegangen. Mir fallen keine Erweiterungsmöglichkeiten mehr ein.
Bauen wir am oberen Rand doch noch eine Schnellstartleiste für ~5 Programme ein
//Edit: Die Transparenz hatte halt noch Platz, nachdem ich die nun unnötige Close- Buttonfarbe gelöscht hatte
Hi,
z.B. Netzlaufwerke trennen/verbinden
Externe Festplatten (USB) abmelden
usw.
So long,
Mega
Das wichtigste ist wohl mal Quellcode aufräumen
ZitatExterne Festplatten (USB) abmelden
...
Das heißt, eine Umschaltung zwischen
-RemoveDrive für Festplatten und Sticks
und
-EjectMedia für Kartenleser (wird bisher für alles verwendet, geht bei Festplatten aber nicht. Benötigt Admin-Rechte oder USBDLM
Hmmm...ich habe bereits eine Schnellstartleiste (unten neben der Taskleiste). Wo ist der Sinn etwas in die SpaceBar zu packen statt nach unten?
@Xeno: Das mit den externen Festplatten ist mir erst durch Deinen Hinweis aufgefallen. Ich dachte, die binden sich auch als Wechseldatenträger ein und könnten ebenfalls per EjectMedia entfernt werden.
Ich habe das jetzt mit RemoveDrive gelöst.
Außerdem habe ich die Funktion _NetworkDrive() entfernt. Die gab es bereits in Form von DriveMapGet().
Version 3.4.1.5
Nochmal Änderungen:
Änderungen V 3.4.2.0:
- Das Info GUI-Fenster wird an die aktuelle Position des HauptFensters auf dem Desktop angepasst
- Auf XP und 2000 erfolgt das einblenden über WinAnimate immer an der richtigen Stelle
(Auf anderen Systemen wird nur bei rechts Angedocktem Fenster richtig eingeblendet)
- Einblenden des Hauptfensters wieder etwas verlangsamt.
- Vor dem Refresh wird das Fenster für Repaint gesperrt -> kein Flackern oder Hide mehr
- Code geordnet
Alles anzeigen