The password dialogue is done by Windows, isn't it?
On 2K, XP and NT (I think), then yes, but it's the responsibility of the screen saver on 9x.@Graythe - Try running this and let your saver start (wont work for a preview)...
; user32.decl ;------------------ ; .lib "user32.dll" ; SystemParametersInfo(uAction%, uParam%, lpvParam*, fuWinIni%) : "SystemParametersInfoA" ; MessageBeep(wType%) ;------------------ ; Should work on 9x, 2K and XP Const SPI_GETSCREENSAVERRUNNING = $72 Local time = MilliSecs() Local bnk = CreateBank(1) Repeat If (MilliSecs() - time) >= 1000 If SystemParametersInfo(SPI_GETSCREENSAVERRUNNING, 0, bnk, 0) If PeekByte(bnk, 0) Then MessageBeep(-1) EndIf time = MilliSecs() EndIf Delay 10 Until KeyHit(1) EndHere's a more fully featured version I have. Written for BMax, but should be easy enough to convert...
'Conversion of some C source I found on the net. ' Should work on 9x, 2K, XP and NT Extern "win32" Function GetLastError() Function SystemParametersInfo(uiAction, uiParam, pvParam Var, fWinIni) = "SystemParametersInfoA@16" Function OpenDesktop(lpszDesktop$z, dwFlags, fInherit, dwDesiredAccess) = "OpenDesktopA@16" Function CloseDesktop(hDesktop) End Extern Const ERROR_ACCESS_DENIED = $5 Const SPI_GETSCREENSAVERRUNNING = $72 Const MAXIMUM_ALLOWED = $2000000 Function SaverIsRunning() Local running = False If SystemParametersInfo(SPI_GETSCREENSAVERRUNNING, 0, running, 0) If running Then Return True EndIf Local hDesk = OpenDesktop("screen-saver", 0, False, MAXIMUM_ALLOWED) If hDesk CloseDesktop(hDesk) Return True EndIf If GetLastError() = ERROR_ACCESS_DENIED Then Return True End Function