Visual Basic

Liebe/-r Experte/-in,

ich habe ein echtes Problem und von VB-Scripten keine Ahnung:

stellt euch vor ihr habt 17 html-dateien auf einem UNC-Pfad (also \Servername\Freigabe\1.html). Jeden Tag soll nach dem Login bei einem Netzwerkbenutzer eines davon aufgehen und zwar in Reihenfolge. Am 18.Tag dann wieder von vorne bei 1 beginnend. Das Problem: es kann sein das alle oder mehrere gelichzeitig starten; das html kein Problem aber eine temporäre ini oder so geht eben nicht. Erschwerend: wenn user sich heute schon eingeloggt hat soll er wenn dann das gleiche html bekommen aber auf keinen fall das nächste (das erst am nächsten Tag)

Idee von mir: auf dem laufwerk U: eine „checkdatei“ ablegen, welche eben das datum beinhaltet und somit eine Art Counter bildet.

Danke für jede Idee! Ich werf mich 1000x in den Staub für jeden guten Ansatz.

F.

Ich habe schon eine Idee welche Schritte das Programm zum öffnen der HTML vDatei machen sollte…

Wenn du den Timestamp (http://de.wikipedia.org/wiki/Zeitstempel) nimmst und durch 86400 teilst und das Ergenbiss davon abrundest bekommst du als ergebniss die Anzahl der tage die seit seit dem 1. Januar 1970 00:00 vergangen sind…

Wenn du die Anzahl der Tage durch 17 teilst, bekommst du einen wert zwischen 0 - 16, diesen wert kannst du nehmen um eine HTML-Datei zu öffnen.

Lauft im Intranet ein PHP Webserver? Damit währe das sicherer… dafür könnte ich dir die PHP datei schreiben…

Ansonsten wenn dir VB-Scripten lieber ist, kann ich das auch machen, was bevorzugst du?

Beim teilen der Anzahl der Tage durch 17 , must du natürlich den Modulus-Wert der Zahl errechnen…
(http://www.selfphp.de/funktionsreferenz/mathematisch…)

hallo,

muss es denn ein unbedingt VBScript sein? Damit kenne ich mich nicht aus. Mit einem VB-Programm wäre das aber ohne weiteres möglich. Ich würde es genau so machen wie du es geschrieben hast: über eine INI-Datei. In dieser wäre dann der Tag des letzten Starts, und dazu die Nummer abgespeichert. Bei jedem Start würde das Programm prüfen, ob der heutige Tag bereits in der INI steht, wenn nicht würde man die neue Nummer errechnen.

Diese Vorgehensweise ist allerdings recht anfällig gegenüber dem manuellen Umstellen des Datums auf dem Rechner und der Veränderung der INI-Datei durch den Benutzer…

WOW; das klingt aber mathematisch. Also wenn dann vbs-script weil das über ein Netlogon laufen muss.

Aber wenn Du mir das schreibst: wie kann ich mich revanchieren?

IN PHP bin ich besser deshalb erstmal die version in PHP. ``` <?PHP $anzahl_tage = floor ( time()/ 86400 ); // Berechnet die Anzahl der Tage seit dem 1. Januar 1970 00:00 vergangen sind.

 $anzahl_tage = bcmod ( $anzahl_tage, 17 ); // Teilt die Anzahl der Tage durch 17 und übergibt der variable den Restwert als Erbeniss.
 echo '<meta http-equiv="refresh" content="0; URL=http://www.page_nr_'.$anzahl_tage.'.de">';// Ruft die jeweilige seite auf. ?\> ``` Unbenanntes Dokument Die für VB-Scripten folgt noch. 

jepp; das klingt machbar. 'ne exe kann ich starten per logiscript

Wie gesagt: ich bin darin voll doof :smiley: Man sehe es mir nach :-S

So sieht meine VB-Scripten version davon aus…

"

%>
Unbenanntes Dokument

Das Skript ist eine Browserweiche die eine Automatische Weiterleitung per meta refresh macht.

Im moment werden folgendem HTML die Seiten aufgerufen werden:

http://www.page_nr_0.de/
http://www.page_nr_1.de/
http://www.page_nr_2.de/
.
.
.
http://www.page_nr_16.de/

Die Adresse im skript müste noch auf die richtigen HTML-Seiten angepasst werden

Ich mag vbs-script nicht, es hat keine timestamp Funktion eingebaut, lol oder?

Als HTA Datei währe folgende version besser.

Unbenanntes Dokument
anzahl_tage = Fix(DateDiff(„s“, „01/01/1970 00:00:00“, Now())/86400) ’ Berechnet die Anzahl der Tage seit dem 1. Januar 1970 00:00 vergangen sind.
anzahl_tage = anzahl_tage Mod 17 ’ Teilt die Anzahl der Tage durch 17 und übergibt der variable den Restwert als Erbeniss.
dim x : set x=window.document
x.open
x.write ("<iframe src=" & chr(34) & „http://www.page_nr_“ & anzahl_tage & „.de/“ & chr(34) & " width=" & chr(34) & „100%“ & chr(34) & " height=" & chr(34) & „100%“ & chr(34) & „>“)
x.close

Kopier doch jeden Tag um 0 Uhr die passende HTML Datei nach aktuell.html und überschreib die alte. Die aktuell.html zeigst Du dann allen Nutzern an, egal wie oft die sich am Tag einloggen.
Das ganze geht mit einer kleinen Batchdatei und dem Taskmanager :wink:
Grüße,
Litschi

***Beeindruckt bin***

Das werd ich dann heute Abend mal testen. Mein Dank wird Dir ewig hinterher hinken und ich lieg im Staub! Ich sag Bescheid ob’s klappt!

Naja; um ehrlich zu sein denk ich das dies eine für ein Großnetzwerk doch recht „antiquierte“ Version zum automatisieren von Abläufen. Bei 'nem Mininetzwerk kein Thema; wir reden hier aber über 150-200 PC’s und Usern :smiley:

Trotzdem Danke.

ALSO: zigTausen Dank an Dich; es funktioniert.

Lass mich wissen wenn ich mich revanchieren kann irgendwie…

Gruß frank

ich hätte da noch eine andere Idee, die kommt ganz ohne INI-Dateien aus. Du nimmst einfach ein Datum, und ordnest diesem in dem Script eine Zahl zu, sagen wir mal am 01.11.2009 hätte die html-datei mit der Nummer 7 geöffnet werden müssen. Von diesem Datum ausgehend kann man für jeden Tag die Nummer errechnen und das müsste auch mit VB-Script gehen.

wenn du möchtest, und es nicht gerade super eilig hast könnte ich versuchen sowas die nächsten tage zu programmieren :smile:

Danke Dir; aber es rennt. Weiter oben war da einer recht flinker Benny; damit tuckert es nach kleinen Anpassungen gut.

Aber riesen Dank für das Angebot!