VERSION 5.00 Begin VB.Form Form1 BackColor = &H00000000& BorderStyle = 0 '沒有框線 ClientHeight = 3195 ClientLeft = 0 ClientTop = 0 ClientWidth = 4680 LinkTopic = "Form1" ScaleHeight = 3195 ScaleWidth = 4680 ShowInTaskbar = 0 'False StartUpPosition = 3 '系統預設值 WindowState = 2 '最大化 Begin VB.Timer Timer1 Interval = 10 Left = 1560 Top = 2280 End Begin VB.Label Label1 AutoSize = -1 'True BackStyle = 0 '透明 Caption = "歡迎使用大嘴巴的電腦!" BeginProperty Font Name = "新細明體" Size = 24 Charset = 136 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H0000FFFF& Height = 480 Left = 1440 TabIndex = 0 Top = 1680 Width = 5280 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Const WS_CHILD = &H40000000 Const GWL_HWNDPARENT = (-8) Const GWL_STYLE = (-16) Const HWND_TOPMOST = -1& Const HWND_TOP = 0& Const HWND_BOTTOM = 1& Const SWP_NOSIZE = &H1& Const SWP_NOMOVE = &H2 Const SWP_NOZORDER = &H4 Const SWP_NOREDRAW = &H8 Const SWP_NOACTIVATE = &H10 Const SWP_FRAMECHANGED = &H20 Const SWP_SHOWWINDOW = &H40 Const SWP_HIDEWINDOW = &H80 Const SWP_NOCOPYBITS = &H100 Const SWP_NOOWNERZORDER = &H200 Const SWP_DRAWFRAME = SWP_FRAMECHANGED Const SWP_NOREPOSITION = SWP_NOOWNERZORDER Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long Private Declare Sub SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) Dim X0 As Single, Y0 As Single ' 用來記錄滑鼠的位置 Private Sub Form_Load() If UCase(Left(Command, 2)) = "/A" Then ' 密碼設定 MsgBox "此一螢幕保護程式未提供「密碼保護」功能!" Unload Me: End End If If UCase(Left(Command, 2)) = "/C" Then ' 設定值 Form2.Show vbModal Unload Me: End End If If UCase(Left(Command, 2)) = "/P" Then ' 小螢幕 Dim hwndDsp As Long Dim r As RECT hwndDsp = Val(Mid(Command, 3)) GetClientRect hwndDsp, r Me.Caption = "Preview" Style = GetWindowLong(Me.hwnd, GWL_STYLE) Style = Style Or WS_CHILD SetWindowLong Me.hwnd, GWL_STYLE, Style SetParent Me.hwnd, hwndDsp SetWindowLong Me.hwnd, GWL_HWNDPARENT, hwndDsp SetWindowPos Me.hwnd, HWND_TOP, 0&, 0&, r.Right, r.Bottom, SWP_NOZORDER Or SWP_NOACTIVATE Or SWP_SHOWWINDOW End If If App.PrevInstance Then ' 已經在執行中 Unload Me: End End If ' 讀取系統登錄區的設定值,然後設定給 Label1 Label1.Caption = GetSetting("saver03", "saver03", "Content", "歡迎使用大嘴巴的電腦!") Label1.Font.Name = GetSetting("saver03", "saver03", "FontName", "細明體") Label1.Font.Size = GetSetting("saver03", "saver03", "FontSize", 12) Label1.Font.Bold = GetSetting("saver03", "saver03", "Bold", 0) Label1.Font.Italic = GetSetting("saver03", "saver03", "Italic", 0) Label1.Font.Underline = GetSetting("saver03", "saver03", "Underline", 0) Label1.Font.Strikethrough = GetSetting("saver03", "saver03", "StrikeThrough", 0) End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) ' 第一次發生滑鼠事件時,將位置記錄於 (X0,Y0) If X0 = 0 And Y0 = 0 Then X0 = x: Y0 = y ' 如果滑鼠位置改變,就載出表單 If x <> X0 Or y <> y Then Unload Me: End End Sub Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Unload Me: End ' 載出表單 End Sub Private Sub Form_Resize() ' 將文字的位置設定於表右邊界的中央位置 Label1.Left = Form1.ScaleWidth Label1.Top = (Form1.ScaleHeight - Label1.Height) / 2 End Sub Private Sub Timer1_Timer() ' 左移文字寬度的 1/20 Label1.Left = Label1.Left - Label1.Width / 20 If Label1.Left + Label1.Width < 0 Then ' 如果超過左邊界 Label1.Left = Form1.ScaleWidth ' 移到右邊界 End If End Sub