سؤال

كيف يمكنني الحصول على عدد مرات برنامج تشغيل سابقا في C# بدون حفظ ملف وعد.إذا كان من غير الممكن بهذه الطريقة ، يمكن أن تكون حصلت من المقرر مدير المهمة ؟

إلى C.روس:كيف يتم ذلك في سجل الإعداد ؟ أن يغفر لي...ما هو السجل الإعداد ؟

هل كانت مفيدة؟

المحلول

لوعلمي ويندوز لا تبقي هذه المعلومات بالنسبة لك. سيكون لديك لحصر قيمة في مكان ما (الملفات وقواعد البيانات، إعداد التسجيل). جدولة المهام ويندوز هو وظائف منخفضة للغاية.

نصائح أخرى

وأفعل هذا في إعداد تسجيل.

static string AppRegyPath = "Software\\Cheeso\\ApplicationName";
static string rvn_Runs = "Runs";

private Microsoft.Win32.RegistryKey _appCuKey;
public Microsoft.Win32.RegistryKey AppCuKey
{
    get
    {
        if (_appCuKey == null)
        {
            _appCuKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(AppRegyPath, true);
            if (_appCuKey == null)
                _appCuKey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(AppRegyPath);
        }
        return _appCuKey;
    }
    set { _appCuKey = null; }
}

public int UpdateRunCount()
{
    int x = (Int32)AppCuKey.GetValue(rvn_Runs, 0);
    x++;
    AppCuKey.SetValue(rvn_Runs, x);
    return x;
}

إذا انها التطبيق WinForms عناصر، يمكنك ربط الحدث OnClosing للنموذج لتشغيل UpdateCount.

عدد من وقت التطبيق وتشغيل المخزنة في التسجيل.وهناك زوجين من المحاذير ، على الرغم من:

  1. يتم تخزينها في المستخدم التسجيل (HKCU على سبيل المثال) [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist]
  2. يتم تخزين المسار في ROT13 هكذا على سبيل المثال runme.exe سوف تصبح ehazr.rkr
  3. التسجيل في الحقيقة مخازن ثلاثة القيم في شكل ثنائي:آخر وقت التشغيل ، تشغيل عدد (الذي يبدأ في 6 بدلا من 1 ، لسبب ما) اسم التطبيق.

لا أعرف إذا كان هذا يساعد ، ولكن هناك لديك!

هنا هو البرنامج التعليمي على التعامل مع التسجيل -- C# التسجيل أساسيات

لا، مدير المهمة لا توفر هذا النوع من المعلومات. وأود أن لا يكون من الصعب خلق السيناريو الذي سوف تقوم بتحديث حصيلة ومن ثم تنفيذ التطبيق ثم قم بإعداد مهمة لاستدعاء النصي.

@Cheeso,

لا تحتاج خاصة الأعضاء متغير مع هذا الكود طريقة واحدة ضئيلة عليه قليلا:

using Microsoft.Win32;
public RegistryKey AppCuKey
{
    get
    {
        return Registry.CurrentUser.OpenSubKey(AppRegyPath, true)
            ?? Registry.CurrentUser.CreateSubKey(AppRegyPath);
    }
}

أو إذا كنت ترغب في تحديث خاص متغير, من أجل الحفاظ على من استدعاء الأسلوب (التي هي رخيصة جدا طريقة, على أي حال), لا يزال يمكنك حفظ نفسك إذا كان == null التحقق.

int x = Your_Project.Properties.Settings.Default.Counter;
x++;
Your_Project.Properties.Settings.Default.Counter = x;
Your_Project.Properties.Settings.Default.Save();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top