回 帖 发 新 帖 刷新版面

主题:[原创]【VB+API】屏保程序完整源码

Option Explicit
Private Declare Function 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) As Long
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOZORDER = &H8
Dim pic() As String
Public num, idme, sec, secl As Integer
Public str As String
Private Sub Command2_Click()
    Me.Line (0, 0)-(50, 50)
End Sub
Function boxdraw(ByVal X As Integer, ByVal Y As Integer, ByVal chang As Long, ByVal kuan As Long, Optional ByVal color As Integer)
    Dim fh, fw As Single
    fh = Form1.Height: fw = Form1.Width
    Form1.Scale (-1 * Int(fw / 2), Int(fh / 2))-(Int(fw / 2), -1 * Int(fh / 2))
    If color = 0 Then color = vbBlack
    Form1.Line (X, Y)-(X + chang, Y - kuan), color, B
End Function
Private Sub Command3_Click()
    Call boxdraw(0, 0, 200, 200)
End Sub
Private Sub Command4_Click()
    End
End Sub
Private Sub Form_Activate()
    str = Dir(App.Path & "\")
    Do While str <> ""
        If str = App.EXEName & ".exe" Then
        ElseIf kzm(str) = "bmp" Or kzm(str) = "jpeg" Or kzm(str) = "jpg" Or kzm(str) = "gif" Or kzm(str) = "png" Or kzm(str) = "tif" Then
            num = num + 1
            ReDim Preserve pic(num)
            pic(num) = App.Path & "\" & str
        End If
        str = Dir
    Loop
    Timer1.Enabled = True
    Timer1.Interval = 1000
End Sub
Private Sub Form_Click()
    Timer1.Enabled = False
    Dim interv
    interv = InputBox("请输入间隔秒(s),小于等于零结束屏保")
    If Val(interv) = 0 Or Val(interv) < 0 Then End
    secl = Val(interv)
    Timer1.Enabled = True
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
    If KeyAscii = 27 Then End
End Sub
Private Sub Form_Load()
    SetWindowPos Form1.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOZORDER + SWP_NOMOVE + SWP_NOSIZE
    Form1.Top = 0
    Form1.Left = 0
    Form1.Width = Screen.Width
    Form1.Height = Screen.Height
    'Image1.Top = 0
    'Image1.Left = 0
    'Image1.Width = Screen.Width
    'Image1.Height = Screen.Height
    Me.BackColor = vbBlack
    secl = 3
    sec = 3
End Sub
Private Sub Image1_Click()
    Timer1.Enabled = False
    Dim interv
    interv = InputBox("请输入间隔秒(s),小于等于零结束屏保")
    If Val(interv) = 0 Or Val(interv) < 0 Then End
    secl = Val(interv)
    Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
    On Error Resume Next
    sec = sec + 1
    If sec > secl Then
        '屏蔽区begin
        idme = idme + 1
        If num = 0 Then Timer1.Enabled = False: End
        If idme > num Then idme = 1
        Image1.Visible = False
        Image1.Stretch = False
        Image1.Picture = LoadPicture(pic(idme))
        '根据图片大小进行调整
        If Image1.Height > Screen.Height Or Image1.Width > Screen.Width Then
            Image1.Stretch = True
            Image1.Top = 0
            Image1.Left = 0
            Image1.Width = Screen.Width
            Image1.Height = Screen.Height
        Else
            Image1.Stretch = False
            Image1.Top = Int((Screen.Height - Image1.Height) / 2)
            Image1.Left = Int((Screen.Width - Image1.Width) / 2)
        End If
        '屏蔽区end
        Image1.Visible = True
        sec = 1
    Else
    End If
End Sub
Function kzm(ByVal pathme As String)
    Dim qq As String
    Dim qs As Long
    qs = InStrRev(pathme, ".")
    qq = Mid(pathme, qs + 1)
    kzm = qq
End Function

回复列表 (共6个回复)

沙发

加个精,鼓励一下下。

板凳

可惜我用的是液晶显示器了,不需要屏保了。
以前用电子管显示器时,我也写了一个屏保程序,有50多种图片特技和文字特技。

3 楼

[quote]可惜我用的是液晶显示器了,不需要屏保了。
以前用电子管显示器时,我也写了一个屏保程序,有50多种图片特技和文字特技。[/quote]
我不知道怎么写图片特技,比如百叶窗什么的……

4 楼

http://bbs.pfan.cn/post-255421.html

5 楼

[quote]http://bbs.pfan.cn/post-255421.html[/quote]
谢谢一江秋水老师指导!

6 楼

NOT all that Mrs. Bennet, however, with the assistance of [url=http://www.timberlandforyou.com/]mens timberland boots[/url] her five daughters, could ask on the subject was sufficient to draw from her husband any satisfactory description of Mr. Bingley. They attacked him in various ways; with [url=http://www.timberlandforyou.com/]timberland 6 inch boots[/url] barefaced questions, ingenious suppositions, and distant surmises; but he eluded the skill of them all; and they were at last obliged to accept the second-hand intelligence of their [url=http://www.timberlandforyou.com/]timberland roll top[/url] neighbour Lady Lucas. Her report was highly favourable. Sir William had been delighted with him. He was quite young, wonderfully [url=http://www.timberlandforyou.com/]timberland roll top boot[/url] handsome, extremely agreeable, and, to crown the whole, he meant to be at the next assembly with a large party. Nothing could be more delightful! To be fond of dancing was a certain step towards [url=http://www.timberlandforyou.com/]timberland roll top boot[/url] falling in love; and very lively hopes of Mr. Bingley's heart were entertained.;If I can but see one of my daughters happily settled at Netherfield,; said Mrs. Bennet to her husband, ;and all the others [url=http://www.timberlandforyou.com/]Womens 14-Inch Premium Waterproof Boots[/url] equally well married, I shall have nothing to wish for.;In a few days Mr. Bingley returned Mr. Bennet's visit, and sat about ten minutes with him in his library. He had entertained [url=http://www.timberlandforyou.com/]shop timberland boots[/url] hopes of being admitted to a sight of the young ladies, of whose beauty he had heard much; but he saw only the father. The ladies were somewhat more fortunate, for they had the advantage [url=http://www.timberlandforyou.com/]timberland men boots[/url] of ascertaining, from an upper window, that he wore a blue coat and rode a black horse.An invitation to dinner was soon afterwards dispatched; and already had Mrs. Bennet planned the courses that were [url=http://www.timberlandforyou.com/]timberlands boots[/url] to do credit to her housekeeping, when an answer arrived which deferred it all. Mr. Bingley was obliged to be in town the following day, and consequently unable to accept the honour of their [url=http://www.timberlandforyou.com/]timberland boots on sale[/url] invitation, c. Mrs. Bennet was quite disconcerted. She could not imagine what business he could have in town so soon after his arrival in Hertfordshire; and she began to fear that he might [url=http://www.timberlandforyou.com/]cheap timberland boots[/url] be always flying about from one place to another, and never settled at Netherfield as he ought to be. Lady Lucas quieted her fears a little by starting the idea of his being gone to London only to [url=http://www.timberlandforyou.com/]timberland boots on sale[/url] get a large party for the ball; and a report soon followed that Mr. Bingley was to bring twelve ladies and seven gentlemen with him [url=http://www.timberlandforyou.com/]womens timberland boots[/url] to the assembly.
[url=http://www.timberlandforyou.com/]timberland 14 inch boots[/url] 
[url=http://www.timberlandforyou.com/]timberland working boots[/url] 
[url=http://www.timberlandforyou.com/]mens timberland boots[/url] zxj

我来回复

您尚未登录,请登录后再回复。点此登录或注册