Trang 1 trên 2

Làm chương trình khởi động cùng Window

Đã gửi: T.Tư 02/07/2008 1:46 am
gửi bởi clarkkent
Thủ thuật: Làm chương trình khởi động cùng Window
Tác giả: Nguyễn Trung Tín
Mô tả: Làm chương trình khởi động cùng Window (Start with Window)


Tạo 1 CheckBox tên chkStartUp
Và đây là code

Mã: Chọn hết

  1. Imports Microsoft.Win32
  2.  
  3. Public Class Form1
  4.     Dim rk As RegistryKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", True) 'Khóa dành cho khởi động cùng Windows
  5.     Dim path As String = Process.GetCurrentProcess.MainModule.FileName 'Tên (name) của ứng dụng đang chạy
  6.  
  7.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  8.         If rk.GetValue("My App") <> path Then 'My App là tên khóa trong Registry, kiểm tra nếu không tồn tại hoặc tồn tại nhưng sai đường dẫn thì
  9.             chkStartUp.Checked = False 'Không check
  10.         Else
  11.             chkStartUp.Checked = True 'Check
  12.         End If
  13.     End Sub
  14.  
  15.     Private Sub chkStartUp_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkStartUp.CheckedChanged
  16.         If chkStartUp.Checked = True Then
  17.             rk.SetValue("My App", path) 'Ghi vào Registry
  18.         Else
  19.             rk.DeleteValue("My App", False) 'Xóa khóa trong Registry
  20.         End If
  21.     End Sub
  22. End Class

Re: Làm chương trình khởi động cùng Window

Đã gửi: T.Tư 06/08/2008 12:06 pm
gửi bởi tct80
bạn hướng dẫn cụ thể hơn đi. hoặc port một project lên cho anh em tham khảo nhé. thanks

Re: Làm chương trình khởi động cùng Window

Đã gửi: T.Ba 12/08/2008 3:48 pm
gửi bởi clarkkent
tct80 đã viết:bạn hướng dẫn cụ thể hơn đi. hoặc port một project lên cho anh em tham khảo nhé. thanks

Re: Làm chương trình khởi động cùng Window

Đã gửi: T.Năm 14/08/2008 7:37 am
gửi bởi FVS
Cáu qué, cái vb .net truy xuất registy ngon ghê, chẳng bù cho vb6, mệt người :((

Re: Làm chương trình khởi động cùng Window

Đã gửi: T.Ba 16/09/2008 6:55 pm
gửi bởi luungoc2005
thì giờ chế cái class giống class registry của .net đi rồi mỗi lần có project mới add vô :))

Re: Làm chương trình khởi động cùng Window

Đã gửi: T.Sáu 19/09/2008 2:17 pm
gửi bởi clarkkent
luungoc2005 đã viết:thì giờ chế cái class giống class registry của .net đi rồi mỗi lần có project mới add vô :))

Ai có hảo tâm tạo sẵn 1 class về xử lý Registry mình rất cảm kích... [-O< :)

Re: Làm chương trình khởi động cùng Window

Đã gửi: T.Sáu 19/09/2008 3:12 pm
gửi bởi anhtuyenbk
Trong net có sẵn class registry rồi đó, cứ việc mà phang.

Re: Làm chương trình khởi động cùng Window

Đã gửi: T.Sáu 19/09/2008 3:30 pm
gửi bởi clarkkent
anhtuyenbk đã viết:Trong net có sẵn class registry rồi đó, cứ việc mà phang.

ý em là tạo 1 class sẳn để khi nào dùng thì add vô project rồi truyền tham số vào cho nó xử lý, chứ mỗi cái phải viết lại mệt lắm (:|

Re: Làm chương trình khởi động cùng Window

Đã gửi: T.Sáu 19/09/2008 3:57 pm
gửi bởi anhtuyenbk
Code trên kia có mấy dòng đâu chứ :P :P
Trừ phi viết thêm mấy hàm kiểm tra xem key đó có chưa, kay mới có trùng với key cũ ko.......

Re: Làm chương trình khởi động cùng Window

Đã gửi: CN 19/10/2008 9:28 am
gửi bởi tuoi tho
"bạn hướng dẫn cụ thể hơn đi. hoặc port một project lên cho anh em tham khảo nhé. thanks"
đúng rùi đấy!!!

Re: Làm chương trình khởi động cùng Window

Đã gửi: CN 02/11/2008 12:20 pm
gửi bởi tct
ai viết dùm em một cái demo trong c# với!

cảm ơn trước! :)

Re: Làm chương trình khởi động cùng Window

Đã gửi: T.Ba 14/07/2009 10:13 pm
gửi bởi clarkkent
tct đã viết:ai viết dùm em một cái demo trong c# với!

cảm ơn trước! :)

C# [-O<

