home *** CD-ROM | disk | FTP | other *** search
/ Programming Tool Box / SIMS_2.iso / bp_3_94 / vbwin / tricks / strt_scr.frm < prev    next >
Text File  |  1994-05-24  |  4KB  |  117 lines

  1. VERSION 2.00
  2. Begin Form Form1 
  3.    BorderStyle     =   0  'None
  4.    ClientHeight    =   876
  5.    ClientLeft      =   3552
  6.    ClientTop       =   3960
  7.    ClientWidth     =   3480
  8.    ControlBox      =   0   'False
  9.    Height          =   1296
  10.    Icon            =   STRT_SCR.FRX:0000
  11.    Left            =   3504
  12.    LinkTopic       =   "Form1"
  13.    MaxButton       =   0   'False
  14.    MinButton       =   0   'False
  15.    ScaleHeight     =   876
  16.    ScaleWidth      =   3480
  17.    Top             =   3588
  18.    Width           =   3576
  19.    Begin CommandButton Command1 
  20.       Caption         =   "SCR-Starter"
  21.       Height          =   312
  22.       Left            =   0
  23.       TabIndex        =   0
  24.       Top             =   0
  25.       Width           =   1332
  26.    End
  27. End
  28. '###########################################################################
  29. '#
  30. '# SCR-Starter ⌐ 1994 Klaus Rambow fⁿr Basic Professionell
  31. '#
  32. '# Ingenieurbⁿro Rambow
  33. '# Dresdener Str. 21
  34. '# 63329 Egelsbach
  35. '# Fax: 06103 800444
  36. '# CIS: 100060,724
  37. '#
  38. '###########################################################################
  39.  
  40.  
  41.  
  42.  
  43. 'Deklarieren der API-Funktionen und Konstanten
  44. 'ErklΣrt werden diese wenn sie verwendet werden
  45.  
  46. Declare Function SendMessage& Lib "User" (ByVal hWnd%, ByVal wMsg%, ByVal wParam%, lParam As Any)
  47. Const WM_SYSCOMMAND = &H112
  48. Const SC_SCREENSAVE = &HF140
  49.  
  50. Declare Function GetPrivateProfileString% Lib "Kernel" (ByVal lpApplicationName$, ByVal lpKeyName$, ByVal lpDefault$, ByVal lpReturnedString$, ByVal nSize%, ByVal lpFileName$)
  51.  
  52. Declare Function SetWindowPos Lib "User" (ByVal hWnd%, ByVal hWndInsertAfter%, ByVal x%, ByVal Y%, ByVal cx%, ByVal cy%, ByVal wFlags%) As Integer
  53. Const SWP_NOMOVE = 2
  54. Const SWP_NOSIZE = 1
  55. Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
  56. Const HWND_TOPMOST = -1
  57. Const HWND_NOTOPMOST = -2
  58.  
  59. Declare Function GetWindowsDirectory% Lib "Kernel" (ByVal lpBuffer$, ByVal nSize%)
  60.  
  61. Sub Command1_Click ()
  62.     
  63.     'Feststellen des Windows-Pfades
  64.     WinDir$ = String$(145, 0)                ' Puffergr÷▀e festlegen
  65.     x% = GetWindowsDirectory(WinDir$, 145)   ' API-Funktion zum Erkennen des Windows-Pfades
  66.     WinDir$ = Left$(WinDir$, x%)             ' RⁿckgabeString "trimmen"
  67.     If Right$(WinDir$, 1) <> "\" Then        ' \ hinzufⁿgen wenn n÷tig
  68.         WinDir$ = WinDir$ + "\"
  69.     End If
  70.     
  71.     'in der SYSTEM.INI prⁿfen, ob Screensaver installiert
  72.     ApplicationName$ = "boot"            'festlegen der Parameter fⁿr API-Call
  73.     KeyName$ = "SCRNSAVE.EXE"
  74.     Default$ = ""
  75.     ReturnedString$ = Space$(128)
  76.     nSize% = Len(ReturnedString$)
  77.     Filename$ = WinDir$ & "SYSTEM.INI"
  78.     x% = GetPrivateProfileString%(ApplicationName$, KeyName$, Default$, ReturnedString$, nSize%, Filename$)
  79.  
  80.     If UCase$(Right$(Left$(ReturnedString$, x%), 3)) <> "SCR" Then   'testen ob Schoner installiert
  81.         MsgBox "Es ist kein Bildschirmschoner installiert!", 64, "SCR-Starter"
  82.         Exit Sub
  83.     End If
  84.         
  85.     'Form nicht mehr dauernd im Vordergrund, wⁿrde sonst vor dem Screensaver stehen
  86.     'wird in der Form_Paint-Prozedur wieder auf dauernd im Vordergrund eingestellt
  87.     kr% = SetWindowPos(form1.hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS)
  88.  
  89.     kr% = SendMessage&(form1.hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0)  'Screensaver aktivieren
  90.  
  91. End Sub
  92.  
  93. Sub Form_Load ()
  94.  
  95.     'Bedingt durch die eingestellten Eigenschaften der Form
  96.     'ist von diesem Programm nur der Button sichtbar.
  97.     'Dieser steht in der unteren rechten Bildschirmecke
  98.     'Ein Beenden des Programmes ist bei diesen Einstellungen nur ⁿber
  99.     'den Windows-Taskmanager m÷glich.
  100.     
  101.     Width = Command1.Width
  102.     Height = Command1.Height
  103.     left = screen.Width - Width
  104.     top = screen.Height - Height
  105.     
  106.     'definiert beim Programmstart die Form als immer im Vordergrund stehend
  107.     'Rⁿckgabewert kr% ist <> 0 wenn es erfolgreich war
  108.     kr% = SetWindowPos(form1.hWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
  109.  
  110. End Sub
  111.  
  112. Sub Form_Paint ()
  113.     'definiert nach Beenden des Schoners die Form wieder als immer im Vordergrund stehend
  114.     kr% = SetWindowPos(form1.hWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
  115. End Sub
  116.  
  117.