cewiethemaster
Goto Top

Kleiner Netzwerkchat mittels BATCH

Hallo, Heute möchte ich euch zeigen, wie man einen Kleinen Chat auf BATCH-Basis schreibt.
Ein bisschen Erfahrung ist hilfreich...

Also.
Zuerst braucht man einen Netzwerkordner, auf dem alle user Lese & Schreiberechte haben (bei mir Y:\docs)
Und wir legen folgende Ordnerstruktur an:
36125c14fc34004a7801fcb14b5b96e0

als nächstes nehmen wir den MS-Editor (Start->Ausführen->NOTEPAD)
Hier schreiben wir unseren Start-Dialog hinein...

Y:\docs\start.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo benutzer login(1) oder Gastzugang(2) oder exit (e)?
set /P X= 1/2/e?_ 
if %X% == 1 goto :login
if %X% == 2 goto :guest
if %X% == e exit
goto :fail1

:login
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Anmeldung
Echo.
set /P user= Username:
Echo.
if not exist Y:\docs\datas\sources\users\%user%.bat goto :fail1
call Y:\docs\datas\sources\users\%user%.bat

:guest
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Error
set errornum= 002
set descriptioneng= guest deactivated by Admin...
set solutioneng= please log in...
set descriptionde= Gast deaktiviert durch Admin...
set solutionde= bitte loggen Sie sich ein...
Echo.
Echo ErrorNumber: %errornum%
echo.
echo %descriptioneng%
Echo %solutioneng%
Echo.
Echo %descriptionde%
Echo %solutionde%
Echo.
Echo PRESS ENTER...
pause > nul
goto :start

:fail1
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Error
set errornum= 001
set descriptioneng= Unrecognized input...
set solutioneng= please retry your input...
set descriptionde= Unerkannter Eintrag...
set solutionde= bitte wiederholen Sie Ihren Eintrag...
Echo.
Echo ErrorNumber: %errornum%
echo.
echo %descriptioneng%
Echo %solutioneng%
Echo.
Echo %descriptionde%
Echo %solutionde%
Echo.
Echo PRESS ENTER...
pause > nul
goto :start

Zur erklärung...

Im 1ten Abschnitt wird mittels SET /P ermittelt, wie man den Chat nutzen will...
Per Login oder per gastzugang (ich habe keinen Gastzugang geschrieben.)
Bei Login springt er zum login-Anker...

im 2ten Abschnitt (login-anker) wird nach einem Usernamen gefragt.
Anschliesend wird im Verzeichnis Y:\docs\datas\sources\users\ gesucht, ob eine Batchdatei mit dem namen des Users vorhanden ist.
Wenn ja, wird diese Aufgerufen
Wenn nicht,springt es zum Fail1-anker...

Beim Guest-Anker steht,dass der Gastzugang deaktiviert wurde (weil ich ihn nicht mitgeschrieben habe)
anschliesend springt er wieder nach oben zum 1ten Abschnitt

Im letzet Teil (fail1-anker) wird geschrieben, dass eine ungültige eingabe gemacht wurde.
und es wird wieder zum Start gesprungen...


Als nächstes die datei, die für den adminlogin zuständig ist:

Y:\docs\datas\sources\users\administrator.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo Administrative Login...
echo.
echo.
echo Bitte gib das Passwort für den Adminzugang ein?
set /P X= Password?_ 
if exist Y:\docs\wordspass\admin.pwd goto :ok
goto :fail1

:ok
Echo.
Echo.
Echo Das einegeben passwort %X%...
pause > nul
if exist Y:\docs\wordspass\%X%.pwd goto :ok2
goto fail1

:ok2
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo Administrative Login...
echo.
echo.
echo Login erfolgreich...
Echo Sie werden weitergeleitet...
ping /N 3 localhost > nul
call Y:\docs\datas\sources\admin.bat

:fail1
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Error
set errornum= 003
set descriptioneng= Password fail...
set solutioneng= please retry your input...
set descriptionde= Falsches Passwort...
set solutionde= bitte wiederholen Sie Ihren Eintrag...
Echo.
Echo ErrorNumber: %errornum%
echo.
echo %descriptioneng%
Echo %solutioneng%
Echo.
Echo %descriptionde%
Echo %solutionde%
Echo.
Echo PRESS ENTER...
pause > nul
goto :start

