Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0060: Bildschirm einfrieren und auftauen

 von 

Beschreibung 

Für bestimmte Aktionen ist es notwendig, sämtliche Aktualisierungen des Bildschirms auszuschalten und danach wieder einzuschalten. Die Windowsoberfläche wird hiermit einfach eingefroren und erst bei Bedarf wieder aktualisiert.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

GetDesktopWindow, LockWindowUpdate

Download:

Download des Beispielprojektes [1,9 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Timersteuerelement "Timer1"
' Steuerelement: Schaltfläche "Command1"

Option Explicit

Private Declare Function LockWindowUpdate Lib "user32" _
        (ByVal hwndLock As Long) As Long
        
Private Declare Function GetDesktopWindow Lib "user32" _
        () As Long

Private Sub Command1_Click()
  MsgBox ("Der Bildschirm wird jetzt für 10 Sekunden eingefroren !")
  Form1.Enabled = False
  Call Freeze
  Timer1.Interval = 10000
  Timer1.Enabled = True
End Sub

Private Sub Form_Load()
  Timer1.Enabled = False
End Sub

Private Sub Timer1_Timer()
  Timer1.Enabled = False
  Call Defrost
  MsgBox ("Alles wieder beim alten")
  Form1.Enabled = True
End Sub

Private Sub Freeze()
  LockWindowUpdate (GetDesktopWindow)
End Sub

Private Sub Defrost()
  LockWindowUpdate (0&)
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 6 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Tobias Soltermann am 06.09.2006 um 19:42

Hi z'ammen

Die Aktualisierungen des Bildschirms was das Tipp-Programm betrifft werden eingefroren.
Aber die Taskleiste und alles drum und dran läuft weiter wie sonst.

Sorry, funktioniert nicht wirklich.

Gruess, Tobias

Kommentar von David T. am 05.09.2006 um 16:38

Hat jemand ein fertiges Programm, das unter XP läuft, mit dem ich den Bildschirm einfrieren und wieder auftauen kann? Am besten wäre, wenn der Bildschirm beim starten des Programmes direkt eingefrohren wird und beim Starten eines anderen wieder aufgetaut wird.

mfg

Kommentar von THomas am 25.04.2004 um 19:28

Klappt super!!

Kommentar von doggi am 15.12.2003 um 23:23

also so wie dieses Programm arbeiet langt ein einziger Eintrag
und zwar
Form1.enabled = false
denn klickt man neben irgendwo hin dann ist der bildschirm nicht wirklich "eingefroren"

Kommentar von Marcus Schmitz am 09.09.2001 um 11:09

Dieser Tip funktioniert leider nicht, wenn zwischen "Einfrieren" und "Auftauen" mit der Funktion MoveWindow die Funsterposition verändert wird. Evtl. hat ja jemand ein Lösung für dieses Problem.

Kommentar von Stephan Fischer am 26.11.2000 um 11:25

Ich arbeite mit 2 bzw. 3 Grafikkarten. Ist es irgendwie möglich, Windows beizubringen, es soll nur einen der Bildschirme einfrieren?
Wissen Sie vielleicht, wie ich die einzelnen Auflösungs- und Positionsdaten der einzelnen Bildschirme abfragen kann?
MfG
Stephan