#Region "잠금화면변경"
Private Sub Button44_Click(sender As Object, e As EventArgs) Handles Button44.Click
If Label1.Text = "본사" Then
Dim D_day As Date = "2018-06-11" '만료되는 날짜
If D_day > Now Then
Lock_Screen()
Else
UnLock_Screen()
End If
End If
End Sub
'windows 32bit 프로그램을 이용하여 Windows 64bit OS에서 구동 시 Wow64 폴더가 아닌 system32를 사용하게
Declare Function Wow64DisableWow64FsRedirection Lib "kernel32.dll" (ByRef ptr As IntPtr) As Boolean
Declare Function RegDisableReflectionKey Lib "advapi32.dll" (hBase As IntPtr) As Integer
'잠금화면 설정하기
Private Sub Lock_Screen()
' ------------------------------------------------------------------ 레지 관련 -------------------------------------------------------------------------
Dim BG_img_reg_path As String = "SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background"
'============= 프로시저 사용하지 않고 64bit OS에서 32bit app에서 registry 쓰기 로직 =======================
'Dim BG_img_reg_path As String = "SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI"
'Dim key As RegistryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)
'key = key.OpenSubKey(BG_img_reg_path, True)
'Dim val As String()
'val = key.GetValueNames()
'key.CreateSubKey("Background").SetValue("OEMBackground", 1, RegistryValueKind.DWord)
'key.Close()
'==================================================================================
''==== 레지스트리에 윈도우 잠금화면 적용을 위한 Key값 생성 Logic =====
'WriteRegKey_2(BG_img_reg_path, "OEMBackground", 1)
WriteRegKey_64(BG_img_reg_path, "OEMBackground", 1)
''===================================================
' ------------------------------------------------------------------ 파일 관련 -------------------------------------------------------------------------
' ★★★★★★★★★★ 중요 ★★★★★★★★★★★★★★
' 첨부되는 그림 파일은 200KB를 초과하면 안된다.
'★★★★★★★★★★★★★★★★★★★★★★★★★★★
'Dim BG_File_Path As String = "c:\Windows\System32\oobe\info\backgrounds\" '적용하려는 이미지가 저장되어야 할 경로
Dim BG_File_Path As String = Environment.SystemDirectory & "\oobe\info\backgrounds" '적용하려는 이미지가 저장되어야 할 경로
Dim 파일명 As String = "backgroundDefault.jpg" '파일명은 고정값임(변경 시 동작하지 않음)
Dim Source_File As String = Application.StartupPath & "\" & 파일명
'wow64 폴더 리디렉션 방지
Wow64DisableWow64FsRedirection(True)
If Directory.Exists(BG_File_Path) = True Then
My.Computer.FileSystem.CopyFile(Source_File, BG_File_Path & "\" & 파일명, overwrite:=True) '동일한 파일이 있는경우 덮어씌우기
Else
My.Computer.FileSystem.CreateDirectory(BG_File_Path) '폴더가 없는경우 폴더 생성
My.Computer.FileSystem.CopyFile(Source_File, BG_File_Path & "\" & 파일명, overwrite:=True) '동일한 파일이 있는경우 덮어씌우기
End If
'---------------------------------------------------------------------------------------------------------------------------------------------------------
End Sub
'잠금화면 설정해제 하기
Private Sub UnLock_Screen()
'===== 레지스트리에 윈도우 잠금화면 Default로 돌리기위해 레지스트리 삭제 Logic ====================================
Dim BG_img_reg_path As String = "SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background"
Dim key As RegistryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)
Dim FoundKey As RegistryKey = key.OpenSubKey(BG_img_reg_path, True) '레지스트리 쓰기를 허용한다
'레지스트리가 해당경로에 있을경우 OEMBackground 값을 삭제 한다
Try
If Not (FoundKey Is Nothing) Then
FoundKey.DeleteValue("OEMBackground")
End If
Catch ex As Exception
End Try
'===========================================================================================
'======================== 파일 삭제 ===========================================================
Dim BG_File_Path As String = "c:\Windows\System32\oobe\info\backgrounds" '적용하려는 이미지가 저장되어야 할 경로
Dim 파일명 As String = "backgroundDefault.jpg" '파일명은 고정값임(변경 시 동작하지 않음)
'wow64 폴더 리디렉션 방지
Wow64DisableWow64FsRedirection(True)
Try
If File.Exists(BG_File_Path & "\" & 파일명) = True Then
File.Delete(BG_File_Path & "\" & 파일명)
End If
Catch ex As Exception
End Try
'===========================================================================================
End Sub
#End Region
'VB.net' 카테고리의 다른 글
숫자여부 체크 (0) | 2018.07.05 |
---|---|
투명을 위한 윈도우 API (0) | 2018.06.21 |
64Bit OS에서 32Bit App으로 레지 리디렉션 시키지 않고 쓰기 (0) | 2018.06.11 |
Windows-64bit에 system32폴더를 wow64 폴더로 Redirection 방지 (0) | 2018.06.08 |
프레세스 확인 후 kill (0) | 2018.06.05 |