29-08-20, 02:14 AM
السلام عليكم
أريد كود لجعل البرنامج يقلع مع اقلاع النظام (windows) مع امكانية تفعيل و وقف هذه الخاصية من داخل البرنامج من خلال بوتون او checkbox
'Write to register
Dim regKey As Microsoft.Win32.RegistryKeyregKey
regKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True)
regKey.SetValue("YourApplicationName", "YourInstallPath")
regKey.Close()
regKey.DeleteValue("YourApplicationName", False)
Public Function Recuperer_Startup_With_Windows_From_Table_Settings() As String
Using Cmd As New OleDbCommand("SELECT * From TBL_SETTINGS", Conne_2020)
If Conne_2020.State = ConnectionState.Closed Then Conne_2020.Open()
Using Dreader = Cmd.ExecuteReader()
If Dreader.HasRows Then
Do While Dreader.Read
Me.CheckBox1.Checked = Convert.ToBoolean(Dreader("StartupWithWindows"))
Loop
End If
End Using
End Using
If Conne_2020.State = ConnectionState.Open Then Conne_2020.Close()
Dim Myreturnvalue As String = Nothing
Return Myreturnvalue
End Function
Private Sub Run_Programme_At_Startup_Windows()
Try
Dim regKey As Microsoft.Win32.RegistryKey
If CheckBox1.Checked = True Then 'Add In Registry
regKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True)
regKey.SetValue(Application.ProductName, Application.ExecutablePath)
regKey.Close()
Else 'Delete From Registry
regKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True)
regKey.DeleteValue(Application.ProductName, False)
regKey.Close()
End If
Catch ex As Exception
End Try
End Sub
Call Recuperer_Startup_With_Windows_From_Table_Settings()
Call Run_Programme_At_Startup_Windows()
Call Recuperer_Startup_With_Windows_From_Table_Settings()
(29-08-20, 11:33 PM)عبد العزيز البسكري كتب : [ -> ]السّلام عليكم و رحمة الله و بركاتهإضافة لما طرحه أخي الكريم أنس محمود .. بارك الله فيه و لهمن باب الإضافة ..بالفورم الخاص بالإعدادات العامّة يتم وضع تشك بوكس و يقابله بالجدول حقل كمثال تحت اسم StartupWithWindows من نوع Booleanبالفورم الإفتتاحي لمشروعك .. أوّل فورم يتم إظهاره .. كمثال Form1 .. يتم وضع CheckBox1 غير مؤشّربأي مكان بالفورم 1 .. نضع هذا الكود .. لنجلب قيمة الحقل بقاعدة البيانات لل CheckBox1 .. نعم أم لاكود :
Public Function Recuperer_Startup_With_Windows_From_Table_Settings() As String
Using Cmd As New OleDbCommand("SELECT * From TBL_SETTINGS", Conne_2020)
If Conne_2020.State = ConnectionState.Closed Then Conne_2020.Open()
Using Dreader = Cmd.ExecuteReader()
If Dreader.HasRows Then
Do While Dreader.Read
Me.CheckBox1.Checked = Convert.ToBoolean(Dreader("StartupWithWindows"))
Loop
End If
End Using
End Using
If Conne_2020.State = ConnectionState.Open Then Conne_2020.Close()
Dim Myreturnvalue As String = Nothing
Return Myreturnvalue
End Function
نضيف هذا الكود بأي مكان بالفورم 1 ..كود :
Private Sub Run_Programme_At_Startup_Windows()
Try
Dim regKey As Microsoft.Win32.RegistryKey
If CheckBox1.Checked = True Then 'Add In Registry
regKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True)
regKey.SetValue(Application.ProductName, Application.ExecutablePath)
regKey.Close()
Else 'Delete From Registry
regKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True)
regKey.DeleteValue(Application.ProductName, False)
regKey.Close()
End If
Catch ex As Exception
End Try
End Sub
أخيرا بالفورم لود بالفورم 1 دائما .. يتم إستدعاء ما سبق ذكره بالترتيبجلب قيمة التشك بوكس من قاعدة البيانات .. ثم التعامل حسب تلك القيمة مع الريجيستريكود :
Call Recuperer_Startup_With_Windows_From_Table_Settings()
Call Run_Programme_At_Startup_Windows()
و أخيرا .. لا تنس تغيير قيمة التشك بوكس 1 .. كلما قمت بتغيير الإعداداتبالمعنى بعد كود الحفظ أو كود التعديل أو حتى الحذف يتم إستدعاء هذا السطركود :
Call Recuperer_Startup_With_Windows_From_Table_Settings()
تحياتي