Im 1ten block wird nach dem Adminpasswort gefragt
Anschliesend wird gesucht, ob im Ordner Y:\docs\datas\wordspass (unser Passwortordner) eine datei namens amdin.pwd vorhanden ist (diese legt ihr zunächst an. einfach eine leere .txt datei in die admin.pwd datei umbenennen.
Ist das Adminpasswort z.B. 123456, wird noch zusätzlich eine 123456.pwd datei benötigt...
Wenn die Datei vorhanden ist, sucht der Batch eine :pwd datei, die mit dem Angegebenen passwort übereinstimmt.
Wenn eine solche datei (in meinem falle 123456.pwd) vorhanden ist, wir auf Y:\docs\datas\sources\admin.bat weiterverlinkt...
Ich weiß, dass diese Einlogmethode unnötig komliziert ist, aber das ist nur die für das Adminkonto...

im letzten block (fail1) kommt wieder die gleiche Fehlermeldung wie in der 1ten Datei...
Jetz kommt die Raum-Auswahl....

Y:\docs\datas\rooms.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo Wilkommen zurueck, %user%...
Echo.
Echo.
Echo Zur Zeit sind folgende Raume freigegeben:
Echo.
dir Y:\docs\datas\sources\rooms /B
Echo.
Echo.
echo Bitte gib den Namen deiens Raumes ein (ohne .bat)
echo.
set /P room= Namen des Raumes (ohne .bat):_ 
if not exist Y:\docs\datas\sources\rooms\%room%.bat goto :fail1
call Y:\docs\datas\sources\rooms\%room%.bat

:fail1
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Error
set errornum= 004
set descriptioneng= Room Fail...
set solutioneng= please retry your input...
set descriptionde= Raum Fehler...
set solutionde= bitte wiederholen Sie Ihren Eintrag...
Echo.
Echo ErrorNumber: %errornum%
echo.
echo %descriptioneng%
Echo %solutioneng%
Echo.
Echo %descriptionde%
Echo %solutionde%
Echo.
Echo PRESS ENTER...
pause > nul
goto :start

Hier muss man den Namen des Raumes (ohne .BAT) eingeben.
z.B. Allgemeines
Anschliessend wird man auf den Raum verlinkt...

Hier Erstellen wir nun die Chat-Räume...

1. Raum = Allgemeines
protokoll: Y.\docs\datas\sources\log\allgemein.room
Y.\docs\datas\sources\rooms\allgemeines.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo User %user% betrat den Chat...
echo User %user% betrat den Chat... >> Y:\docs\datas\sources\log\allgemein.room
pause > nul
Echo.
:input 
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Gib deine Nachricht ein...
set /P input= Message:_ 
Echo %user%, um %time% - %input% >> Y:\docs\datas\sources\log\allgemein.room
more < Y:\docs\datas\sources\log\allgemein.room
Echo press ENTER
pause > nul
goto :input

Im ertsten teil wird im protokoll gespeichert, dass der User den Chat betreten hat.
%User% wurde im Start-Dialog schon definiert

Anschliessend soll man einen Text eingeben.....
Dieser Text wird in dem Protokoll gespeichert.
dann wird der Inhalt des Protokolls angezeigt.
wenn man jetzt enter drückt, jommt man wieder zur eingabe
2. Raum = Flirtbox
protokoll: Y.\docs\datas\sources\log\flirt.room
Y.\docs\datas\sources\rooms\flirtbox.bat

@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo User %user% betrat den Chat...
echo User %user% betrat den Chat... >> Y:\docs\datas\sources\log\flirt.room
pause > nul
Echo.
:input 
cls
echo.
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Gib deine Nachricht ein...
set /P input= Message:_ 
Echo %user%, um %time% - %input% >> Y:\docs\datas\sources\log\flirt.room
more < Y:\docs\datas\sources\log\flirt.room
Echo press ENTER
pause > nul
goto :input

Selbiges als oben, nur andere Protokoll-Datei...
3. Raum = Langeweile
protokoll: Y.\docs\datas\sources\log\boring.room
Y.\docs\datas\sources\rooms\flangeweile.bat

@ echo off
:start
cls
echo.echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo User %user% betrat den Chat...
echo User %user% betrat den Chat... >> Y:\docs\datas\sources\log\boring.room
pause > nul
Echo.
:input 
cls
echo.echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Gib deine Nachricht ein...
set /P input= Message:_ 
Echo %user%, um %time% - %input% >> Y:\docs\datas\sources\log\boring.room
more < Y:\docs\datas\sources\log\boring.room
Echo press ENTER
pause > nul
goto :input
Selbiges als oben, nur andere Protokoll-Datei...

Mit dem Admin-Profil können wir jedoch nicht in den Räumen schreiben. Also legen wir uns ein Profil (meines heißt cewie) an.

Y:\docs\datas\sources\Users\cewie.bat
@ echo off
:start
cls
echo.echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo Bitte gib das Passwort für %user% ein?
set /P X= Password?_ 
if exist Y:\docs\datas\wordspass\%user%\%X%.pwd goto :ok
goto :fail1

:ok
call Y:\docs\datas\rooms.bat

:fail1
cls
echo.echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Error
set errornum= 003
set descriptioneng= Password fail...
set solutioneng= please retry your input...
set descriptionde= Falsches Passwort...
set solutionde= bitte wiederholen Sie Ihren Eintrag...
Echo.
Echo ErrorNumber: %errornum%
echo.
echo %descriptioneng%
Echo %solutioneng%
Echo.
Echo %descriptionde%
Echo %solutionde%
Echo.
Echo PRESS ENTER...
pause > nul
goto :start

Ihr müsst nur noch eine datei mit eurem passwort (z.B. lool.pwd für das passwort lool) in dem Verzeichnis Y:\docs\datas\wordspass\cewie anlegen
z.B. Y:\docs\datas\wordspass\cewie\lool.pwd
Diese lasst ihr wieder leer...

jetz ist das Profil fertig...
Als nächstes bauen wir das Admin-Interface

Y:\docs\datas\sources\admin.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo Wilkommen zurueck, Administrator
Echo.
Echo.
Echo [1] = Protokolle leeren
Echo [2] = User verwaltung
Echo [e] = Exit
Echo.
:menue1
Set /P x= Deine Wahl:_
if %x% == 1 goto protocolls
if %x% == 2 goto users
if %x% == e exit
goto :menue1

:protocolls
call Y:\docs\datas\sources\protocolls.bat
exit

:users
call Y:\docs\datas\sources\users.bat
exit

Im ersten block, wird gefragt, was man tun möchte.
Protokolle leeren: Protokolle sind die Chat-Raum-Speicherorte... hier werden alle Messages gespeichert...
User Verwalten: User entfernen hinzufügen, sperren, entsperren, und die passwörter ändern...


protocoll menü:
Y:\docs\datas\sources\protocolls.bat

@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo Wilkommen zurueck, Administrator
Echo.
Echo.
Echo  Protokolle leeren
Echo.
Echo.
Pause > nul
{{comment_single_line_double_colon{{comment_single_line_double_colon{{comment_single_line_double_colon:3}}}}}}
if exist Y:\docs\datas\sources\log\allgemein.room goto {{comment_single_line_double_colon{{comment_single_line_double_colon:3}}}}
if exist Y:\docs\datas\sources\log\flirt.room goto {{comment_single_line_double_colon:3}}
if exist Y:\docs\datas\sources\log\boring.room goto :3
goto :ok

{{comment_single_line_double_colon{{comment_single_line_double_colon:3}}}}
del Y:\docs\datas\sources\log\allgemein.room 
goto {{comment_single_line_double_colon{{comment_single_line_double_colon{{comment_single_line_double_colon:3}}}}}}

{{comment_single_line_double_colon:3}}
del Y:\docs\datas\sources\log\flirt.room 
goto {{comment_single_line_double_colon{{comment_single_line_double_colon{{comment_single_line_double_colon:3}}}}}}

:3
del Y:\docs\datas\sources\log\boring.room 
goto {{comment_single_line_double_colon{{comment_single_line_double_colon{{comment_single_line_double_colon:3}}}}}}

:ok
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo Protokolle Leeren
echo.
echo.
echo Wilkommen zurueck, Administrator
Echo.
Echo.
Echo  Protokolle wurden geleert...
Echo.
Echo.
Pause > nul 
call Y:\drivers\new\admin.cmd

Kurz gesagt, ganz oben überprüft er, OB die Protokolle vorhanden sind...
Wenn sie vorhanden sind löscht er sie.

Keine angst, das Script erstellt beim Schrieben die protokolle automatisch...


User Verwaltung
Y:\docs\datas\sources\users.bat

@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo user verwaltungs System
echo.
echo.
echo Wilkommen zurueck, Administrator
Echo.
Echo.
Echo bitte gib user verwalten [edit], Neuen User anlegen [newuser] oder exit ein...
set /P X= edit / newuser / exit :_ 
if %X% == newuser goto :newuser
if %X% == exit goto :exit
if %X% == edit goto :edit

:edit
call Y:\docs\datas\sources\edituser.bat
pause

:newuser
call Y:\docs\datas\sources\newuser.bat

:exit
exit 

Wir edit eingegeben, ruft er die datei Y:\docs\datas\sources\edituser.bat auf
Wird newuser eingegeben, ruft er die datei Y:\docs\datas\sources\newuser.bat auf
wird exit eingegeben, beendet er den chat...


Es ist mühsam, jeden user einzeln anzulegen.
Deshalb erledigt das ein Script in der Adminoberfläche

Neuen User anlegen

Y:\docs\datas\sources\newuser.bat

@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo user verwaltungs System
echo.
echo.
echo neuen User anlegen
Echo.
Echo.
Echo Bitte gib den Namen des neuen users an...
set /P nname= Name:_
Echo.
Echo Bitte gib das Passwort des neuen Users an...
set /P npass= Passwort:_
Echo.
Echo.
copy Y:\docs\datas\sources\Users\cewie.bat Y:\docs\datas\sources\Users\%nname%.bat
md Y:\docs\datas\wordspass\%nname%
copy Y:\docs\datas\wordspass\Cewie\lool.pwd Y:\docs\datas\wordspass\%nname%\%npass%.pwd
Echo.
Echo User erfolgreich angelegt - User %nname% mit dem Passwort %npass%...
pause > nul
Echo.
goto :start

Hier muss man einen Neuen username und ein PW eingeben.

Anschliesend erstellt er ein Profil mit dem neuen Username und PW indem er sich am profil Cewie orientiert...
Der neue User kann sich danach mit dem neuen Namen und PW einloggen.


Mit diesem Amdin-Script kann man die Daten der User einfach ändern, ohne sich manuell darum zu kümmern...

User Bearbeiten
Y:\docs\datas\sources\edituser.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo user verwaltungs System
echo.
echo.
echo User Bearbeiten
Echo.
Echo [1] = User umbenennen
Echo [2] = Passwort aendern
Echo [3] = User Blocken
Echo [4] = User freigeben
Echo [5] = User loeschen
Echo.
Echo.
Set /P x= Funktion:_
if %X% == 1 goto :rename
if %X% == 2 goto :pwchange
if %X% == 3 goto :block
if %X% == 4 goto :unblock
if %X% == 5 goto :delete
goto :start

:rename
call Y:\docs\datas\sources\rename.bat

:pwchange
call Y:\docs\datas\sources\pwchange.bat

:block
call Y:\docs\datas\sources\block.bat

:unblock
call Y:\docs\datas\sources\unblock.bat

:delete
call Y:\docs\datas\sources\delete.bat

Hier wird nun gefragt, welche Änderungen vorgenommen werden sollen, und dann das Entsprechende Script aufegrufen...

Wenn ein User seinen Usernamen ändern will, geshcieht dies Heirmit voll automatisch

User Umbenennen

Y:\docs\datas\sources\rename.bat

@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo user verwaltungs System
echo.
echo.
echo User Bearbeiten
Echo User umbenennen
Echo.
set /P oldname= Gib den Usernamen an:_
echo.
set /P newname= Gib den neuen Namen an:_
echo.
echo.
ren Y:\docs\datas\sources\Users\%oldname%.bat %newname%.bat
rmdir /s /q Y:\docs\datas\wordspass\%oldname%
mkdir Y:\docs\datas\wordspass\%newname%
copy Y:\docs\datas\wordspass\cewie\cewierulez.pwd Y:\docs\datas\wordspass\%newname%\cewierulez.pwd
ren Y:\docs\datas\wordspass\%newname%\cewierulez.pwd %newname%.pwd
Echo.
Echo.
Echo User erfolgreich umbenannt...
pause > nul
call user.bat

Hier wird der User vollautomatisch umbenannt.


passwort Ändern

Y:\docs\datas\sources\pwchange.bat

@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo user verwaltungs System
echo.
echo.
echo User Bearbeiten
Echo Passwort aendern
Echo.
Echo.
set /P username= Bitte gib den Usernamen an:_
echo.
set /p oldpw= Altes Passwort:_
Echo.
Set /P newpw= Neues Passwort:_
Echo.
Echo.
goto :change

:change
rename Y:\docs\datas\wordspass\%username%\%oldpw%.pwd %newpw%.pwd 
Echo.
Echo Passwort wurde geaendert von %oldpw% in %newpw%
echo.
pause > nul
call users.bat

Automatisches Passwort Änderungs Script. Das Alte Passwort wird aber benötigt...


User Sperren
Y:\docs\datas\sources\block.bat

@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo user verwaltungs System
echo.
echo.
echo User Bearbeiten
Echo User Sperren
Echo.
Echo.
set /P username= Name des Users:_
Echo.
Echo Willst du %usename% wirklich sperren?
Echo.
set /P ok= y/n:_ 
if %ok% == y goto :ok
if %ok% == n goto :no

:ok
move Y:\docs\datas\sources\Users\%username%.bat Y:\docs\datas\sources\blocked\%username%.bat
copy Y:\docs\datas\sources\blocked.bat Y:\docs\datas\sources\Users\%username%.bat
goto :end

:no
Echo.
Echo Puuuuhhh...
Echo noch mal anders ueberlegt, he?
Echo.
pause > nul
exit

:end
Echo.
Echo Der user %username% wurde erfolgreich gesperrt...
Echo.
pause > nul
exit

Hier wird das LoginScript für den Einegegebenen User in den Ordner Y:\docs\datas\sources\blocked\ verschoben.
Als ersatz dient ein Script, welches Beschreibt, dass der User geblockt wurde.

Der Code dafür:

Y:\docs\datas\sources\blocked.bat
@ echo off
:start
cls
echo.echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo.
Echo Dein User wurde gesperrt. Wende dich bitte an den Administrator...
Echo.
pause > nul
exit


User Entsperren

Hiermit wird der User wieder Entsperrt:

Y:\docs\datas\sources\unblock.bat

@ echo off
:start
cls
echo.echo CHAT-SYSTEM V1.25 by: Cewie
Echo user verwaltungs System
echo.
echo.
echo User Bearbeiten
Echo User entsperren
Echo.
Echo.
set /P username= Name des Users:_
Echo.
Echo Willst du %usename% wirklich entsperren?
Echo.
set /P ok= y/n:_ 
if %ok% == y goto :ok
if %ok% == n goto :no

:ok
del Y:\docs\datas\sources\Users\%username%.bat
move Y:\docs\datas\sources\blocked\%username%.bat Y:\docs\datas\sources\Users\%username%.bat
goto :end

:no
Echo.
Echo Boehser Junge...
Echo.
pause > nul
exit

:end
Echo.
Echo Der user %username% wurde erfolgreich entsperrt...
Echo.
pause > nul
exit



User Löschen

Hier wird der User entgültig gelöscht...

Y:\docs\datas\sources\delete.bat

@ echo off
:start
cls
echo.echo CHAT-SYSTEM V1.25 by: Cewie
Echo user verwaltungs System
echo.
echo.
echo User Bearbeiten
Echo User loeschen
Echo.
Echo.
set /P username= Name des Users:_
Echo.
Echo Willst du %username% wirklich dauerhaft loeschen?
Echo.
set /P ok= y/n:_ 
if %ok% == y goto :ok
if %ok% == n goto :no

:ok
rmdir /s /q Y:\docs\datas\wordspass\%username%
del /s /q Y:\docs\datas\sources\Users\%username%.bat
goto :end

:no
Echo.
Echo Warum denn ned???
Echo.
pause > nul
exit

:end
Echo.
Echo Der user %username% wurde erfolgreich geloescht...
Echo der hatte es verdient ;)
Echo.
pause > nul
exit



