sound ueber pc speaker
seth
- perl
gudn tach!
kurze version:
wie (mit hilfe welchen moduls) steuere ich mit perl den pc-speaker des servers an?
ich moechte alledings nicht bloss den standard-beep, sondern verschiedene frequenzen erklingen lassen.
lange version:
rechner A hat zwei netzwerkkarten und fungiert als router fuer rechner B sowie als work station. (B <-> A <-> dsl-verbindung)
A und B teilen sich also eine verbindung.
auf rechner A laeuft manchmal win2k, manchmal debian linux. immer laeuft jedoch ein apache.
nun soll B eine verbindung ins internet auf- und abbauen koennen.
das einloggen sollte nicht so das problem darstellen. das werde ich sowohl mit windows als auch mit linux hinbekommen.
das ausloggen ist etwas problematischer, denn falls die user an A und B gleichzeitig surfen, darf B ja nicht einfach die verbindung trennen, denn sonst wuerde der user von A je nach umstaenden sich seine axt schnappen und B zu kleinholz verarbeiten. umgekehrt gilt das gleiche. ueberdies soll jedoch B tatsaechlich die internet-verbindung kappen koennen, wenn an A niemand dransitzt.
deswegen habe ich mir ueberlegt, dass B zum ausloggen ueber den apache ein perlscript ausfuehren laesst, welches dem user an A ueber den pc speaker irgendwas vordudelt. jener bekommt dann eine gewisse zeit, z.b. 15 sekunden. den auslog-vorgang abzubrechen, andernfalls loggt sich A aus.
hmm, waehrend ich das hier schreibe kommt mir die idee, das ganz anders zu machen, und zwar ueber einen simplen doofen mit 0 initialisierten zaehler in form einer umgebungsvariablen. moechten A oder B eine internetverbindung herstellen, wird der zaehler jeweils erhoeht; mochten sie die verbindung beenden, wird der zaehler jeweils dekrementiert und falls nach dem dekrementieren der zaehler gleich 0 ist, wird die verbindung abgebaut. juhu! hmm, aber trotzdem moechte ich jetzt gerne wissen, wie man mit perl den pc speaker anspricht. ;-)
prost
seth
Hi,
beepen müsste unter linux mit dem programm beep gehen.
das kannst du ja einfach mit backticks aufrufen:
beep -n 1000 -f 2500
sollte gehen.
Unter Win weiss ich nicht :/
Hi,
beepen müsste unter linux mit dem programm beep gehen.
das kannst du ja einfach mit backticks aufrufen:
beep -n 1000 -f 2500
sollte gehen.Unter Win weiss ich nicht :/
hmm, naja, wenns kein perl-modul dafuer gibt, dann waere das eine ausweichmoeglichkeit.
fuer windows koennte man dann z.b. ein quickbasic-script wie das folgende verwenden.
cmd$ = COMMAND$
space = INSTR(cmd$, " ")
freq = VAL(LEFT$(cmd$, space))
IF freq >= 37 AND freq <= 32767 THEN
cmd$ = MID$(cmd$, space + 1)
length = VAL(LEFT$(cmd$, space))
IF length >= 0 AND length <= 50 THEN
SOUND freq, length
sleeptime = INT(1 + length / 18.2)
SLEEP sleeptime
END IF
END IF
END
wenn das ding als beep.exe compiliert wird, lautet der aufruf:
beep frequenz, laenge
(frequenz in hertz)
(laenge in clock ticks)
prost
seth