Arada konu gözönünden kaçmış kusura bakmayın.
Programda ufak tefek değişiklikler yaptım. Button1 Click olayının kodları şu şekilde:
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
Dim mevcutIlke As WindowsPrincipal = DirectCast(Thread.CurrentPrincipal, WindowsPrincipal)
' continue programm
If mevcutIlke.IsInRole("Administrators") Then
Using dosya As StreamWriter = File.AppendText(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "drivers\etc\hosts"))
dosya.WriteLine(TextBox1.Text)
MsgBox("Satır eklendi")
End Using
Else
MsgBox("Yönetici haklarınız yok. Programı yönetici hakları ile çalıştırmalısınız.")
End If
Buton2 nin Click olayına aşağıdaki kodları yazacağız:
Dim dosyaAdresi As String
dosyaAdresi = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "drivers\etc\hosts")
ArananSatirlariDosyadanSil(dosyaAdresi, TextBox2.Text)
Burada yer alan ArananSatirlariDosyadanSil bir prosedür. Dosyanın adresini ve aranan kelimeyi parametre olarak alıyor. Prosedürümüz şu şekilde olacak:
Private Sub ArananSatirlariDosyadanSil(ByVal dosyaAdresi As String, ByVal arananKelime As String)
Dim okunanSatirlar() As String
Dim temizlenenSatirlar As New List(Of String)
okunanSatirlar = IO.File.ReadAllLines(dosyaAdresi)
For Each satir As String In okunanSatirlar
If satir.Contains(arananKelime) = False Then
temizlenenSatirlar.Add(satir)
End If
Next
File.Delete(dosyaAdresi)
File.WriteAllLines(dosyaAdresi, temizlenenSatirlar)
End Sub
Siz hosts dosyasında işlem yapmak istemişsiniz. Bu özel bir dosya olduğu için yönetici hakları olmadan çalışmayacaktır.
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için
Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.