Hi,
Eigentlich wollte ich nur die Einstellung NoDriveTypeAutoRun mit AutoIt bearbeiten..
Aber wie forme ich in AutoIt ein Byte in einen String mit Nullen und Einsen?
..Und wieso nur ein Byte und kein Word?
..Und wieso kein DWord?
Ich weiß, daß es Programme gibt, die von System 'WasWeißIch' in das System 'WohinDennNoch'
transformieren können, aber warum mit Kanonen auf Spatzen schießen?
So entstand _myBin($Dez, $Trenner), auch um die Möglichkeiten von _IEPrt zu demonstrieren..
Sicherlich kein optimales Script und ein weites Betätigungsfeld für Optimierer, aber es
macht seine Arbeit
Spoiler anzeigen
Func _myBin($Dez, $Trenner="")
Local $hx=Hex($Dez, 8), $i, $j, $b="", $hb, $h, $s
If Abs($Dez)>2^32-1 Or $Dez<-2^31 Then Return "<font color=red>Ooops, kein Integer.."
If StringInstr("01", $Trenner) Then $Trenner="" ;0 und 1 als Trenner wären Unsinn..
For $i=1 To StringLen($hx)
$hb="0x" &StringMid($hx, $i, 1)
$h=""
$s=""
$j=0
Do
$h&=(BitAND($hb, 2^$j)<>0)*1
$j+=1
Until 2^($j)>$hb And Mod(StringLen($h), 4)=0
If $i<>1 And Mod($i, 2)<>0 Then $b&=$Trenner
For $j=StringLen($h) To 1 Step -1
$b&=StringMid($h, $j, 1)
Next
Next
Switch $Dez
Case 0 To 255
$i=8
Case 256 To 65535
$i=16+1*($Trenner<>"")
Case 65536 To 2^24-1
$i=24+2*($Trenner<>"")
Case Else
$i=StringLen($b)
EndSwitch
Return StringRight($b, $i) ;weitere Stringbearbeitung beim Benutzer..
EndFunc
Alles anzeigen
Das ist nur was für Puristen, wer sich das gesamte Script downloadet, erhält
natürlich auch noch eine schicke Ausgabe und als Bonbon die Funktion _myHex($Dez, $Anz).
Ooops, ich darf nur 2048 KB anhängen, dann eben anders: Download myBin.au3
Einzige Einschränkung: '0' und '1' sind als Trennzeichen für Binärstrings nicht zugelassen
Und nun fröhliches Bit-Zählen
Gruß
ytwinky