So, ich hoffe ich konnte euch einen Kleinen einblick geben, was mit Batch alles möglich ist.

Für Kommentare, Feedback, fehlerberichte und Verbesserungen bin ich jederzeit dankbar


Grüße Cewie

Content-Key: 139405

Url: https://administrator.de/contentid/139405

Ausgedruckt am: 29.03.2024 um 06:03 Uhr

Mitglied: bankaifan
bankaifan 01.04.2010 um 10:32:35 Uhr
Goto Top
Hi,

Ich habe den Chat mal nachgebaut und war sehr begeistert davon.

Ich habe ihn jetzt noch um einige Funktionen wie z. B. Gastbereich, IP-Bann, Nutzerseitige Passwort änderungen und Namensänderung, selbstständiges anlegen neuer User und kompliziertes Sperrsystem.

Folgen werden noch ein Flüstermodus und Privatnachrichten.

Bei Fragen kann man sich also auch gerne an mich wenden.

Doch natürlich hat Cewie ein großes Lob verdient, er hat die klasse vorarbeit geleistet.

Gruß Bankaifan
Mitglied: cewiethemaster
cewiethemaster 01.04.2010 um 14:58:44 Uhr
Goto Top
Anlegen Neuer User?
Sperrsystem?

Das hab ich doch in Meinem Admin-Interface drinnen...


Aber Danek für dein LOB :D
Mitglied: bankaifan
bankaifan 03.04.2010 um 20:17:21 Uhr
Goto Top
Japp...aber ich hab es so gemacht, dass man sich als Gast einloggen kann und dann kann man entweder als Gast in nen chat gehen oder nen eigenen User anlegen.

Und das Sperrsystem hab ich halt noch weng ausgebaut


Dann hab ich auch noch gemacht dass man als Admin chatten kann und sich direkt in das Admin-Interface einloggen kann

Aber wirklich klasse gemacht von dir
Mitglied: cewiethemaster
cewiethemaster 06.04.2010 um 07:25:42 Uhr
Goto Top
Aha.

Freut mich, dasses euch gefällt ;D

Edit:

Hier das PN-Script...

@ echo off
:start
cls
Echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo Wilkommen zurueck, %user%...
Echo.
:test
Echo prüfe auf neue Nachrichten...
ping /N 2 localhost > nul
if exist Y:\docs\datas\pm\%user%\messages\*.mssg goto :inputmessage
if not exist Y:\docs\datas\pm\%user%\messages\*.mssg goto :noinput

