|
|
1.1 root 1: using System;
2: using System.Collections.Generic;
3: using System.IO;
4:
5: namespace CleanFlashCommon {
6: public class SystemInfo {
7:
8: private static string system32Path = Environment.GetFolderPath(Environment.SpecialFolder.SystemX86);
9: private static string system64Path = Environment.GetFolderPath(Environment.SpecialFolder.System);
10: private static string program32Path = Environment.GetEnvironmentVariable("PROGRAMFILES(X86)") ?? Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
11: private static string flashProgram32Path = Path.Combine(program32Path, "Flash Player");
12: private static string macromed32Path = Path.Combine(system32Path, "Macromed");
13: private static string macromed64Path = Path.Combine(system64Path, "Macromed");
14: private static string flash32Path = Path.Combine(macromed32Path, "Flash");
15: private static string flash64Path = Path.Combine(macromed64Path, "Flash");
16: private static string version = UpdateChecker.GetFlashVersion();
17: private static string versionPath = version.Replace(".", "_");
18: private static string versionComma = version.Replace(".", ",");
19: private static Dictionary<string, string> replacementStrings = new Dictionary<string, string>() {
20: { "${SYSTEM_32_PATH}", system32Path.Replace(@"\", @"\\") },
21: { "${SYSTEM_64_PATH}", system64Path.Replace(@"\", @"\\") },
22: { "${PROGRAM_32_PATH}", program32Path.Replace(@"\", @"\\") },
23: { "${PROGRAM_FLASH_32_PATH}", flashProgram32Path.Replace(@"\", @"\\") },
24: { "${FLASH_32_PATH}", flash32Path.Replace(@"\", @"\\") },
25: { "${FLASH_64_PATH}", flash64Path.Replace(@"\", @"\\") },
26: { "${VERSION}", version },
27: { "${VERSION_PATH}", versionPath },
28: { "${VERSION_COMMA}", versionComma },
29: { "${ARCH}", Environment.Is64BitOperatingSystem ? "64" : "32" }
30: };
31:
32: public static string GetSystem32Path() {
33: return system32Path;
34: }
35:
36: public static string GetSystem64Path() {
37: return system64Path;
38: }
39:
40: public static string GetProgram32Path()
41: {
42: return program32Path;
43: }
44:
45: public static string GetProgramFlash32Path()
46: {
47: return flashProgram32Path;
48: }
49:
50: public static string[] GetSystemPaths() {
51: if (Environment.Is64BitOperatingSystem) {
52: return new string[] { system32Path, system64Path };
53: } else {
54: return new string[] { system32Path };
55: }
56: }
57:
58: public static string GetMacromed32Path() {
59: return macromed32Path;
60: }
61:
62: public static string GetMacromed64Path() {
63: return macromed64Path;
64: }
65:
66: public static string[] GetMacromedPaths() {
67: if (Environment.Is64BitOperatingSystem) {
68: return new string[] { macromed32Path, macromed64Path };
69: } else {
70: return new string[] { macromed32Path };
71: }
72: }
73:
74: public static string GetFlash32Path() {
75: return flash32Path;
76: }
77:
78: public static string GetFlash64Path() {
79: return flash64Path;
80: }
81:
82: public static string GetVersionPath() {
83: return versionPath;
84: }
85:
86: public static bool IsLegacyWindows() {
87: System.Version version = Environment.OSVersion.Version;
88:
89: return version.Major <= 6 && (version.Major != 6 || version.Minor < 2);
90: }
91:
92: public static Dictionary<string, string> GetReplacementStrings() {
93: return replacementStrings;
94: }
95:
96: public static string FillString(string str) {
97: // Some registry values require special strings to be filled out.
98: foreach (KeyValuePair<string, string> pair in replacementStrings) {
99: str = str.Replace(pair.Key, pair.Value);
100: }
101:
102: return str;
103: }
104: }
105: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.