Halli hallo hallöchen.
Heute gibts ein kleines Skript, das das Bootlogo verändert (sowas: [Blockierte Grafik: http://home.pages.at/chemikers-home/screenshots/setup/BOOTLOGO.jpg]
Kompatible Betriebssysteme:
-XP [getestet]
-Vista & Win 7 [nicht getestet], es spricht aber nix dafür, dass es nicht klappt
Über die Funktionsweise
Das Programm ändert in C:\boot.ini zwei Einträge. Dazu wird ein ausgewähltes Bild in den Windowsordner kopiert und in boot.bmp umbenannt.
Nix weiter
Der Code:
Spoiler anzeigen
#include <GuiConstants.au3>
#include <StaticConstants.au3>
#include<file.au3>
#include<array.au3>
#include<gdiplus.au3>
#RequireAdmin
Local $inidir = IniRead(@ScriptDir & "\info.ini", "Bootinidir", "dir", "C:\boot.ini")
Local $pos = 1
$Gui = GUICreate("Autoit Booteditor", 600, 270)
$back = GUICtrlCreateButton("Back", 400, 0, 200, 30)
GUICtrlSetState(-1, $gui_disable)
$next = GUICtrlCreateButton("Next", 400, 30, 200, 30)
$add = GUICtrlCreateButton("Add bootlogo", 400, 60, 200, 30)
$aslogo = GUICtrlCreateButton("Use as bootlogo", 400, 90, 200, 30)
$default = GUICtrlCreateButton("Use default bootlogo", 400, 120, 200, 30)
$change = GUICtrlCreateButton("Find boot.ini", 400, 150, 200, 30)
$pic = GUICtrlCreatePic(@ScriptDir & "\pic" & $pos & ".bmp", 0, 0, 400, 270)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Switch $msg
Case $gui_event_close
Exit
Case $back
GUICtrlDelete($pic)
$pos = $pos - 1
$pic = GUICtrlCreatePic(@ScriptDir & "\pic" & $pos & ".bmp", 0, 0, 400, 270)
GUICtrlSetState($next, $gui_enable)
If $pos = 1 Then GUICtrlSetState($back, $gui_disable)
Case $next
$list = _FileListToArray(@ScriptDir, "*.bmp")
GUICtrlDelete($pic)
GUICtrlSetState($back, $gui_enable)
$pos = $pos + 1
$pic = GUICtrlCreatePic(@ScriptDir & "\pic" & $pos & ".bmp", 0, 0, 400, 270)
If $pos = $list[0] - 1 Then GUICtrlSetState($next, $gui_disable)
Case $add
$openfiles = FileOpenDialog("Chose the bootlogo, you'd wish to add", @DesktopDir, "BMP-Files(*.bmp)")
$list = _FileListToArray(@ScriptDir, "*.bmp")
_GDIPlus_Startup()
$tempfile = _GDIPlus_ImageLoadFromFile($openfiles)
$width = _GDIPlus_ImageGetWidth($tempfile)
$height = _GDIPlus_ImageGetHeight($tempfile)
$pixelformat = _GDIPlus_ImageGetPixelFormat($tempfile)
_gdiplus_shutdown()
[/autoit] [autoit][/autoit] [autoit]If $width <> 640 Or $height <> 480 Or StringInStr($pixelformat, "16") = 0 Then
MsgBox(0, "Error", "Please chose a file, with a width of 640*480")
Else
FileCopy($openfiles, @ScriptDir & "\pic" & ($list[0] + 1) & ".bmp")
EndIf
Case $aslogo
_aslogo($pos)
Case $change
$inidir2 = FileOpenDialog("Find boot.ini", "C:\", "Ini-Files(*.ini)")
If StringLen($inidir2) <> "" Then
IniWrite(@ScriptDir & "\info.ini", "Bootinidir", "dir", $inidir2)
$inidir = $inidir2
EndIf
Case $default
_default()
EndSwitch
WEnd
Func _aslogo($pos)
If FileExists($inidir) Then
$sectionread = IniReadSection($inidir, "operating systems")
If StringInStr($sectionread[1][1], " /bootlogo") = 0 Then
For $i = 0 To 1
IniWrite($inidir, "operating systems", "", $sectionread[1][$i] & " /bootlogo")
Next
EndIf
If StringInStr($sectionread[1][1], " /noguiboot") = 0 Then
For $i = 0 To 1
IniWrite(@DesktopDir & "\boot.ini", "operating systems", "", $sectionread[1][$i] & " /noguiboot")
Next
EndIf
FileCopy(@ScriptDir & "\pic" & $pos & ".bmp", @WindowsDir & "\boot.bmp", 1)
EndIf
EndFunc ;==>_aslogo
Func _default()
MsgBox(0, "Default settings", "Delete the parameters ' /noguiboot' and ' /bootlogo', which are included in " & $inidir2)
EndFunc ;==>_default
Nun viel Spaß und viel Erfolg beim Testen,
Gruß,
Billie
__________________________________________________________________________
Im Anhang ist der Download mit der exe, mit ini's und 3 Bootlogos.
Für Schäden übernehm ich keinerlei Haftung . Wenn ihr auf die Sicherheit des Programmes nicht vertraut, macht einfach nen Systemwiederherstellungpunkt.
Edit: Kleine Sachen schon geändert. Dateien müssen in 16-Bit abgespeichert sein!