:inputmessage
cls
Echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Neue Messages...
Echo.
dir /B Y:\docs\datas\pm\%user%\messages
Echo.
Set inname= gib den Namen der Message ein ( ohne .mssg) :_ 
Echo.
Echo Oeffne message...
Echo.
more < Y:\docs\datas\pm\&user%\messages\%inname%.mssg
pause > nul
goto :choice

:noinput
cls
Echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Keine neuen Messages...
pause > nul
goto :choice

:choice
cls
Echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
pause > nul
Echo [n]eue Nachricht oder [l]esen der alten Nachrichten?
Set/P choice= n / l :_ 
if %choice% == n goto :newmessage
if %choice% == l goto :test
goto fail1

:newmessage
cls
Echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Neue Nachricht verfassen...
Echo.
Echo Gib hier die Daten ein...
set /P betreff= Betreff:_ 
set /P Text= Text:_
set /P Text2= Text (gib NIX ein, wenn du nur eine Zeile hast):_ 
set /P Text3= Text (gib NIX ein, wenn du nur eine Zeile hast):_ 
set /P Text4= Text (gib NIX ein, wenn du nur eine Zeile hast):_ 
set /P Text5= Text (gib NIX ein, wenn du nur eine Zeile hast):_ 
set /P empfaenger= Empfaenger:_ 
set /P copy= CC (gib NIX ein, wenn du nur einen Empfänger hast):_
if %Text2% == NIX goto :blank1
if %Text3% == NIX goto :blank2
if %Text4% == NIX goto :blank3
if %Text5% == NIX goto :blank4
goto :full
Echo.
Echo.
:blank1
Echo Sende Nachricht...
ping /N 2 localhost > nul
Echo 1.) %text% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%empfaenger%\messages\%betreff%.mssg
copy Y:\000267\vorlage Y:\docs\datas\msg\%empfaenger%\%betreff%.betreff
if not %copy* == NIX goto :multi
goto :finish

:blank2
Echo Sende Nachricht...
ping /N 2 localhost > nul
Echo 1.) %text% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%empfaenger%\messages\%betreff%.mssg
Echo 2.) %text2% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%empfaenger%\messages\%betreff%.mssg
copy Y:\000267\vorlage Y:\docs\datas\msg\%empfaenger%\%betreff%.betreff
if not %copy* == NIX goto :multi2
goto :finish

:blank3
Echo Sende Nachricht...
ping /N 2 localhost > nul
Echo 1.) %text% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%empfaenger%\messages\%betreff%.mssg
Echo 2.) %text2% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%empfaenger%\messages\%betreff%.mssg
Echo 3.) %text3% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%empfaenger%\messages\%betreff%.mssg
copy Y:\000267\vorlage Y:\docs\datas\msg\%empfaenger%\%betreff%.betreff
if not %copy* == NIX goto :multi3
goto :finish

:blank4
Echo Sende Nachricht...
ping /N 2 localhost > nul
Echo 1.) %text% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%empfaenger%\messages\%betreff%.mssg
Echo 2.) %text2% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%empfaenger%\messages\%betreff%.mssg
Echo 3.) %text3% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%empfaenger%\messages\%betreff%.mssg
Echo 4.) %text4% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%empfaenger%\messages\%betreff%.mssg
copy Y:\000267\vorlage Y:\docs\datas\msg\%empfaenger%\%betreff%.betreff
if not %copy* == NIX goto :multi4
goto :finish

:full
Echo Sende Nachricht...
ping /N 2 localhost > nul
Echo 1.) %text% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%empfaenger%\messages\%betreff%.mssg
Echo 2.) %text2% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%empfaenger%\messages\%betreff%.mssg
Echo 3.) %text3% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%empfaenger%\messages\%betreff%.mssg
Echo 4.) %text4% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%empfaenger%\messages\%betreff%.mssg
Echo 5.) %text5% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%empfaenger%\messages\%betreff%.mssg
copy Y:\000267\vorlage Y:\docs\datas\msg\%empfaenger%\%betreff%.betreff
if not %copy* == NIX goto :multi5
goto :finish

:multi1
Echo 1.) %text% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%copy%\messages\%betreff%.mssg
copy Y:\000267\vorlage Y:\docs\datas\msg\%copy%\%betreff%.betreff
goto :finish

:multi2
Echo 1.) %text% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%copy%\messages\%betreff%.mssg
Echo 2.) %text2% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%copy%\messages\%betreff%.mssg
copy Y:\000267\vorlage Y:\docs\datas\msg\%copy%\%betreff%.betreff
goto :finish

:multi3
Echo 1.) %text% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%copy%\messages\%betreff%.mssg
Echo 2.) %text2% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%copy%\messages\%betreff%.mssg
Echo 3.) %text3% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%copy%\messages\%betreff%.mssg
copy Y:\000267\vorlage Y:\docs\datas\msg\%copy%\%betreff%.betreff
goto :finish

:multi4
Echo 1.) %text% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%copy%\messages\%betreff%.mssg
Echo 2.) %text2% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%copy%\messages\%betreff%.mssg
Echo 3.) %text3% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%copy%\messages\%betreff%.mssg
Echo 4.) %text4% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%copy%\messages\%betreff%.mssg
copy Y:\000267\vorlage Y:\docs\datas\msg\%copy%\%betreff%.betreff
goto :finish

:multi5
Echo 1.) %text% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%copy%\messages\%betreff%.mssg
Echo 2.) %text2% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%copy%\messages\%betreff%.mssg
Echo 3.) %text3% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%copy%\messages\%betreff%.mssg
Echo 4.) %text4% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%copy%\messages\%betreff%.mssg
Echo 5.) %text5% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%copy%\messages\%betreff%.mssg
copy Y:\000267\vorlage Y:\docs\datas\msg\%copy%\%betreff%.betreff
goto :finish

:finish
Echo.
Echo Message Sendet...
Echo.
pause > nul
goto :choice

:fail
cls
echo.
echo ..............................
echo .BBBBB.....FFFFFFFF.....III...
echo .BB..BB....FFF................
echo .BBbbB.....FFFFFF.......III...
echo .BB..BB....FFF..........III...
echo .BBBBB.....FFF..........III...
echo ..............................
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Error
set errornum= 001
set descriptioneng= Unrecognized input...
set solutioneng= please retry your input...
set descriptionde= Unerkannter Eintrag...
set solutionde= bitte wiederholen Sie Ihren Eintrag...
Echo.
Echo ErrorNumber: %errornum%
echo.
echo %descriptioneng%
Echo %solutioneng%
Echo.
Echo %descriptionde%
Echo %solutionde%
Echo.
Echo PRESS ENTER...
pause > nul
goto :start

Hier steckt iwo der Wurm Drinnen.
Wer den fehler findet, bitte posten...
Mitglied: pxxsxx
pxxsxx 06.04.2010 um 11:10:45 Uhr
Goto Top
Hallo,
Respekt... du musst Zeit haben... face-wink

Schonmal an eine grafische Ausarbeitung mit z.B. wbat gedacht? http://home.mnet-online.de/horst.muc/uid.htm

Gruß
Peter
Mitglied: cewiethemaster
cewiethemaster 06.04.2010 um 11:12:50 Uhr
Goto Top
Zeit haben...
Wir in der arbeit sollen uns mit Programmierung beschäftigen
(batch ist mein Spezialgebiet)

wbat
werd ich mir mal Anschauen :D

Edit: Naja... Nicht so meines...
Da is mir reiner Batch lieber. Den Rest mache ich mit VB2008
Mitglied: pxxsxx
pxxsxx 06.04.2010 um 11:36:17 Uhr
Goto Top
Hmm,
mit VB2008 machst du das Programm halt DOS-inkompatibel. Ich mag wbat eigentlich recht gerne. Es ist auch wirklich einfach zu benutzen, vor allem für Batch-Fans wie uns. Und es läuft komplett in der DOS-Box. Aber das ist eben Geschmackssache face-wink

