Hi,
eigentlich ist die Datei Hosts(mit der Zuordnung der IP-Adressen zu Hostnamen) bei mir
auf ReadOnly gesetzt, LmHosts desgleichen. Diese Dateien sind(nicht ohne Grund) zu finden
unter @SystemDir &"\drivers\etc". Da sind noch ein paar andere Dateien, naja, die habe ich
mit eingebaut.
Neulich war die aber nicht mehr ReadOnly(obwohl unverändert)!
Das Problem war nun:
1. Wer hat das ReadOnly-Bit von Hosts gelöscht?
2. Mach' ich das mit dem Explorer?
3. Mach' ich mir dafür ein Skript?
4. oder was???
Da ich 1. nicht mehr nachvollziehen konnte, 2. ich den eigentlich gar nicht benutze,
mußte ich zu 3. übergehen und habe AutoIt benutzt
(Mal ehrlich, da wär jetzt keiner drauf gekommen, oder?)
Mit diesem kleinen Tool kann ich das ReadOnly-Bit der Dateien ändern, die Dateien
ansehen, kleine Änderungen abspeichern(ihr werden schon sehen..)
Hauptsächlich ging es jedoch um das Erproben von GUI-Techniken und da kam mir dieses
Problem gerade recht..
Es ist nicht allzu komfortabel, es sind keine Bildchen drin und keine SystemSounds.
Eigentlich ist das Skript nur zum 'Mal-eben-nachsehen', aber ich hab wieder was
gelernt(z.B. ComboBox..)
Schauts euch einfach mal an..
Gruß
ytwinky
Spoiler anzeigen
;<AutoItScript>
#NoTrayIcon ;Ohne Icon im Tray, hängende Prozesse im ProcessViewer beenden
;+----------------------------------------------------------------------------+
;| Header: Bestimmen der Übergabeparameter |
;| ( Alles Strings(!!!), bis auf ArgC ) |
;| FontAnzeigeCheck: |Il1 sind Alt-0124, Großes i, Kleines L, Eins |
Const $Autor="Hosts.au3 ©2006 by ytwinky, MD"; |
;| EMail: PIII1kSystem-AutoIt3Forum@yahoo.de |
;| AutoIt3-Version: 3.1.1.123(beta) |
;| Editor: SciTE 1.68, feste Schriftart |
;| Zweck : Schablone für den Anfang, nach Bedarf anpassen |
;| Tab auf 2 setzen wg. Lesbarkeit |
;+----------------------------------------------------------------------------+
#include <GUIConstants.au3>
#include <File.au3>
; == GUI generated with Koda ==
Const $Hosts="Hosts", $LmHosts="LmHosts"
Const $etc=@SystemDir &"\drivers\etc\" ; den Pfad zu den Dateien Hosts und LmHosts ggfs. anpassen..
Const $Options=$Hosts &"|" &$LmHosts &"|networks|protocol|services", $stdCombo="Bitte wählen.."
Dim $Visible[2]=[$GUI_HIDE, $GUI_SHOW], $ChkSts[2]=[$GUI_UNCHECKED, $GUI_CHECKED]
Dim $DateiName, $s, $Editor
$HostsForm = GUICreate($Hosts &" und "&$LmHosts &" kontrollieren", 626, 451, 192, 125)
GUISetFont(10, 400, 0, "MS Sans Serif")
GUICtrlCreateLabel($Hosts &" und "&$LmHosts, 0, 0, 621, 33, $SS_CENTER)
GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000080)
GUICtrlSetTip(-1, "©2006 by ytwinky, MD")
$Auswahl = GUICtrlCreateCombo("Bitte wählen", 2, 40, 97, 24)
GUICtrlSetData(-1, $Options)
GUICtrlSetTip(-1, $stdCombo)
$ChkRO = GUICtrlCreateCheckbox("ist ReadOnly", 104, 40, 97, 25)
GUICtrlSetTip(-1, "gilt nicht für Bearbeitung")
GUICtrlSetState(-1, $Visible[Selected()])
$Info = GUICtrlCreateButton("Info", 359, 40, 120, 25)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$Speichern = GUICtrlCreateButton("Datei speichern", 216, 40, 120, 25)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
GUICtrlSetState(-1, $Visible[Selected()])
$Edit = GUICtrlCreateEdit("Hier kommt die gewählte Datei hin", 2, 67, 624, 385, -1, $WS_EX_CLIENTEDGE or $ES_OEMCONVERT)
GUICtrlSetState(-1, $Visible[Selected()])
$Quit = GUICtrlCreateButton("Quit", 504, 40, 120, 25)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
GUICtrlSetTip(-1, "na, was wohl..")
ControlFocus("", "", $Auswahl)
GUISetState(@SW_SHOW)
;$DateiName=RegRead("HKCR\.txt", "")
;$DateiName=RegRead("HKCR\" &$DateiName &"\shell\open\command", "")
;$Editor=StringMid($DateiName, 1, StringInstr($DateiName, Chr(34), 0, 2))
;~ MsgBox(4096, "Editor", )
;~ Exit
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE, $Quit
ExitLoop
Case $Auswahl
$DateiName=$etc &GUICtrlRead($Auswahl)
GUICtrlSetState($ChkRO, $Visible[Selected()])
GUICtrlSetState($ChkRO, $ChkSts[StringInstr(FileGetAttrib($DateiName), "R")>0])
GUICtrlSetState($Edit, $Visible[Selected()])
GUICtrlSetState($Speichern, $Visible[Selected()])
DateiLaden($DateiName)
Case $ChkRO
FileSetAttrib($DateiName, StringMid("-+", (GUICtrlRead($ChkRO)=1)*1+1, 1) &"R")
Case $Info
$DateiName=$etc &GUICtrlRead($Auswahl)
If Not Selected() Then $DateiName="Erst Auswahl treffen.."
InputBox("Info", "Diese Datei ist zu finden unter:", $DateiName)
Case $Speichern
If StringInstr(FileGetAttrib($DateiName), "R")>0 Then
MsgBox(4096, "Ooops, Schreibschutz..", $Dateiname &@Lf &"ist ReadOnly.."&@Lf &"ReadOnlyDateien werden NICHT gespeichert!")
Else
DateiSpeichern($DateiName)
EndIf
Case Else
;-))
EndSwitch
Wend
Exit
Func DateiLaden($DateiName)
Local $s="", $fptr=FileOpen($DateiName, 0)
Do
$s &= FileReadLine($fptr) &@CrLf
Until @error = -1
FileClose($fptr)
GUICtrlSetData($Edit, $s)
EndFunc
Func DateiSpeichern($DateiName)
Local $fptr, $s=GUICtrlRead($Edit)
MsgBox(4096, "Speichern", $Dateiname &@Lf &"wird gespeichert.."&@Lf &$s)
$fptr=FileOpen($DateiName, 1)
FileWrite($fptr, $s)
FileClose($fptr)
EndFunc
Func Selected()
Local $What=GUICtrlRead($Auswahl)
Return StringInstr(StringLower($Options), StringLower($What))>0
EndFunc
;</AutoItScript>
Alles anzeigen