Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Làm sao để khi chạy trực tiếp app này thì không chạy mà phải lấy app khác gọi nó mới chạy??

  1. #1
    Ngày gia nhập
    06 2012
    Bài viết
    43

    Mặc định Làm sao để khi chạy trực tiếp app này thì không chạy mà phải lấy app khác gọi nó mới chạy??

    Như tiêu đề: chắc câu hỏi khá ngu ngơ, có ai biết ko nhỉ?

    cụ thể là khi click chuột vô app1 thì ko chạy nhưng phải dùng app2 gọi app 1 chạy
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  2. #2
    Ngày gia nhập
    07 2011
    Nơi ở
    Moscow-Russia
    Bài viết
    140

    * Với App1 bạn dùng một Timer với Interval nhỏ thôi (để là 10 chẳng hạn), trong sự kiện Tick() của nó bạn kiểm tra handle của App2 (thông qua Title cửa sổ App2), nếu handle này bằng 0 thì Unload app1.

    * Với App2 thì bạn chỉ cần dùng System.Diagnostics.Process.Start("Đường dẫn tới App1") để gọi App1.

    Chú ý thêm: Bạn nên làm App1 chạy Single application, tránh khi App2 đã chạy rồi thì double click App1 thì nó lại chạy.
    A good beginning and a good ending !

  3. #3
    Ngày gia nhập
    06 2012
    Bài viết
    43

    Trích dẫn Nguyên bản được gửi bởi Moscow Xem bài viết
    * Với App1 bạn dùng một Timer với Interval nhỏ thôi (để là 10 chẳng hạn), trong sự kiện Tick() của nó bạn kiểm tra handle của App2 (thông qua Title cửa sổ App2), nếu handle này bằng 0 thì Unload app1.
    Bạn có thể nói rõ hơn chỗ này không nhỉ?
    timer() đặt chỗ nào! form chạy dầu tiên của app1 àh? và kiểm tra handle
    gà quá

  4. #4
    Ngày gia nhập
    07 2011
    Nơi ở
    Moscow-Russia
    Bài viết
    140

    Dĩ nhiên Timer phải đặt trong Form đầu tiên chứ. Mình đặt Timer này có tên là tmrUnload và code toàn bộ của Form đầu tiên của App1 như sau:
    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.Linq;
    7. using System.Text;
    8. using System.Windows.Forms;
    9. using System.Runtime.InteropServices;  // Để dùng các hàm API
    10.  
    11. namespace WindowsFormsApplication1
    12. {
    13.     public partial class Form1 : Form
    14.     {
    15.         // Khai báo hàm API FindWindow()
    16.         [DllImport("user32.dll")]
    17.         public static extern IntPtr FindWindow(String sClassName, String sAppName);
    18.  
    19.         public Form1()
    20.         {
    21.             InitializeComponent();
    22.         }
    23.  
    24.         private void tmUnload_Tick(object sender, EventArgs e)
    25.         {
    26.             if ((int)FindWindow("WindowsForms10.Window.8.app.0.2e65425", "Title của App2") == 0)
    27.                 this.Close();
    28.         }
    29.     }
    30. }

    Còn App2 bạn làm như sau:
    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.Linq;
    7. using System.Text;
    8. using System.Windows.Forms;
    9. using System.Diagnostics;              // Để call App1.exe
    10.  
    11. namespace WindowsFormsApplication1
    12. {
    13.     public partial class Form1 : Form
    14.     {
    15.         public Form1()
    16.         {
    17.             InitializeComponent();
    18.         }
    19.  
    20.         private void Form1_Load(object sender, EventArgs e)
    21.         {
    22.             System.Diagnostics.Process.Start("Đường dẫn tới App1");
    23.         }
    24.     }
    25. }

    Còn việc tạo Single application thì bạn làm như trong bài hướng dẫn này Tạo 1 chương trình dạng Single-instance trong lập trình C#.

    Bạn chú ý thay cho phù hợp tham số của hàm FindWindow() và của System.Diagnostics.Process.Start().
    A good beginning and a good ending !

  5. #5
    Ngày gia nhập
    06 2012
    Bài viết
    43

    cảm ơn bạn rất nhiều!
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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

  1. MS SQL Lỗi SQL Server 2005 express chạy chậm khi chạy report?
    Gửi bởi dongtrien trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 1
    Bài viết cuối: 26-03-2013, 09:12 PM
  2. Hàm trong C XEm rùm mềnh với sao ko chạy luôn mà phải gõ vài kí tự mới chạy nhỉ ? giúp mình với
    Gửi bởi mrkhiet trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 27-07-2012, 12:37 AM
  3. Chạy tiếp chương trình trên console có điều kiện chạy? Xin giúp đỡ
    Gửi bởi Newmember199 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 20-11-2011, 12:01 AM
  4. Release QT Trong QT creator chạy được, chạy trực tiếp không được
    Gửi bởi AdminPro 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: 13-05-2009, 10:24 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