Gruß
Peter
Mitglied: cewiethemaster
cewiethemaster 06.04.2010 um 15:43:17 Uhr
Goto Top
Jedem das seine...

PS: Definiere Batch-Fan... ;)
Mitglied: bankaifan
bankaifan 06.04.2010 um 17:40:27 Uhr
Goto Top
echtschuldige, mein pc is grad kaputt. Ich werds mir mal genauer anschauen, sieht aber wirklich gut aus.
Mitglied: Biber
Biber 06.04.2010 um 17:56:20 Uhr
Goto Top
Moin cewiemaster,

Hier steckt iwo der Wurm Drinnen.
Wer den fehler findet, bitte posten.
Der erste bio-optical scan ergibt:
  • in Zeile 55 wird Anlauf genommen für den Sprung mit "goto fail1"
  • in Zeile 173 lauert auch eine Sprungmarke, die irgendwie ähnlich heißt (":fail").

Aber ich weiss nicht, ob Batches sonderlich tolerant sind oder bei Win7 evtl Fuzzy-Logik oder eine SoundEx()-Funktionalität mitbringen.
Wenn nicht, dann haut er zumindest dort ins Mett.

Ansonsten: Zu meiner Zeit musste jemand, der eine so detaillierte Fehlermeldung abgibt wie " Hier steckt iwo der Wurm Drinnen."
abends immer unsere Kaffeepötte sandstrahlen.

Gehts ein bisschen konkreter?

Grüße
Biber
Mitglied: bankaifan
bankaifan 07.04.2010 um 16:23:24 Uhr
Goto Top
26.Set inname= gib den Namen der Message ein ( ohne .mssg) :_

Hier fehlt "/P" wenn ich mich nicht irre
Mitglied: bankaifan
bankaifan 07.04.2010 um 16:37:59 Uhr
Goto Top
Echo 2.) %text2% - am %date% um %time% - von %user% > Y:\docs\datas\pm\%empfaenger%\messages\%betreff%.mssg

Müsste da nicht ... >> Y.\docs\... stehen?
Mitglied: cewiethemaster
cewiethemaster 08.04.2010 um 07:33:41 Uhr
Goto Top
Danke für alle die Hinweiße, der fehler war es, dass ich bei

26.Set inname= gib den Namen der Message ein ( ohne .mssg) :_ 

Das /P vergessen habe.


Aber danke euch allen :D
Mitglied: bankaifan
bankaifan 08.04.2010 um 09:30:37 Uhr
Goto Top
na dann... hab noch weng dran geschraubt und ihn für mich angepasst...und jetzt funktioniert auch das PM system
Mitglied: bankaifan
bankaifan 08.04.2010 um 16:40:09 Uhr
Goto Top
Hier mal ne kleine Übersicht was ich bei mir noch abgeändert habe:

-Gastuser
-Eigenständiger Namenswechsel möglich (User)
-Eigenständiger Passwortwechsel möglich (User)
-Eigenständiges erstellen eines eigenen Users möglich(Nur ein User je ID)
-Zuletzt besuchter Raum kann aufgerufen werden
-Blocken von PC-Name und ID
-Entsprechend angepasstes entsperren
-Auflisten aller verfügbaren User(Admin)
-Mitloggen der Programmaufrufe
-Logoff und Refreshfunktion in den Chaträumen
-Angepasste Menüs für Admin und User
-Admin kann im Chat schreiben und sich direkt ins Adminmenü einloggen

SoHoffe ich habe nichts vergessen

Wenn du davon vllt den code haben willst melde dich^^
Mitglied: cewiethemaster
cewiethemaster 09.04.2010 um 10:18:07 Uhr
Goto Top
wie hast du den Zuetzt besuchten Raum gemacht?
Mitglied: bankaifan
bankaifan 10.04.2010 um 18:52:12 Uhr
Goto Top
Ich hab in den Namen, den man beim Betreten eines Raumes eingibt in eine globale Variable gespeichert und diese dann bei "last" verwendet.

Hab des nur gemacht weil es mich genervt hat jedesmal den langen Raumnamen einzugeben.

Ich bin jetzt daheim, hab den Code aber auf der Arbeit, kann ihn dir dnan gerne noch reinstellen.
Mitglied: bankaifan
bankaifan 12.04.2010 um 13:26:44 Uhr
Goto Top
Ich brauch mal eure Hilfe...ich möchte eine Funktion machen, dass das Passwort temporär gespeichert und so automatisch eingeloggt werden kann:

Bisher sieht der Code so aus:

@echo off
 