Mã: Chọn hết

  1. using Microsoft.Win32;
  2.  
  3.         RegistryKey rk = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
  4.  
  5.  
  6.  
  7.         private void chkStartUp _CheckedChanged(object sender, EventArgs e)
  8.         {
  9.             if (chkStartUp.Checked == true)
  10.             {
  11.                
  12.                 rk.SetValue("My App", Application.ExecutablePath.ToString());
  13.             }
  14.             else
  15.             {
  16.                
  17.                 rk.DeleteValue("My App", false);
  18.             }
  19.         }
  20.  
  21.         private void Form1_Shown(object sender, EventArgs e)
  22.         {
  23.             if (rk.GetValue("My App") == null)
  24.             {
  25.                 chkStartUp.Checked = false;
  26.             }
  27.             else
  28.             {
  29.                 chkStartUp.Checked = true;
  30.             }
  31.         }
  32.  

Re: Làm chương trình khởi động cùng Window

Đã gửi: T.Tư 15/07/2009 9:55 am
gửi bởi ShareToShare
sao mình test thử mà nó báo lỗi thế @clarkkent

Re: Làm chương trình khởi động cùng Window

Đã gửi: T.Tư 15/07/2009 9:58 am
gửi bởi ShareToShare
biết lỗi luôn rồi sai chữ CurrentVersion

Re: Làm chương trình khởi động cùng Window

Đã gửi: T.Tư 15/07/2009 10:10 am
gửi bởi clarkkent
ShareToShare đã viết:biết lỗi luôn rồi sai chữ CurrentVersion

:D làm tưởng mình sai chứ [-O<

Re: Làm chương trình khởi động cùng Window

Đã gửi: T.Tư 15/07/2009 2:48 pm
gửi bởi ShareToShare
@clarkkent kiểm tra lại chổ này cho mình cái

Mã: Chọn hết

  1. RegistryKey rk = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", true);// khoa danh cho khoi dong cung windows
  2.         string path = Process.GetCurrentProcess().MainModule.FileName;//ten cua ung dung dang chay
  3.         private void frmOption_Load(object sender, EventArgs e)
  4.         {
  5.             if (rk.GetValue("TVSCM") == "")
  6.                 checkBox1.Checked = false;
  7.             else
  8.                 checkBox1.Checked = true;
  9.         }

không hiểu sao cứ show form đó lên là nó luôn trong tình trạng check (mặc dù tôi chưa check nó), chứ nó không kiểm tra trong Registry có khóa đó thì check còn không thì không check.
Note : trong property : Checked =false; CheckState=Uncheck;

Re: Làm chương trình khởi động cùng Window

Đã gửi: T.Tư 15/07/2009 3:11 pm
gửi bởi ShareToShare
để tui tự fix luôn : sữa chổ này if (Convert.Tostring(rk.GetValue("TVSCM")) == "")
đã test ok

Re: Làm chương trình khởi động cùng Window

Đã gửi: T.Ba 03/11/2009 2:09 pm
gửi bởi thuongall
Thấy chủ đề này và nhớ đã đọc ở đây viewtopic.php?f=39&t=9764&p=61895#p61894 nên mới xem code này.
Code trên chưa chuẩn, cần thay:

Mã: Chọn hết

  1. If rk.GetValue("My App") = "" Then

bằng:

Mã: Chọn hết

  1. If rk.GetValue("My App") <> path Then

:D

Re: Làm chương trình khởi động cùng Window

Đã gửi: T.Ba 03/11/2009 2:15 pm
gửi bởi Superman
thuongall đã viết:Code trên chưa chuẩn, cần thay:

Mã: Chọn hết

  1. If rk.GetValue("My App") = "" Then

bằng:

Mã: Chọn hết

  1. If rk.GetValue("My App") <> path Then

:D

thiếu, em sữa lâu rồi :|

Mã: Chọn hết

  1.        If rk.GetValue("tBingWallpaper") = "" Then 'Nếu chưa có :|
  2.             cAutoStart.Checked = False 'Không check
  3.         Else
  4.             If rk.GetValue("tBingWallpaper").ToString.Trim <> path Then 'Có rồi mà khác path thì set lại =))
  5.                 rk.SetValue("tBingWallpaper", path)
  6.             End If
  7.             cAutoStart.Checked = True 'Check
  8.         End If

Re: Làm chương trình khởi động cùng Window

Đã gửi: T.Hai 16/11/2009 1:10 pm
gửi bởi tai_computer
@=clarkkent
Làm như vậy mở Msconfig ra xem thì thấy ngay ấy mà :D
Làm sao cho nó khởi động mà không có trong Msconfig :-/
Như chương trình chặn Web xấu của Vũ Lương Bằng ấy sợ người ta tắt trong Msconfig nên nó khóa phím F8 khi khởi động ấy sợ vào SafeMode Pótay ông Vũ Lương Bằng
Các anh em trong diễn đàng có ai làm được không nhỉ khởi động cùng Win mà không có trong Msconfig :-/