tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
547
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Hi,

    Ich möchte mir ein kleines VB-Programm erstellen, mit der ich in der Windows-Hosts und in der Apache-VirtualHosts schreiben kann.

    OS = Win 7

    muss ich da was beachten wie z.b: Benutzerrechte?

    Wie kann ich die Hosts-Datei auslesen und an gewünschter stelle einen neuen Eintrag machen? Ich hab bisher nur Ausgaben gemacht mit VB aber noch nicht in Datein schreiben...
     

  2. #2
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    Ich empfehle da gerne den VB-Grundlagenkurs von Rolf Hirte, da wird auch das Thema Schreiben von Dateien durch genommen.


    Der Doc!
     
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

  3. #3
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Den werd ich mir auf jedenfall mal ansehen, jedoch steht in meinem Buch auch einiges womit ich aber nicht wirklich klar komme.
    Habe es jetzt geschafft in die apache-Conf zu schreiben mit:

    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
    Dim Path As String = "D:\Server\Apache2\conf\extra\httpd-vhosts.conf"
                Dim HostsPath As String = "c:\windows\system32\drivers\etc\hosts"
     
                Dim RootDirectory As String = "D:/Server/Apache2/htdocs/"
                Dim VhostName As String = DocumentRootInput.Text
     
                Dim VhostWriter As New StreamWriter(Path, True)
                Dim WinHosts As New StreamWriter(HostsPath, True)
     
                Dim Hosttext As String
                Hosttext = "#VHOST " & VhostName & vbCrLf & _
                    "<VirtualHost *:80>" & vbCrLf & _
                    "   DocumentRoot """ & RootDirectory & VhostName & """" & vbCrLf & _
                    "   ServerName " & VhostName & ".local" & vbCrLf & _
                    "   <Directory """ & RootDirectory & VhostName & """>" & vbCrLf & _
                    "       Options FollowSymLinks" & vbCrLf & _
                    "       AllowOverride All" & vbCrLf & _
                    "       Order deny,allow" & vbCrLf & _
                    "       Allo from all" & vbCrLf & _
                    "   </Directory>" & vbCrLf & _
                    "</VirtualHost"
     
                VhostWriter.WriteLine(Hosttext)
                VhostWriter.Close()

    Nun stellt sich die Frage ob ich für die Windows-Hosts besondere Berechtigungen brauche.
    Normalerweise wenn das Script vom Aktuellen User ausgeführt wird und der auch die benötigen Rechte hat sollte doch nichts im Wege stehen, oder?


    @ mod
    Bitte Thema ins richtige Forum schieben, gehört ins VB.Net
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    [QUOTE=Maniac_81;1921791@ mod
    Bitte Thema ins richtige Forum schieben, gehört ins VB.Net[/QUOTE]

    Das wollt ich beim anschauen des Codes auch gleich sagen -> ergo, verschoben
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    @ yaslaw
    Danke

    Und genau da hab ich das Problem schon mit

    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    Dim Daten As FileStream
                Dim Dateiname As String = HostsPath
                Dim Schreiben, Lesen As String
                Daten = New FileStream(Dateiname, FileMode.OpenOrCreate, FileAccess.Read)
     
                Schreiben = Daten.CanWrite
                Lesen = Daten.CanRead
     
                MsgBox(Schreiben)
    nicht auf die Hosts-Datei zugreifen kann weil sie von einem anderen Prozess verwendet wird.
     

  6. #6
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    Verwendest du Vista/7? dann musst du dein Programm auch mit Adminrechten starten lassen, sonst wird dir der Schreibzugriff auf die Windows-Hosts-Datei verweigert (kannst du am normalen Editor sehen, ohne Adminrechte ist da nichts mit drüber speichern).


    Der Doc!
     
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

  7. #7
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Wie im ersten Post geschrieben verwende ich Win7.

    Mein Benutzerkonto hat vollzugriff auf die windows-hosts... Es funktioniert indem ich es genauso schreibe wie in die Apache Config, jedoch weiß ich nicht wie ich es dann prüfen kann ob es geschrieben hat.

    Desweiteren möchte ich gerne eine Progressbar mit einbauen, da noch eine start/stop des Apachen-Dienstes implementiert wird. Wie kann ich nun feststellen wie weit der Prozess ist, damit ich es der Progressbar übergeben kann?
     

  8. #8
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    Es ist keine Frage des Benutzerkontos, auch wenn du mit einem Admin-Konto unterwegs bist sind Programmen durch die UAC Grenzen gesetzt. Erst wenn du ein Programme als Administrator startest (entweder über deine Kompilierungseinstellungen oder über die Rechte Maustaste -> Als Administrator ausführen) hast du Vollzugriff. Das ganze merkst du, dass Windows dich beim starten wegen diesen besonderen Rechten fragt.

    Betr Apache, ich hab keine Ahnung, ob das System da eine Rückmeldung über den genauen Stand der Start-/Stoppprozesses gibt, da wäre eher eine Sanduhr sinnvoll die zeigt, dass das System nicht eingefroren ist.


    Der Doc!
    Geändert von DrSoong (11.01.11 um 12:37 Uhr)
     
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

  9. #9
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Per Debugg im Visual Studio wird jetzt zumindest mal alles geschrieben wie ich mir das vorgestellt hatte.

    Wie kann ich jetzt nich den Apachen neustarten aus dem Programm heraus?

    mit
    Code vb:
    1
    2
    3
    
    Sub (....)
         Shell("D:\Server\Apache2\bin\httpd.exe -k restart", vbHide)
    End Sub

    Bleibt der Dienst so wie er ist...
     

  10. #10
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Apache restart wäre gelöst, diesen habe ich mit

    Code vb:
    1
    
    Shell("D:\Server\Apache2\bin\httpd.exe -w -n Apache2.2-Zend -k restart")
    gelöst.

    Nun habe ich ztotz kompilierungseinstellungen der UAC
    Code :
    1
    
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
    keine Berechtigung (trotz "ausführen als administrator") um in die Windows-Hosts zu schreiben.
     

Ähnliche Themen

  1. Virtuellen Server
    Von David_D im Forum Virtualisierung (VMWare, Virtual PC & Co.)
    Antworten: 0
    Letzter Beitrag: 01.11.10, 11:52
  2. Auf virtuellen Server von Host zugreifen?
    Von vmuserserv im Forum Virtualisierung (VMWare, Virtual PC & Co.)
    Antworten: 1
    Letzter Beitrag: 18.03.09, 21:07
  3. Datenbankstruktur und Tabellen von Host A nach Host B kopieren
    Von zeromancer im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 07.06.04, 13:00
  4. Fragen zum virtuellen Server
    Von Nauslop im Forum Hosting & Webserver
    Antworten: 2
    Letzter Beitrag: 26.03.04, 17:09