मैं यह जानने की कोशिश कर रहा हूं कि कितने दिन पहले स्टोर से खरीदा गया एचपी या डेल विंडोज 10 पीसी का पहली बार उपयोग किया गया था, सी #/विंडोज़ फॉर्म का उपयोग कर। इससे मेरा तात्पर्य यह है कि वह तारीख है जब कंप्यूटर प्रारंभिक सेटअप से गुजरा, जैसे कि उपयोगकर्ता नाम और पासवर्ड बनाना, आदि।

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate से इंस्टाल डेट प्राप्त करने से काम नहीं चलेगा, क्योंकि फीचर्स अपडेट उस तारीख को बदल देते हैं।

मेरी आशा है कि एक फ़ोल्डर या फ़ाइल है जो तब बनाई जाती है जब पीसी पहली बार सेटअप/उपयोग किया जाता है, और फीचर अपडेट जैसे क्रिएटर अपडेट, एनिवर्सरी अपडेट आदि के साथ भी नहीं बदला जाता है।

क्या कोई ऐसे फ़ोल्डर या फ़ाइल के बारे में जानता है, या सी # के माध्यम से इस तरह की कुछ जानकारी प्राप्त करने का कोई अन्य तरीका है?

संपादित करें: मेरे द्वारा उपयोग की जा रही वर्चुअल मशीन पर क्रिएटर अपडेट के साथ ये सुझाए गए फ़ोल्डर/फ़ाइल निर्माण दिनांक खो गए हैं या पुराने हैं तो इंस्टॉल करें। C:\Windows\system.ini C:\Windows\win.ini C:\Users\User C:\bootmgr C:\bootnxt C:\$Recycle.Bin

संपादित करें: यह सुझाए गए डुप्लिकेट का डुप्लिकेट नहीं है, क्योंकि मुझे मूल स्थापना तिथि जानने की आवश्यकता है, भले ही क्रिएटर के अपडेट जैसा कोई फीचर अपडेट हुआ हो। एक समान पोस्ट थी, हालांकि किसी भी उत्तर ने मेरे लिए काम नहीं किया।

1
Makanar 30 सितंबर 2017, 00:35

2 जवाब

सबसे बढ़िया उत्तर

अपडेट करें मैंने सभी विशेष फ़ोल्डरों के माध्यम से लूप के उत्तर को संशोधित किया, क्योंकि मुझे कुछ ऐसे मिले जो सबसे पुराने उपयोगकर्ता फ़ोल्डर से पुराने थे

यह बिल्कुल भी गारंटी नहीं है, उम्मीद है कि कोई मुझे बता सकता है कि क्या यह गलत है और मैं इसे हटा दूंगा, लेकिन एक विचार SpecialFolder ऑब्जेक्ट्स की सबसे पुरानी निर्माण तिथि प्राप्त करना है:

static void Main()
{
    // This will hold the oldest date, so start it at MaxValue
    var oldestDate = DateTime.MaxValue;

    // Loop through each defined special folder
    foreach (Environment.SpecialFolder specialFolder in 
        Enum.GetValues(typeof(Environment.SpecialFolder)))
    {
        // Get the path to this folder
        var folderPath = Environment.GetFolderPath(specialFolder);

        // Some special folders may not exist, so verify the path first
        if (Directory.Exists(folderPath))
        {
            // If the created date of this folder is older, update our variable
            var createDate = Directory.GetCreationTime(folderPath);
            if (createDate < oldestDate) oldestDate = createDate;
        }
    }

    Console.WriteLine($"The oldest speical folder was created on: {oldestDate}");

    Console.Write("\nDone!\nPress any key to exit...");
    Console.ReadKey();
}

अपडेट 2

विंडोज़ रूट निर्देशिका का निर्माण प्राप्त करना भी सबसे पुराना समय देता है (कम से कम मेरे लिए)। शायद यह आसान है?

var createDate = Directory.GetCreationTime(Path.GetPathRoot(
    Environment.GetFolderPath(Environment.SpecialFolder.Windows)));
1
Rufus L 30 सितंबर 2017, 03:21
systeminfo|find /i "original" 

enter image description here

आप इस कोड का उपयोग सी # में कर सकते हैं

Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/C systeminfo.exe|find /i \"original\" ";
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();

या आप उपयोगकर्ता निर्देशिका की निर्माण तिथि की जांच करने के लिए और अधिक सरल तरीके से कर सकते हैं

var date = Directory.GetCreationTime(@"C:\users");

आप एक ऐप बना सकते हैं और इस कमांड से परिणाम पढ़ सकते हैं :)

3
Thiago Loureiro 30 सितंबर 2017, 02:37