3

標準的な初心者向けチュートリアルから小さな WindowsForm アプリを作成しました。ボタンやテキスト ボックスなどのコントロールを使用して 2 つの数値を加算し、結果をテキスト ボックスに表示する種類。

とにかく、ユーザーが.exeをクリックすると、プログラム/ウィンドウを起動する前に、組み込みの有効期限をチェックするようにしたいと思います。つまり、有効期限が今日の 10 月 30 日だった場合、何も起こらず、ウィンドウ フォームも表示されません。ただし、有効期限が 10 月 31 日である場合、すべてが正常に進行し、ウィンドウとフォームが表示されます。しかし、明日の 10 月 31 日 (有効期限) と明後日にユーザーが私の .exe を実行しても、何も起こりません。

私のコードは次のようになると思います:

DateTime expiration = new DateTime(2013, 10, 31) //Oct. 31, 2013
If (DateTime.Today < expiration) //proceed normally
else // do nothing, nothing happens for the user

チュートリアルから、私の理解のほとんどは、コードのパブリック Form1 : Form 部分内に記述されたコードに限定されています。

namespace WindowsFormsApplication4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }
}

フォームが読み込まれないように、今日の日付を有効期限と照合するコードをどこに挿入すればよいですか?

4

3 に答える 3

3

Program.csソリューション エクスプローラーで確認してください。このコードを関数内に追加し、指定した条件が満たされない場合にMain呼び出してアプリケーションを終了することができます。Application.Exit()

于 2013-10-30T16:00:07.370 に答える
2

ユーザーはいつでも自由に変更できるため、これに「現地時間」を使用することはお勧めしません。

おそらく、「タイムサーバー」から現在の時刻を取得する必要があります

private static readonly DateTime expiration = new DateTime(2013, 10, 31);
static void Main()
{
    DateTime currentTime = GetTimeFromSomeTimeServer();//Implement yourself
    if (currentTime.Date >= expiration.Date)
    {
        return;//Dont run the app
    }
    //Rest of your code...
}
于 2013-10-30T16:04:54.390 に答える
1

おそらくProgram.csファイルにこれが必要です。これは簡単な例です

static class Program
{
    static DateTime expiration = new DateTime(2013, 10, 31);

    /// <summary>
    /// The main entry point for the application
    /// </summary>
    [STAThread]
    static void Main()
    {
        if (DateTime.Today < expiration.Date) 
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
        else
        {
            Application.Exit();
        }
    }
}

ただし、これは有効期限のあるアプリケーション (試用版ソフトウェアなど) を強制するための推奨される方法ではないことに注意してください。一般的には、ある種の堅牢なライセンス システムを使用することをお勧めします。日付を exe ファイルにハードコーディングすることは、完全な証拠ではなく、簡単に悪用できるわけではありません。

于 2013-10-30T16:01:31.597 に答える