fortran66のブログ

fortran について書きます。

 最小限のスクリーンセーバー

Intel Visual Fortran Ver.10.1 で Screen Saver 用の Module が提供されているのを見つけました。最小限度のものを作ってみます。Module scrnsave を使用します。


SUBSYSTEM は Windows Program 用にします。

出来た EXE ファイルの拡張子を .SCR に変えて、C:\Windows\System32 の下にコピーします。そうすると ScreenSaver の設定のところに現れます。

ここでは、スクリーンセーバーは、特に何もせず真っ黒な画面が現れるだけです。

LOGICAL(4) FUNCTION  ScreenSaverConfigureDialog(hDlg ,message ,wParam ,lParam)
!DEC$ ATTRIBUTES STDCALL, ALIAS : '_ScreenSaverConfigureDialog@16' :: ScreenSaverConfigureDialog 
INTEGER, INTENT(IN) :: hDlg ,message ,wParam ,lParam
ScreenSaverConfigureDialog = .TRUE.
END FUNCTION  ScreenSaverConfigureDialog

LOGICAL(4) FUNCTION  RegisterDialogClasses(hInst)  
!DEC$ ATTRIBUTES STDCALL, ALIAS : '_RegisterDialogClasses@4' :: RegisterDialogClasses 
INTEGER, INTENT(IN) :: hInst
RegisterDialogClasses = .TRUE.
END FUNCTION  RegisterDialogClasses

INTEGER(4) FUNCTION ScreenSaverProc(hWnd, uMsg, wParam, lParam)
!DEC$ ATTRIBUTES STDCALL, ALIAS : '_ScreenSaverProc@16' :: ScreenSaverProc 
USE scrnsave
USE ifwin
USE iflogm
IMPLICIT NONE
INTEGER(4):: hWnd, uMsg, wParam, lParam
ScreenSaverProc = DefScreenSaverProc(hWnd, uMsg, wParam, lParam)
RETURN
END FUNCTION ScreenSaverProc