home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1998 January (DVD) / VPR980100.ISO / OLS / WIN16 / ESAVER04 / ESAVER04.LZH / ESSRC04.LZH / ESMAIN.FRM < prev    next >
Text File  |  1995-06-03  |  3KB  |  106 lines

  1. VERSION 2.00
  2. Begin Form ESMain 
  3.    BackColor       =   &H00000000&
  4.    BorderStyle     =   0  'なし
  5.    ClipControls    =   0   'False
  6.    ControlBox      =   0   'False
  7.    Height          =   1815
  8.    Icon            =   ESMAIN.FRX:0000
  9.    Left            =   2445
  10.    LinkTopic       =   "Form2"
  11.    MaxButton       =   0   'False
  12.    MinButton       =   0   'False
  13.    ScaleHeight     =   540
  14.    ScaleWidth      =   540
  15.    Top             =   3540
  16.    Width           =   3480
  17.    WindowState     =   2  '最大表示
  18.    Begin Timer Timer1 
  19.       Interval        =   200
  20.       Left            =   2280
  21.       Top             =   360
  22.    End
  23. End
  24.  
  25. Dim CurPos As POINTAPI
  26. Dim Counter
  27.  
  28. Sub Form_KeyDown (KeyCode As Integer, Shift As Integer)
  29.     'キーが押されたら終了
  30.     SaverEnd
  31. End Sub
  32.  
  33. Sub Form_Load ()
  34. Dim Rtn
  35.     
  36.     Counter = 0
  37.  
  38.     'マウスカーソルの非表示
  39.     Rtn = ShowCursor(False)
  40.     
  41.     'セーバーのバックになる自分自身を最上位に押し上げて
  42.     Rtn = SetWindowPos(Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_NOMOVE Or SWP_NOSIZE)
  43.  
  44. End Sub
  45.  
  46. Sub Form_MouseDown (Button As Integer, Shift As Integer, x As Single, y As Single)
  47.     'マウスボタンが押されたら、終了
  48.     SaverEnd
  49. End Sub
  50.  
  51. Sub Timer1_Timer ()
  52. Dim EXEPos As POINTAPI
  53. Dim NewCurPos As POINTAPI
  54. Dim RunhWnd(), i, j
  55.  
  56.     If Counter = 0 Then
  57.         '起動時のカーソルの位置を保存
  58.         Call GetCursorPos(CurPos)
  59.         'ランダム移動しないものは、ここで最上位に押し上げておく
  60.         If MoveCheck = " " Then
  61.                 'セーバーで起動したプログラムを最上位に押し出す
  62.             Rtn = GetRun_hWnd(RunhWnd(), i)
  63.             If Rtn = True Then
  64.                 Rtn = SetWindowPos(RunhWnd(0), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_NOMOVE Or SWP_NOSIZE)
  65.             End If
  66.             For j = 1 To i
  67.                 Rtn = SetWindowPos(RunhWnd(j), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_NOMOVE Or SWP_NOSIZE)
  68.             Next j
  69.         End If
  70.     End If
  71.  
  72.     'マウスの現在の位置を取得
  73.     Call GetCursorPos(NewCurPos)
  74.     'もしマウスカーソルが動いていたら
  75.     If NewCurPos.x <> CurPos.x Or NewCurPos.y <> CurPos.y Then
  76.         '終了する
  77.         SaverEnd
  78.     End If
  79.   
  80.     'もしランダム移動が指定されていたら
  81.     If MoveCheck = "×" Then
  82.         'Counterが規定数に達しているとき
  83.         If Counter Mod 25 = 0 Then
  84.             'Top.Leftを生成
  85.             EXEPos.x = Rnd * Screen.Width / Screen.TwipsPerPixelX * .8
  86.             EXEPos.y = Rnd * Screen.Height / Screen.TwipsPerPixelY * .8
  87.             '実行したプログラムの位置を変更
  88.             If ESErrBox.Visible = True Then
  89.                 Rtn = SetWindowPos(ESErrBox.hWnd, HWND_TOPMOST, EXEPos.x, EXEPos.y, 0, 0, SWP_NOACTIVATE Or SWP_NOSIZE)
  90.             Else
  91.                 Rtn = GetRun_hWnd(RunhWnd(), i)
  92.                 If Rtn = True Then
  93.                     Rtn = SetWindowPos(RunhWnd(0), HWND_TOPMOST, EXEPos.x, EXEPos.y, 0, 0, SWP_NOACTIVATE Or SWP_NOSIZE)
  94.                 End If
  95.                 For j = 1 To i
  96.                     Rtn = SetWindowPos(RunhWnd(j), HWND_TOPMOST, EXEPos.x, EXEPos.y, 0, 0, SWP_NOACTIVATE Or SWP_NOSIZE)
  97.                 Next j
  98.             End If
  99.         End If
  100.     End If
  101.     
  102.     Counter = Counter + 1
  103.  
  104. End Sub
  105.  
  106.