set MyLW=%CD:~0,39%
set X= 
:start
if exist %MyLW%\docs\datas\sources\blocked\PC.txt (
for /f "delims=" %%i in (%MyLW%\docs\datas\sources\blocked\PC.txt) do findstr /i /b /C:%computername%  
%MyLW%\docs\datas\sources\blocked\PC.txt> nul && call %MyLW%\docs\datas\sources\blocked.bat
)
if exist %MyLW%\docs\datas\sources\blocked\Users.txt (
for /f "delims=" %%c in (%MyLW%\docs\datas\sources\blocked\Users.txt) do findstr /i /b /C:%username%  
%MyLW%\docs\datas\sources\blocked\Users.txt> nul && call %MyLW%\docs\datas\sources\blocked.bat
)
cls
echo.
echo ~Chat~
echo.
echo.
if %user% == %spuser% (
set X= %sppw%
goto :pruefe
:manuel
echo Bitte gib das Password für %user% ein.
set /P X= Password?
:pruefe
if exist %MyLW%\docs\datas\wordspass\%user%\%X%.pwd goto :ok
goto :fail1

:ok
echo User        : %username% >> %MyLW%\docs\datas\sources\log\User.txt
echo Domain      : %userdomain% >> %MyLW%\docs\datas\sources\log\User.txt
echo Datum       : %Date% >> %MyLW%\docs\datas\sources\log\User.txt
echo Uhrzeit     : %time% >> %MyLW%\docs\datas\sources\log\User.txt
echo PC          : %computername% >> %MyLW%\docs\datas\sources\log\User.txt
echo Betriebssys.: %bsv% >> %MyLW%\docs\datas\sources\log\User.txt
echo Server      : %logonserver% >> %MyLW%\docs\datas\sources\log\User.txt
echo Prozessoren : %number_of_processors% >> %MyLW%\docs\datas\sources\log\User.txt
echo Merkmale    : %processor_identifier% >> %MyLW%\docs\datas\sources\log\User.txt
FOR /F "skip=1 tokens=2 delims=:" %%i in ('ipconfig^|findstr "IP"') do echo IP          :%%i >> %MyLW%\docs\datas\sources\log\User.txt  
echo ================================================================= >> %MyLW%\docs\datas\sources\log\User.txt
cls
echo.
echo ~Chat~
echo.
echo.
echo Password speichern?
set /P pw= y/n:
if %pw% == y (
set sppw= %X%
set spuser= %user%
echo Password gespeichert.
pause > nul
) else (
set sppw= 
set spuser=
echo Password nicht gespeichert.
)
cls
echo.
echo ~Chat~
echo.
echo.
echo [1] = Raumwahl
echo [2] = Name aendern 
echo [3] = Passwort aendern
echo [4] = Nachrichten verwalten
echo [e] = Abbrechen
echo.
set /P W= Treffen Sie Ihre Wahl:_
if %W% == 1 call %MyLW%\docs\datas\rooms.bat
if %W% == 2 call %MyLW%\docs\datas\urename.bat
if %W% == 3 call %MyLW%\docs\datas\upass.bat
if %w% == 4 call %MyLW%\docs\datas\pm.bat
if %W% == e call %MyLW%\docs\start.bat
 
:fail1
cls
echo.
echo ~Chat~
echo.
echo.
echo Error
set errornum= 003
set descriptionde= Falsches Passwort...
set solutionde= bitte wiederholen Sie Ihren Eintrag...
echo.
echo ErrorNumber: %errornum%
echo.
echo %descriptionde%
echo %solutionde%
echo.
echo Abbrechen?
set /P Z= y/n:_
if %Z% == y call "%MyLW%\docs\start.bat"  
echo Press Enter...
pause > nul
goto :manuel

Das Problem ist, dass er immer bei der Prüfung auf SPPW oder SPUSER abbricht...ich vermute mal, weil ich sie nicht vorinitialisiere...aber wenn ich sie am anfach auf "NULL" setzten würde würde er mir auch das temporäre pw löschen...

was wäre eure Idee hierzu?

vllt soetwas wie

set tmppw = %sppw%
set tmpuser= %spuser%
set sppw= 
set spuser=
set sppw= %tmppw%
set spuser= %tmpuser%
Mitglied: bastla
bastla 12.04.2010 um 16:01:29 Uhr
Goto Top
Hallo @all!

Vorweg @bankaifan: Mit ""-Formatierung sieht das Ganze nicht nur besser aus, es lässt sich auch leichter auf eine Zeile Bezug nehmen ...
Generell gilt für Batch: Wenn Du in der Nähe eines "=" ein Leerzeichen verwendest, solltest Du einen guten Grund dafür haben - bei
if %user% == %spuser% (
sehe ich ihn beispielsweise nicht ...

Weiters sollte bei einem Vergleich mit "==" auf beiden Seiten sicher etwas stehen - daher zB
if [%user%]==[%spuser%] (
- dann brauchst Du auch keine Abfrage wie zB
if defined spuser ...
vorschalten (was aber gelegentlich eine sinnvolle Alternative sein kann).

Grüße
bastla
Mitglied: bankaifan
bankaifan 12.04.2010 um 16:08:46 Uhr
Goto Top
ok...das mit dem

if defined spuser

ist wohl genau das was ich brauche, denn ich weiß relativ sicher, dass spuser meistens nicht initialisiert ist.

Wusste nicht das das Probleme machen kann.

Und das mit dem Leerzeichen hab ich jetzt auch gelernt


EDIT: Hm...hab jetzt noch

if defined sppw goto :suser
set sppw=
:suser
if definded spuser goto :now
set spuser=
:now

eingefügt...

aber wenn ich dann starte kommt nach der Usernameeingabe (Andere Batchdatei) ein blinkender Cursor.

Der Fehler muss trotzdem hier liegen, da alle anderen dateien perfekt funktionieren

[OT]

Ich hab eigentlich ne grundsätzliche abneigung HTML-Code gegenüber...mich nerven diese <Anweisung> dinger^^

Gruß

Bankaifan

[/OT]
Mitglied: Biber
Biber 12.04.2010 um 20:34:16 Uhr
Goto Top
Moin bankaifan,

wenn in deiner Zeile 4 wirklich
if definded spuser goto :now
stehen sollte, dann hätte ich bei Bedarf einen Erklärungsversuch für den überrascht blinkenden Cursor....

Ich kann aber auch schweigen...

Grüße
Biber
Mitglied: cewiethemaster
cewiethemaster 13.04.2010 um 07:29:07 Uhr
Goto Top
Was wäre, wenn du einfach beim user-script ( wo das w eingegeben wudre) einfügst:
set %tempuser%= USERNAME
und bei der Startdatei bevor es zur auswahl Login oder Gast kommt, einfach ein
if not %tempuser* == NONE call temp.bat
einsetzt?


grüße
Mitglied: bankaifan
bankaifan 13.04.2010 um 10:19:24 Uhr
Goto Top
@ Biber Steht natürlich nicht so dortist nur n Tippfehler
@cewiethemaster du meinst das set %tempuser%... soll dorthin wo das Passwort gespeichert wird?
und das andere an den anfang von start.bat ist klar

Aber die variable %tempuser* verwirrt mich...warum hier der "stern"?

Und wie frage ich das dann ab?

set %tempuser%= USERNAME
hat iwie nen fehler
kann es sein dass auch hier ein * hin muss?

da kommt sonst ein Synthaxfehler.

Und wie frage ich das dann ab?

Hab es jetzt so:

if defined %tempuser* if %tempuser* == %user% (
set X= %sppw%
goto pruefe
)
:manuel 
echo Bitte gib das Password für %user% ein.
set /P X= Password?_
:pruefe
if exist %MyLW%\docs\datas\wordspass\%user%\%X%.pwd goto :ok
goto :fail1

aber er springt jedesmal zu fail1 also schätze ich mal dass %tempuser* leer ist.

Ich bin eben doch noch ein Batch anfänger^^
Mitglied: bastla
bastla 13.04.2010 um 10:30:31 Uhr
Goto Top
Hallo!

Wenn schon, dann:
if defined tempuser if %tempuser%==%user% (
Abgesehen davon: Mein Hinweis auf die Leerzeichen gilt auch hinsichtlich der Zeile
set X= %sppw%
Ich nehme mal nicht an, dass der Inhalt der Variablen %X% tatsächlich mit einem Leerzeichen beginnen soll - um das, und auch das eine oder andere nicht beabsichtige Leerzeichen am Ende zu verhindern, hat sich die Schreibweise
set "X=%sppw%"
bewährt - danach steht in %X% nur der Teil zwischen "=" und schließendem Anführungszeichen (ohne das Anführungszeichen selbst).

Grüße
bastla
Mitglied: bankaifan
bankaifan 13.04.2010 um 10:51:43 Uhr
Goto Top
if defined tempuser if %tempuser%==%user% (

Wenn ich das so schreibe bricht er sofort ab

Ok^^ Das mit den Leerzeichen habe ich jetzt kapiert.

Wenn ich mir aber cewies code ansehe schreibt er immer %var1% == %var2% oder gilt bei dem "==" diese "Regel" nicht?

EDIT:

if defined %tempuser% if %tempuser*==%user% (

Jetzt funktioniert es
Mitglied: bankaifan
bankaifan 13.04.2010 um 12:02:12 Uhr
Goto Top
Ok, dank eurer Hilfe konnte ich jetzt sowohl das Temporäre speichern des Passwortes einführen, als auch das dauerhafte

=> Man kann die gesamte Passwortabfrage ausschalten

Man kann jetzt auch den Empfang privater Nachrichten sperren^^

weitere Einstellungsmöglichkeiten folgen

Gruß

Bankaifan

EDIT: Newssystem hinzugefügt
Mitglied: bankaifan
bankaifan 13.04.2010 um 23:03:41 Uhr
Goto Top
so, mittlerweile kann der admin sämtliche logfiles ganz komfortabel aufrufen ud sogar jeglichen nachrichtenverlauf einsehen
Mitglied: cewiethemaster
cewiethemaster 14.04.2010 um 07:39:09 Uhr
Goto Top
Also, der * kommt nur bei IF NOT zum einsatz...
Mitglied: bankaifan
bankaifan 14.04.2010 um 12:42:59 Uhr
Goto Top
schonmal gut zu wissenAber woher soll man sowas bitte wissen
Mitglied: Midivirus
Midivirus 30.04.2010 um 17:28:10 Uhr
Goto Top
kann man das ganze System nicht einfach als Archiv laden?
ich wollte das mit W nachbauen, jedenfalls möchte er das nicht, weil Passwort falsch ...

W:\docs\datas\wordspass\cewie\lool.pwd

naja ... wenn ich mal wieder Zeit habe (....)
Mitglied: cewiethemaster
cewiethemaster 03.05.2010 um 07:32:26 Uhr
Goto Top
Wie sah denn deine Passwortabfrage aus?
Mitglied: bankaifan
bankaifan 03.05.2010 um 12:51:50 Uhr
Goto Top
Kleiner Tipp hierzu. Wenn du immer den gleichen "Pfadanfang" hast. also angenommen du hast den ganzen chat in einer tieferen struktur, z.B. W:\%User%\Programme\docs\datas\...
dann kannst du in der ersten Datei also der start.bat oben hinschreiben
set startpfad="W:\%User%\Programme\"  

und dann bei z.B. der PW-Abfrage:

...
%startpfad%docs\datas\wordspass\cewie\lool.pwd
...

so sparst du es dir, jedesmal die ganzen Pfade anzugeben und kann auch ganz einfach den ganzen chat verschieben, indem du nur diese eine Zeile änderst.

so passieren dir auch ggf. nicht die fehler dass du dich z.B. beim Pfad vertipps.

@cewie korrigiere mich wenn ich falsch liege :D
Mitglied: cewiethemaster
cewiethemaster 04.05.2010 um 07:37:12 Uhr
Goto Top
Richtig bankaifan.

oder wenn alle Dateien immer im verzeichniss W:\%user%\ liegen, kannst du auch das W:\%user%\ weglassen...
Mitglied: bankaifan
bankaifan 04.05.2010 um 08:04:22 Uhr
Goto Top
Genau.

Und wenn du es noch anders machen möchtest kannst du es auch so machen:

set startpfad="%CD:~0,51%"  

Zur Erklärung: Du nimmst hier die nur die vorderen Stellen der Variablen CD (Ist vorbelegt und gibt den aktuellen Strukturpfad an). In meinem Fall sieht der Pfad so aus:

C:\Dokumente und Einstellungen\ap448\Desktop\Chat\

=> Mein Pfad ist 51 Stellen lang und soll also nur bis zum letzten Backslash gehen.

Oben gebe ich dann an von welcher stelle er beginnen soll (hier 0) und bis wohin er gehen soll (hier 51).

Ich hoffe es ist einigermaßen verständlich erklärt.

@cewie Ich bau den Chat grad noch weng um, damit man ihn auch weng allgemein nutzen kann (meiner ist ziemlich speziell) und anschließend könnten wir ihn auf die HP laden. Ich schick ihn dir dann mal zu.

Gruß Bankaifan
Mitglied: cewiethemaster
cewiethemaster 04.05.2010 um 08:45:37 Uhr
Goto Top
Ok. wusst ich´s doch, dass du ne Bereicherung bist ;)

EDIT:

Meiner ist gerade vol Bug´d...
Iwer hat da dran rumgepfuscht...
Mitglied: bankaifan
bankaifan 05.05.2010 um 07:39:05 Uhr
Goto Top
:D Klar doch. Hab ihn jetzt gestern soweit fertig gemacht. Ich werd jetzt noch überlegen ob ich entweder ne Konfigurierungsdatei bau oder ob ich einfach ne Anleitung schreib, um ihn für jeden PC nutzbar zu machen. Hast du vllt ne Idee wie ich die Anzahl Stellen einer Eingabe auslesen könnte?

Die Sache ist nämlich die, ich hab die Methode mit dem

set MyLW=%CD:~0,36%

gemacht. Jetzt möchte ich in der Konfig-Datei den Pfad eingeben lassen, in dem der "docs"-Ordner liegt. Dann lass ich die Stellen auslesen und setze somit oben anstelle der 36 die Anzahl der Stellen.

Für den Rest werde ich nichtmehr viel Konfigurieren müssen. vllt noch was mit Farbwahl oder so.

Gruß Bankaifan
Mitglied: bankaifan
bankaifan 07.05.2010 um 11:21:47 Uhr
Goto Top
Hat vllt jmd ne Idee wie ich ne Art aktualisierungs System basteln kann?

Also ich dachte mir das folgendermaßen:

1. User downloaded den Chat und richtet ihn ein.
2. Er stellt in den Einstellungen die Meldung bei neuer Version auf "Ein".
3. Ich lade eine neue Version des Chats hoch.
4. Der Chat prüft automatisch bei jedem Start ob ne neue Version verfügbar ist.
5. Aufgrund der neuen Version kommt ne neue Meldung dass ein Update verfügbar ist.

Ich bin offen für jede Programmiersprache, wobei mir vbs sehr recht wäre, wenn das möglich ist^^

PS: Bis zu 3. kann ich es alleine 4. und 5. wären das Problem

Bankaifan
Mitglied: cewiethemaster
cewiethemaster 10.05.2010 um 08:38:32 Uhr
Goto Top
Lässt sich mit VBS machen, binn jetzt nur nicht zuhause, ich schreib dir morgen ne PM
Mitglied: bankaifan
bankaifan 10.05.2010 um 15:58:37 Uhr
Goto Top
jo, wäre super wenn wir des noch machen können, in meiner Konfig kann man jetzt die Farben wählen und Userrechte einrichten. Einziges Problem ist noch, wie man neue Räume einrichtet, da man hierfür ja teilweise mitten in den code was einbauen muss. vllt mach ich es aber so, dass ich einfach an der stelle, wo normalerweiße i-was mit den Räumen gemacht wird, ne andere datei aufruf in der die chats aufgelistet sind. dann kann ich die so einfacher erweitern. mal sehen.

Gruß Bankaifan
Mitglied: cewiethemaster
cewiethemaster 11.05.2010 um 07:37:04 Uhr
Goto Top
Wie sieht denn deine Raumaswahl aus?
Und wo liegen deine Räume?

wie wird dein raum auswahl batch denn aufgerufen?
Wo liegen denn deine Räume(im Hauptverzeichniss, oder in eienm Sub-Ordner)

grüße
Mitglied: bankaifan
bankaifan 11.05.2010 um 08:17:49 Uhr
Goto Top
die räume sind so angelegt, wie du es oben gemacht hast, hab da nix dran geändert, hab nur die Namen abgeändert
Mitglied: cewiethemaster
cewiethemaster 11.05.2010 um 10:15:45 Uhr
Goto Top
Wie sieht dein raum-Wahl-Script aus?

PS: Schick mir mal den ganzen ordner als ZIP datei...
mail addi hast ja...

LG
Mitglied: bankaifan
bankaifan 11.05.2010 um 10:51:41 Uhr
Goto Top
Mach ich, wenn ich daheim bin :D

@echo off
set roompath="%MyLW%\docs\datas\settings\%user%\room.settings"  
set MyLW=%CD:~0,39%
:start
if defined %input% if %input%==room goto :manuel
if exist %roompath% goto :default
:manuel
cls
echo.
echo ~Chat by AP448~
echo.
echo.
Echo Willkomme zurück, %user%...
echo.
echo.
echo Zur Zeit sind folgende Räume freigegeben:
echo.
dir %MyLW%\docs\datas\sources\rooms /B
echo [l] = Letzter besuchter Raum
echo [e] = Abbrechen
echo.
echo Bitte gib die Nummer des Raumes ein
echo.
set /P room= Nummer des Raumes:
if "%room%"=="" goto :manuel  
if "%room%"=="e" call %MyLW%\docs\datas\sources\users\%user%.bat  
if "%room%"=="l" call "%MyLW%\docs\datas\sources\rooms\%lastroom%.bat"  
if "%room%"=="1" set room=Allgemein&& call "%MyLW%\docs\datas\sources\rooms\[1] = Allgemein.bat"  
if "%room%"=="2" set room=Langeweile&& call "%MyLW%\docs\datas\sources\rooms\[2] = Langeweile.bat"  
if "%room%"=="3" set room=Planung&& call "%MyLW%\docs\datas\sources\rooms\[3] = Planung.bat"  
goto :start

:fail1
cls
echo.
echo ~Chat by AP448~
echo.
echo.
echo Error
set errornum= 004
set descriptionde= Raum Fehler...
set solutionde= bitte wiederholen Sie Ihren Eintrag...
echo.
echo ErrorNumber: %errornum%
echo.
echo %descriptionde%
echo %solutionde%
echo Press Enter...
pause > nul
goto :start

:default
set /P room=<%roompath%
if not exist "%MyLW%\docs\datas\sources\rooms\%room%.bat" goto :fail2  
call "%MyLW%\docs\datas\sources\rooms\%room%.bat"  
goto :start

und so sehen die räume selbst aus

@echo

set MyLW=%CD:~0,39%

:start
set roomname=Allgemein
set lastroom=[1] = Allgemein
if %user%==Guest goto :keinep
if exist %MyLW%\docs\datas\sources\blocked\PC.txt (
for /f "delims=" %%i in (%MyLW%\docs\datas\sources\blocked\PC.txt) do findstr /i /b /C:%computername% %MyLW%\docs\datas\sources\blocked\PC.txt> nul && call %MyLW%\docs\datas\sources\blocked.bat  
)
if exist %MyLW%\docs\datas\sources\blocked\Users.txt (
for /f "delims=" %%c in (%MyLW%\docs\datas\sources\blocked\Users.txt) do findstr /i /b /C:%username% %MyLW%\docs\datas\sources\blocked\Users.txt> nul && call %MyLW%\docs\datas\sources\blocked.bat  
)
:keinep
cls

echo.
echo ~Chat by AP448~
echo.
echo.
echo Aktueller Channel: %roomname%
echo.
echo.
echo User %user% betrat den Chat %roomname% um %time:~0,5%...
echo User %user% betrat den Chat %roomname% um %time:~0,5%... >> %MyLW%\docs\datas\sources\log\allgemein.room
pause > nul
echo.
:input
set input=
cls
echo.
echo ~Chat by AP448~
echo.
echo.
echo Aktueller Channel: %roomname%
echo.
echo.
echo Gib deine Nachricht ein...
echo.
echo [logoff] = Ausloggen
echo [room]   = Zurück zu Raumwahl
echo.
set /P input= Message:
if "%input%"=="" (  
more < %MyLW%\docs\datas\sources\log\allgemein.room
echo Press Enter...
pause > nul
goto :input
)
if "%input%"==res (  
more < %MyLW%\docs\datas\sources\log\allgemein.room
echo Press Enter...
pause > nul
goto :input
)
if "%input%" == "room" call %MyLW%\docs\datas\rooms.bat  

if "%input%" == "logoff" goto :logoff  


if "%input%" NEQ "res" echo %user%, um %time:~0,5% - %input% >> %MyLW%\docs\datas\sources\log\allgemein.room  
more < %MyLW%\docs\datas\sources\log\allgemein.room
)
echo Press Enter...
pause > nul
goto :input

:logoff
echo User %user% hat sich um %time:~0,5% abgemeldet. >> %MyLW%\docs\datas\sources\log\allgemein.room
call %MyLW%\docs\start.bat
Mitglied: cewiethemaster
cewiethemaster 11.05.2010 um 13:39:12 Uhr
Goto Top
Lass beim Room-Script alles weg, bis auf den :manual -teil...

Also diese Automatisierten-Geshcihten weg...
Mitglied: bankaifan
bankaifan 11.05.2010 um 14:27:50 Uhr
Goto Top
und dann? kannst du da was zamm zimmern?
Mitglied: cewiethemaster
cewiethemaster 11.05.2010 um 15:40:54 Uhr
Goto Top
Ich könnnts mir SO in etwa vorstellen...

@ echo off
Echo.
Echo folgende Räume sind verfügbar
DIR sources/rooms /B
Echo.
set /P roomchoice= Ihre Wahl (OHNE DATEIERWEITERUNG):_
Echo.
Echo betrete Chat %roomchoice%
Echo.
call sources/rooms/%roomchoice%.room
Mitglied: bankaifan
bankaifan 11.05.2010 um 16:09:28 Uhr
Goto Top
das meinte ich ja nicht, mein problem war ja nur, wie man möglichst komfortabel neue räume einrichten kann. Da ich die Raumwahl ja mit der [1]/[2] ... wahl mache..

aber wenn es nicht geht schreib ich ne anleitung^^
Mitglied: Midivirus
Midivirus 11.05.2010 um 16:11:23 Uhr
Goto Top
so, meine Anfrage erneut:

kann man das nicht als Archiv mal zusammenfassen?
Mitglied: cewiethemaster
cewiethemaster 11.05.2010 um 16:11:36 Uhr
Goto Top
wie gesagt...

Wenn ich die Files habe, fällt mir sicher was passendes ein...

LG
Mitglied: 80695
80695 23.05.2010 um 22:11:44 Uhr
Goto Top
Hallo, könnte jemand den Chat als download in einem zip/rar archiv bereitstellen ?
Mitglied: bankaifan
bankaifan 23.05.2010 um 22:38:08 Uhr
Goto Top
http://www.megaupload.com/?d=OPV7WSJG

Die Rechte liegen natürlich bei WireWare (Cewie und mir) also bitte nicht als deinen ausgeben, die version ist jedoch noch nicht die 100 % endgültige, für die abschlussversion musst du auf der HP schauen wo ich dir den link geschickt habe.

Gruß Bankaifan
Mitglied: 80695
80695 23.05.2010 um 23:44:02 Uhr
Goto Top
Hallo, wie kann ich einen neuen User (über die unewuser.bat geht es nicht) erstellen und wie kann ich den Chat im Netzwerk anwenden ?
Mitglied: bankaifan
bankaifan 23.05.2010 um 23:54:28 Uhr
Goto Top
Du musst das Programm mit der Start.bat starten, dann gehst du auf Gastkonto und dort kannst du den user erstellen als admin musst du dich halt im admin acc einloggen, passwort ist "pass" ... wenn du noch weng wartest haben wir auch ne anleitung. den chat kannst du ganz einfach im netz anwenden indem du die ordnerstrucktur auf ne netzwerkfestplatte setzt
Mitglied: 80695
80695 24.05.2010 um 00:49:33 Uhr
Goto Top
___________________
Dann warte ich noch face-smile
___________________
Mitglied: cewiethemaster
cewiethemaster 27.05.2010 um 15:32:03 Uhr
Goto Top
Das vorraussichtliche Release kommt in ca. 1 Woche zum Downlaod auf http://www.wireware.lima-city.de
Bis dahin heißt es noch ein Bisschen warten...


[COPYRIGHT & HINWEISSE]

Alle Inhalte und Bestandteile des Chats © 2010 by:WireWare
bei Interesse an mitarbeit einfach eine PN schreiben, oder http://www.wireware.lima-city.de/beitreten besuchen

[/COPYRIGHT & HINWEISSE]
Mitglied: cewiethemaster
cewiethemaster 29.06.2010 um 10:20:03 Uhr
Goto Top
Zitat von @80695:
___________________
Dann warte ich noch face-smile
___________________

So, der Chat ist jetzt Ready2Use auf der Homepage zum Download...

Einfach Downlaoden, readMe.txt lesen, und loschatten face-wink
http://www.wireware.lima-city.de/rdir/netchat.html

[COPYRIGHT & HINWEISSE]

Alle Inhalte und Bestandteile des Chats © 2010 by:WireWare
bei Interesse an mitarbeit einfach eine PN schreiben, oder http://www.wireware.lima-city.de/beitrete ... besuchen

[/COPYRIGHT & HINWEISSE]
Mitglied: bankaifan
bankaifan 29.06.2010 um 12:59:31 Uhr
Goto Top
Wer noch Wünsche, Anregungen oder Verbessungsvorschläge hat kann sich auch gerne bei uns melden.
Mitglied: FloJoCNC
FloJoCNC 01.04.2015 um 00:12:17 Uhr
Goto Top
Könnten sie den Fertigen Chat mit Ordner, einmal Hochladen, der Link von cewiethmaster ist wohl nicht mehr Funktionsfähig.