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

Đề tài: Chỉ cho người dùng mở chương trình C# 1 lần?

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

    Mặc định Chỉ cho người dùng mở chương trình C# 1 lần?

    Một câu hỏi , vb.net làm được:
    Bạn chọn project design -> tích "make single instance application". (VB2k5)
    c# không biết làm
    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
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    If Proccess Found -> Error Message " Chương trình đang chạy " !

    Kiểm tra process cũng là một cách
    None!

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

    Nếu chỉ có thế thì em biết làm từ lâu rùi.
    Em muốn dùng cái tuỳ chọn đó trong c# cơ
    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
    10 2007
    Bài viết
    3

    Trích trong cuốn "Các giải pháp lập trình C#"

    Bạn cần bảo đảm rằng, tại một thời điểm chỉ có thể chạy một thể hiện của ứng dụng.

    Tạo một đối tượng System.Threading.Mutex và bảo ứng dụng thu lấy quyền sở hữu đối tượng này lúc khởi động.
    Mutex cung cấp một cơ chế để đồng bộ hóa quá trình thực thi của các tiểu trình vượt qua biên tiến trình và còn cung cấp một cơ chế tiện lợi để bảo rằng chỉ một thể hiện của ứng dụng đang chạy. Bằng cách cố thu lấy quyền sở hữu một đối tượng Mutex lúc khởi động và thoát nếu không thể thu được Mutex, bạn có thể bảo đảm rằng chỉ một thể hiện của ứng dụng đang chạy.

    Ví dụ dưới đây sử dụng một Mutex có tên là MutexExample để bảo đảm chỉ một thể hiện của ví dụ có thể thực thi.

    Visual C# Code:
    1. using System;
    2. using System.Threading;
    3.  
    4. class Program
    5.     {
    6.         [STAThread]
    7.         static void Main()
    8.         {
    9.             // Giá trị luận lý cho biết ứng dụng này
    10.             // có quyền sở hữu Mutex hay không.
    11.             bool ownmutex;
    12.  
    13.             // Tạo và lấy quyền sở hữu một Mutex có tên là Icon;
    14.             using (Mutex mutex = new Mutex(true, "Icon", out ownmutex))
    15.             {
    16.  
    17. // Nếu ứng dụng sở hữu Mutex, nó có thể tiếp tục thực thi;
    18.                 // nếu không, ứng dụng sẽ thoát.
    19.                 if (ownmutex)
    20.                 {
    21.                     Application.Run(new Form1());
    22.                     //giai phong Mutex;
    23.                     mutex.ReleaseMutex();
    24.                 }
    25.                 else
    26.                     Application.Exit();
    27.             }
    28.         }
    29. }
    Đã được chỉnh sửa lần cuối bởi Jaychen : 28-11-2007 lúc 05:03 PM.

  5. #5
    Ngày gia nhập
    11 2007
    Bài viết
    40

    Làm chi cho cực vậy. Dùng hàm sau xác định xem ứng dụng (process của mình áh) đã được chạy chưa. Nếu chạy rồi thì trả ra true.
    Sau đó rồi dùng nó như thế nào thì tùy (đóng, nhắc nhở, hay mở típ ...) đều được.

    Visual C# Code:
    1. bool PrevInstance()
    2. {
    3.     if (System.Diagnostics.Process.GetProcessesByName(System.Diagnostics.Process.GetCurrentProcess().ProcessName).GetUpperBound(0) > 0)
    4.         return true;
    5.     else
    6.         return false;
    7. }

  6. #6
    Ngày gia nhập
    07 2006
    Nơi ở
    Hà nội
    Bài viết
    204

    Mặc định Chỉ cho người dùng mở chương trình C# 1 lần?

    Lỡ có 1 process trùng tên với mình thì sao !!!
    Life:\> dir

  7. #7
    Ngày gia nhập
    10 2007
    Bài viết
    27

    Làm chi cho cực vậy.
    Dùng Mutex là cách chuẩn nhất rồi cậu àh. Tôi đọc các tài liệu # cũng đều đề nghị dùng Mutex. Dĩ nhiên có những cách # nhưng đều bị bug ở ý tưởng.

  8. #8
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Mutex - Semaphore - <cái thứ 3 quên mất rồi>
    3 cái này chuyên xử lý về process rất tốt
    Bác nào nghiên cứu về OS sẽ biết rõ cái này.
    None!

  9. #9
    Ngày gia nhập
    11 2007
    Bài viết
    40

    Trích dẫn Nguyên bản được gửi bởi Xcross87 Xem bài viết
    Mutex - Semaphore - <cái thứ 3 quên mất rồi>
    3 cái này chuyên xử lý về process rất tốt
    Bác nào nghiên cứu về OS sẽ biết rõ cái này.
    Đúng rồi. Vì học lâu wá rồi nên tôi cũng không nhớ. Nhưng chẳng qua có tôi làm cách vừa nói của tôi thì khỏi quan tâm Mutex. Nói chung là tận dụng những Method mà .NET cung cấp và dùng 1 cách linh hoạt thôi.

    Trích dẫn Nguyên bản được gửi bởi hoanglinh9466 Xem bài viết
    Lỡ có 1 process trùng tên với mình thì sao?
    Việc mình lập trình thì mình phải biết chứ. Cái process name như thế nào là do mình đặt thôi.

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

  1. Upload file dùng Ajax mà ko dùng Method Post của Form như thế nào?
    Gửi bởi hieupxd2cntt trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 8
    Bài viết cuối: 14-09-2014, 10:23 PM
  2. Lập trình C++ trong visual studio có cách nào để dùng winform mà vẫn dùng cách viết trên c++ được ?
    Gửi bởi homgiaouoc trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 08-10-2013, 12:50 PM
  3. Bài toán quản lí nhân viên dùng dùng danh sách liên kết trong C++. Mong mọi người góp ý!
    Gửi bởi rataki trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 1
    Bài viết cuối: 22-11-2012, 11:26 PM
  4. Bài tập C++ Dùng strtok cắt chuỗi và lỗi khi dùng atof() chuyển char sang float
    Gửi bởi salomontong trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 10-03-2012, 05:18 PM
  5. Tại sao dùng const trong trường hợp dùng biến tham chiếu
    Gửi bởi dinhdoong trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 13
    Bài viết cuối: 04-02-2012, 10:45 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