What still alludes me is the setting for the system beep. What is it that controls whether the beep will sound or not?
Wasn't beep something like Print Chr$(7)?
Sathyaish Chakravarthy: So what you're saying is that if the user turned off beeps, you're going to turn them on, beep, and then restore their preference? You will explicitely go against the user's wishes? That's amazingly rude.
I for one would enjoy a general discussion on how simple things have become unnecessarily complex for no good reason other than gratuitous complexity.
Troy, don't underestimate them thar users. They can be pretty ingenious. Heck, if you piss them off they just might open the computer case and unplug that damn speaker!
Its the software. Install NT4 and it will beep like crazy, install 2000 and it beeps a bit less but still gets annoying, install XP and I can't make it beep if my life depended on it.
Troy, I wouldn't bother with all that labour if it was going to bug the user. I'd rather have it simple as a single call to the Beep function. But it so turns out that the application this code comes from is to raise alerts to the user to remind him of a scheduled event, through a beep if he'd chosen this method of reminder. This would call for a beep, and a melodious one in that, on the appropriate time. If I had the choice, I could have done with a "silent beep" in line with your suggestion. The user can't have the cake and eat it too.
Dennis (the menace) writes,
Greg, what was it about Chr(7)? I am intrigued.
Well, Chris, I am just begining to notice.
ASCII value 7 is the vaule for the system bell. Used to ring it in the original star trek game which ran on a teletype device. Bing-bing-bing. Drove the teacher crazy or anyone else trying to think.
And in Visual FoxPro all you had to do to make a beep was go "? CHR(7)" and it would beep.
Rather than all that playing around with the beep (and possibly overriding the user's settings) why not let the user nominate a .WAV file to be played as their alert, with an option of setting it to "(none)"?
Um, is this a DOS application, or what?
How about playing WINNT\Media\ding.wav ?
Without mentioning that lots of people have their PC cases below desktop level. The other day I installed an amazingly stupid application that beeped all along the way (onmouseover, onmouseout if you believe it) but I didn't hear it until several minutes.
"gratuitous complexity" is when something is complex for complexities sake and teh complexity serves no benefit. An example is the code given to try to play a bell, which is much more complex than outputting ASCII 7, or perhaps calling "SystemBeep()", or some other simple one-line routine.
I used an addressing DLL (for postal addresses). It had a single function call. It took four parameters, each was a char(200). The one function actually served several functions with the meaning of the four parameters changing for each function. The real parameters were placed into the character strings at various points, which also changed according to the actual function. One horribly complex function call instead of several simple calls.
Fog Creek Home