public void LoadRecentProcessList() { try { var fileName = Path.Combine(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), ConstantsEnums.IGCSSettingsFolder), ConstantsEnums.RecentlyUsedFilename); if (!File.Exists(fileName)) { return; } // format: // processname1|dllname1|Ticks // processname2|dllname1|Ticks // processname3|dllname2|Ticks // ... // example: // mygame.exe|..\..\mygamecameratools.dll|2384763243 // mygame2.exe|unlocker.dll|23462112323 var allLines = File.ReadAllLines(fileName); foreach (var line in allLines) { var parts = line.Split('|'); if (parts.Length != 3) { continue; } _recentProcessesWithDllsUsed[parts[0]] = new DllCacheData(parts[1], new DateTime(Convert.ToInt64(parts[2]))); } } catch { // ignore, as we can't do much about it anyway... } }
public void AddDllNameForProcess(string processName, string dllName) { _recentProcessesWithDllsUsed[processName] = new DllCacheData(dllName, DateTime.Now); }