The project today is Screen lock, Screen lock is used to lock the screen of your computer. and not just to access or tamper with your work. yet you will be able to access that requiring the user to perform a certain action in order to receive access, like log-in or click the button. here are one example of the lock screen.
First open Microsoft Visual Studio 2008/2010 and Create New Project and name it and then add three Form, first form the main form, second the background or the block screen and third form the close or unblock form. Then add three Module. first Lock Screen Module, second Lock System Parameters and Native module.
Lock Screen Module
Imports System.Threading
Public NotInheritable Class LockScreen
Private myForm As Form
#Region " System Locking Methods "
Public Function LockSystemAndShow(ByVal myDForm As Form) As Boolean
myForm = myDForm
Dim scr As Screen
scr = Screen.PrimaryScreen
Dim background As Bitmap = New Bitmap(scr.Bounds.Width, scr.Bounds.Height)
Using g As Graphics = Graphics.FromImage(background)
g.CopyFromScreen(0, 0, 0, 0, scr.Bounds.Size)
Using br As Brush = New SolidBrush(Color.FromArgb(192, Color.Black))
g.FillRectangle(br, scr.Bounds)
End Using
End Using
Dim originalThread As IntPtr
Dim originalInput As IntPtr
Dim newDesktop As IntPtr
originalThread = GetThreadDesktop(Thread.CurrentThread.ManagedThreadId)
originalInput = OpenInputDesktop(0, False, DESKTOP_SWITCHDESKTOP)
newDesktop = CreateDesktop("Desktop" & Guid.NewGuid().ToString(), Nothing, Nothing, 0, GENERIC_ALL, Nothing)
SetThreadDesktop(newDesktop)
SwitchDesktop(newDesktop)
Dim newThread As Thread = New Thread(AddressOf NewThreadMethod)
newThread.CurrentCulture = Thread.CurrentThread.CurrentCulture
newThread.CurrentUICulture = Thread.CurrentThread.CurrentUICulture
newThread.Start(New LockSystemParameters(newDesktop, background))
newThread.Join()
SwitchDesktop(originalInput)
SetThreadDesktop(originalThread)
CloseDesktop(newDesktop)
CloseDesktop(originalInput)
Return True
End Function
Private Sub NewThreadMethod(ByVal params As Object)
Dim v As LockSystemParameters = DirectCast(params, LockSystemParameters)
SetThreadDesktop(v.NewDesktop)
Using f As Form = New BlockScreen(v.Background)
f.Show()
myForm.ShowDialog()
f.BackgroundImage = Nothing
Application.DoEvents()
Thread.Sleep(250)
End Using
End Sub
#End Region
End Class
Lock System Parameters
Friend Class LockSystemParameters
Public NewDesktop As IntPtr
Public Background As Bitmap
Public Sub New(ByVal newDesktop As IntPtr, ByVal background As Bitmap)
Me.NewDesktop = newDesktop
Me.Background = background
End Sub
End Class
Native module
Imports System.Runtime.InteropServices_ Friend Module Native Public Const GENERIC_ALL As Integer = &H10000000 Public Const DESKTOP_SWITCHDESKTOP As Integer = &H100L Public Declare Auto Function GetThreadDesktop Lib "user32.dll" (ByVal threadId As Integer) As IntPtr Public Declare Auto Function OpenInputDesktop Lib "user32.dll" (ByVal flags As Integer, ByVal inherit As Boolean, ByVal desiredAccess As Integer) As IntPtr Public Declare Auto Function CreateDesktop Lib "user32.dll" (ByVal desktop As String, ByVal device As String, ByVal devmode As IntPtr, ByVal flags As Integer, ByVal desiredAccess As Integer, ByVal lpsa As IntPtr) As IntPtr Public Declare Auto Function SetThreadDesktop Lib "user32.dll" (ByVal desktop As IntPtr) As Boolean Public Declare Auto Function SwitchDesktop Lib "user32.dll" (ByVal desktop As IntPtr) As Boolean Public Declare Auto Function CloseDesktop Lib "user32.dll" (ByVal desktop As IntPtr) As Boolean End Module
In main form there have a 2 button The LOCK and EXIT.
Public Class MainForm
Private Sub MainForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Location = New Point(10, 10)
End Sub
Private Sub btnlock_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnlock.Click
Dim myObj As LockScreen = New LockScreen
myObj.LockSystemAndShow(CloseBotton)
End Sub
Private Sub btnexit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnexit.Click
End
End Sub
End Class
The background or the block screen.
Public Class BlockScreen
Inherits Form
Private background As Bitmap
Public Sub New(ByVal background As Bitmap)
Me.BackColor = Color.Black
Me.FormBorderStyle = FormBorderStyle.None
Me.Location = Point.Empty
Me.Size = Screen.PrimaryScreen.Bounds.Size
Me.StartPosition = FormStartPosition.Manual
Me.Visible = True
Me.background = background
End Sub
Protected Overrides Sub OnShown(ByVal e As System.EventArgs)
Me.BackgroundImage = background
Me.DoubleBuffered = True
MyBase.OnShown(e)
End Sub
End Class
The Close or Unblock form
Public Class CloseBotton
Private Sub btnunlock_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnunlock.Click
Me.Close()
End Sub
Private Sub CloseBotton_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Location = New Point(10, 10)
End Sub
End Class
Follow the code and you... create your own lock screen with login.
If you want the copy of this project. Here's the link.
http://j.gs/6IHD
This Project Design and Program By: lyo
