tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
1150
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Nil18
    Nil18 Nil18 ist offline Mitglied Gold
    Registriert seit
    Sep 2006
    Ort
    Wien Meidling / Österreich
    Beiträge
    128
    Hallo liebe Helfer =)

    Ich möchte einen "AutoBuilder" programmieren, der mir automatisch in diversen Abständen ein Projekt neu kompiliert. Und dazu muss er logischerweise abfragen, ob nicht ein Benutzer gerade das Projekt geöffnet hat.

    Daher meine Frage: Wie kann man die Geöffneten Dateien abfragen?

    Unter Systemsteuerung -> Verwaltung -> Computerverwaltung -> System -> Freigegebene Ordner -> Geöffnete Dateien sieht man welche Dateien ein Benutzer gerade offen hat. (Siehe Bild im Anhang)

    Zuständig dafür ist angeblich der Dienst "Server" bzw. "lanmanserver"
    Dieser Dienst wiederrum reisst nichts anderes hoch als eine Datei (?) namens "netsvcs".

    Weiss jemand ob und wie man (durch evtl. API Calls) die offenen Dateien auf diesem oder einen anderen Weg abfragen kann?

    Danke vielmals für die Hilfe!
    Ich zähle auf euch

    PS: Programmiert wird in MSVS 2005 (.NET 2.0)
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken [C#] Geöffnete Dateien abfragen-27745attachment.jpg  
     
    Liebe Grüße, Nil

    Die Summe des eingesetzten Know-hows beim Programmieren ist indirekt proportional zu der Zahl der für den Anwender verständlichen Funktionen.

  2. #2
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Anderer Vorschlag. Wie installierst du dir nicht folgende Umgebung:
    • CVS oder Subversion
    • CruiseControl.NET oder einfach nur MSBuild bzw. NAnt
    Damit hast du eine Sourcecode-Verwaltung und somit quasi auch ein Backup deines Sources bzw. ein Repository welches einfach zu sichern ist. Zweitens kannst du mittels MSBuild (ist bei .NET 2.0 ohnehin dabei) oder NAnt automatisierte Builds durchführen. Diese laden sich die aktuelle Version vom Sourcecontrol und kompilieren das ganze dann durch. Entsprechende Konfiguration natürlich vorausgesetzt. Dadurch ergibt sich dein Problem gar nicht, ist einfach zu bewerkstelligen (für das Aufsetzen des gesamten Szenarios inkl. Build-Scripts benötige ich ca. 30 Minuten - allerdings schon oft gemacht).

    Ein weiterer Vorteil: Du lernst wichtige Tools kennen, die in vielen Unternehmen eingesetzt werden.
     

  3. #3
    Avatar von Nil18
    Nil18 Nil18 ist offline Mitglied Gold
    Registriert seit
    Sep 2006
    Ort
    Wien Meidling / Österreich
    Beiträge
    128
    Hallo Norbert!
    Danke erstmal für deine Antwort!

    Die Sache ist folgende:
    Wir haben hier mehrere Server. Auf einem dieser speichern wir, via "SourceSafe", alle Projektdaten in regelmäßigen abständen. Also diese nach Datum sortierten Backups haben wir bereits.

    Allerdings werden an unseren Projekten ständig Dinge verändert (eh klar). Somit lädt man sich den neuesten Source vom SourceSafe runter (auschecken), verändert ihn und speichert ihn nachher wieder (einchecken).

    Das Autobuild Programm soll nun auf ALL unseren Serven und Workstations laufen. Es soll möglich sein, von überall aus Kompilieraufträge abzuschicken. Das Autobuild Programm soll ebenfalls dazu in der Lage sein, die Aufgabe aufzuteilen, sodass jeder Server nur einen Bruchteil der Arbeit erledigen muss.

    Angenommen man möchte ein Projekt neu kompilieren, welches 5 Abhängigkeiten hat. An 1 dieser Abhängigkeiten wird allerdings gerade etwas geändert.
    Nun kann der Kompiliervorgang natürlich nicht vorgenommen werden, da genau 1 Projekt gerade ausgecheckt ist und genau DAS soll der Autobuilder feststellen.

    Quasi: "Ok, ich soll Projekt xy kompilieren. Dazu brauche ich die dll ab, cd, ef und gh.
    Und dann wird jedes System durchsucht, ob gerade irgendwo eine der dlls in Verwendung ist.
    Wenn ja, kommt ein Fehler.

    Und der Grund, warum ich nicht eine der von dir genannten Methoden nehme ist, dass ich sonst auf JEDEM Server und auf JEDEM Rechner die von dir genannten Programme installieren und konfigurieren müsste.

    Und das wäre absolut uneffizient.
    Der Autobuilder ist ein eigenständiges Programm welches über eine Webseite zu Bedienen ist und fertig. Mehr brauchen wir nicht Der Dienst läuft irgendwo - kommuniziert mit allen anderen Rechnern - und fertig.

    Es wäre also in jedem Fall das einfachste, wenn mir wer sagen könnte wie ich nun die zur Zeit geöffneten Dateien auf jedem System herausfinden könnte.

    Vielen Dank.
    Geändert von Nil18 (12.01.07 um 13:42 Uhr)
     
    Liebe Grüße, Nil

    Die Summe des eingesetzten Know-hows beim Programmieren ist indirekt proportional zu der Zahl der für den Anwender verständlichen Funktionen.

Ähnliche Themen

  1. [VB6] Geöffnete Dateien protokollieren
    Von nicok im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 01.02.08, 20:57
  2. Antworten: 5
    Letzter Beitrag: 25.11.07, 20:37
  3. Vorhandensein von Dateien abfragen [C++]
    Von SuperSonik im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 02.03.05, 07:35
  4. Vom Server geöffnete Sessions abfragen
    Von Tservarius im Forum PHP
    Antworten: 4
    Letzter Beitrag: 08.01.05, 12:32
  5. Nach bestimmten Dateien abfragen
    Von -cta- im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 30.10.03, 18:23