Example #1
0
        public void WriteProgIDTest()
        {
            const string sProgId = "My.Crazy.1";
            const string testStr = "Testing123";

            ProgId.Unregister(sProgId);

            using (var progid = ProgId.Register(sProgId, "Testing Vanara ProgId"))
                using (var reg = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(sProgId))
                {
                    Assert.That(reg, Is.Not.Null);
                    Assert.That(reg.GetValue(null).ToString(), Is.EqualTo(progid.FriendlyName));
                    Assert.That(progid.ID, Is.EqualTo(sProgId));
                    Assert.That(progid.ReadOnly, Is.False);

                    progid.AllowSilentDefaultTakeOver = true;
                    Assert.That(progid.AllowSilentDefaultTakeOver, Is.True);
                    progid.AllowSilentDefaultTakeOver = false;
                    Assert.That(progid.AllowSilentDefaultTakeOver, Is.False);

                    progid.AppUserModelID = testStr;
                    Assert.That(progid.AppUserModelID, Is.EqualTo(testStr));
                    progid.AppUserModelID = null;
                    Assert.That(progid.AppUserModelID, Is.Null);

                    var g = Guid.NewGuid();
                    progid.CLSID = g;
                    Assert.That(progid.CLSID.Value, Is.EqualTo(g));
                    progid.CLSID = null;
                    Assert.That(progid.CLSID, Is.Null);

                    var i = new IconLocation(Vanara.PInvoke.Tests.TestCaseSources.ResourceFile, -1);
                    progid.DefaultIcon = i;
                    Assert.That(progid.DefaultIcon.ToString(), Is.EqualTo(i.ToString()));
                    progid.DefaultIcon = null;
                    Assert.That(progid.DefaultIcon, Is.Null);

                    var f = PInvoke.ShlwApi.FILETYPEATTRIBUTEFLAGS.FTA_NoEditIcon | PInvoke.ShlwApi.FILETYPEATTRIBUTEFLAGS.FTA_NoEdit;
                    progid.EditFlags = f;
                    Assert.That(progid.EditFlags, Is.EqualTo(f));
                    progid.EditFlags = 0;
                    Assert.That(progid.EditFlags, Is.EqualTo(PInvoke.ShlwApi.FILETYPEATTRIBUTEFLAGS.FTA_None));

                    var fn = new IndirectString(Vanara.PInvoke.Tests.TestCaseSources.ResourceFile, -1);
                    progid.FriendlyTypeName = fn;
                    Assert.That(progid.FriendlyTypeName.ToString(), Is.EqualTo(fn.ToString()));
                    progid.FriendlyTypeName = null;
                    Assert.That(progid.FriendlyTypeName, Is.Null);

                    progid.InfoTip = fn;
                    Assert.That(progid.InfoTip.ToString(), Is.EqualTo(fn.ToString()));
                    progid.InfoTip = null;
                    Assert.That(progid.InfoTip, Is.Null);

                    var vopen  = progid.Verbs.Add("Open", "&Open", "notepad.exe %1");
                    var vprint = progid.Verbs.Add("Print", "&Print", "notepad.exe %1");
                    var vend   = progid.Verbs.Add("Terminate", "&End", "notepad.exe %1");
                    progid.Verbs.Order = new[] { vend, vprint };
                }
        }
Example #2
0
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            // Remove temp files
            foreach (var n in tempFiles)
            {
                File.Delete(n);
            }

            // Unregister app
            ProgId.Unregister(appId, true, systemWide);
        }
Example #3
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // Register app
            using (var progId = ProgId.Register(appId, Text, systemWide))
            {
                progId.Verbs.Add("open", "Open", $"{Application.ExecutablePath} %1", true);
                foreach (var ext in extensions)
                {
                    progId.FileTypeAssociations.Add(ext);
                }
            }

            // Create temp files
            var tempCount = 4;

            for (var i = 0; i < tempCount; i++)
            {
                var nfn = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), $"____File{i:D4}{extensions[0]}");
                File.WriteAllText(nfn, "dummy");
                tempFiles.Add(nfn);
            }
        }
Example #4
0
 public void ReadProgIDTest()
 {
     using (var pi = new ProgId("Word.Document.12"))
     {
         Assert.That(pi.ReadOnly, Is.True);
         Assert.That(pi.DefaultIcon.ToString(), Is.EqualTo(@"C:\Program Files (x86)\Microsoft Office\Root\VFS\Windows\Installer\{90160000-000F-0000-0000-0000000FF1CE}\wordicon.exe,13"));
         Assert.That(pi.AllowSilentDefaultTakeOver, Is.False);
         Assert.That(pi.AppUserModelID, Is.Null);
         Assert.That(pi.EditFlags, Is.EqualTo(PInvoke.ShlwApi.FILETYPEATTRIBUTEFLAGS.FTA_None));
         Assert.That(pi.Verbs, Has.Count.EqualTo(8));
         Assert.That(pi.Verbs["Close"], Is.Null);
         //Assert.That(pi.Verbs["New"].DisplayName, Is.EqualTo("&New"));
     }
     using (var pi = new ProgId("Acrobat.Document.DC"))
     {
         Assert.That(pi.EditFlags, Is.EqualTo(PInvoke.ShlwApi.FILETYPEATTRIBUTEFLAGS.FTA_OpenIsSafe));
         Assert.That(pi.CLSID, Is.EqualTo(new Guid("{B801CA65-A1FC-11D0-85AD-444553540000}")));
         Assert.That(pi.Verbs["Print"].Command, Has.Length.GreaterThan(0));
     }
     using (var pi = new ProgId("CABFolder"))
     {
         Assert.That(pi.EditFlags, Is.EqualTo(PInvoke.ShlwApi.FILETYPEATTRIBUTEFLAGS.FTA_SafeForElevation));
         Assert.That(pi.FriendlyTypeName.ToString(), Is.EqualTo(@"@C:\WINDOWS\system32\cabview.dll,-20"));
         Assert.That(pi.FriendlyTypeName.Value, Has.Length.GreaterThan(0));
         Assert.That(pi.InfoTip.ToString(), Is.EqualTo(@"@C:\WINDOWS\system32\cabview.dll,-21"));
         Assert.That((pi.InfoTip as IndirectString)?.Value, Has.Length.GreaterThan(0));
     }
     using (var pi = new ProgId("cdafile"))
         Assert.That(pi.Verbs, Has.Count.EqualTo(0));
     using (var pi = new ProgId("Msi.Package"))
     {
         Assert.That(pi.Verbs, Has.Count.EqualTo(4));
         Assert.That(pi.Verbs.Order, Has.Count.EqualTo(4));
         Assert.That(pi.Verbs.Order[3].Name, Is.EqualTo("runasuser"));
     }
 }
Example #5
0
 public virtual void VisitProgId(ProgId node)
 {
 }
Example #6
0
        public virtual void VisitItem(Object item)
        {
            if (item == null)
            {
                return;
            }

            Module module = item as Module;

            if (module != null)
            {
                VisitModule(module);
                return;
            }
            Product product = item as Product;

            if (product != null)
            {
                VisitProduct(product);
                return;
            }
            Feature feature = item as Feature;

            if (feature != null)
            {
                VisitFeature(feature);
                return;
            }
            AdvtExecuteSequence advtExecuteSequence = item as AdvtExecuteSequence;

            if (advtExecuteSequence != null)
            {
                VisitAdvtExecuteSequence(advtExecuteSequence);
                return;
            }
            InstallUISequence installUISequence = item as InstallUISequence;

            if (installUISequence != null)
            {
                VisitInstallUISequence(installUISequence);
                return;
            }
            User user = item as User;

            if (user != null)
            {
                VisitUser(user);
                return;
            }
            Upgrade upgrade = item as Upgrade;

            if (upgrade != null)
            {
                VisitUpgrade(upgrade);
                return;
            }
            Directory directory = item as Directory;

            if (directory != null)
            {
                VisitDirectory(directory);
                return;
            }
            PropertyRef propertyRef = item as PropertyRef;

            if (propertyRef != null)
            {
                VisitPropertyRef(propertyRef);
                return;
            }
            WebSite webSite = item as WebSite;

            if (webSite != null)
            {
                VisitWebSite(webSite);
                return;
            }
            AdminUISequence adminUISequence = item as AdminUISequence;

            if (adminUISequence != null)
            {
                VisitAdminUISequence(adminUISequence);
                return;
            }
            CustomAction customAction = item as CustomAction;

            if (customAction != null)
            {
                VisitCustomAction(customAction);
                return;
            }
            DirectoryRef directoryRef = item as DirectoryRef;

            if (directoryRef != null)
            {
                VisitDirectoryRef(directoryRef);
                return;
            }
            AppId appId = item as AppId;

            if (appId != null)
            {
                VisitAppId(appId);
                return;
            }
            Media media = item as Media;

            if (media != null)
            {
                VisitMedia(media);
                return;
            }
            CustomTable customTable = item as CustomTable;

            if (customTable != null)
            {
                VisitCustomTable(customTable);
                return;
            }
            Condition condition = item as Condition;

            if (condition != null)
            {
                VisitCondition(condition);
                return;
            }
            SFPCatalog sFPCatalog = item as SFPCatalog;

            if (sFPCatalog != null)
            {
                VisitSFPCatalog(sFPCatalog);
                return;
            }
            UI ui = item as UI;

            if (ui != null)
            {
                VisitUI(ui);
                return;
            }
            FragmentRef fragmentRef = item as FragmentRef;

            if (fragmentRef != null)
            {
                VisitFragmentRef(fragmentRef);
                return;
            }
            Icon icon = item as Icon;

            if (icon != null)
            {
                VisitIcon(icon);
                return;
            }
            Property property = item as Property;

            if (property != null)
            {
                VisitProperty(property);
                return;
            }
            FeatureRef featureRef = item as FeatureRef;

            if (featureRef != null)
            {
                VisitFeatureRef(featureRef);
                return;
            }
            WebDirProperties webDirProperties = item as WebDirProperties;

            if (webDirProperties != null)
            {
                VisitWebDirProperties(webDirProperties);
                return;
            }
            ComplianceCheck complianceCheck = item as ComplianceCheck;

            if (complianceCheck != null)
            {
                VisitComplianceCheck(complianceCheck);
                return;
            }
            InstallExecuteSequence installExecuteSequence = item as InstallExecuteSequence;

            if (installExecuteSequence != null)
            {
                VisitInstallExecuteSequence(installExecuteSequence);
                return;
            }
            AdminExecuteSequence adminExecuteSequence = item as AdminExecuteSequence;

            if (adminExecuteSequence != null)
            {
                VisitAdminExecuteSequence(adminExecuteSequence);
                return;
            }
            Binary binary = item as Binary;

            if (binary != null)
            {
                VisitBinary(binary);
                return;
            }
            Group group = item as Group;

            if (group != null)
            {
                VisitGroup(group);
                return;
            }
            WebApplication webApplication = item as WebApplication;

            if (webApplication != null)
            {
                VisitWebApplication(webApplication);
                return;
            }
            ActionSequenceType actionSequenceType = item as ActionSequenceType;

            if (actionSequenceType != null)
            {
                VisitActionSequenceType(actionSequenceType);
                return;
            }
            ActionModuleSequenceType actionModuleSequenceType = item as ActionModuleSequenceType;

            if (actionModuleSequenceType != null)
            {
                VisitActionModuleSequenceType(actionModuleSequenceType);
                return;
            }
            BillboardAction billboardAction = item as BillboardAction;

            if (billboardAction != null)
            {
                VisitBillboardAction(billboardAction);
                return;
            }
            Error error = item as Error;

            if (error != null)
            {
                VisitError(error);
                return;
            }
            Dialog dialog = item as Dialog;

            if (dialog != null)
            {
                VisitDialog(dialog);
                return;
            }
            ProgressText progressText = item as ProgressText;

            if (progressText != null)
            {
                VisitProgressText(progressText);
                return;
            }
            TextStyle textStyle = item as TextStyle;

            if (textStyle != null)
            {
                VisitTextStyle(textStyle);
                return;
            }
            ListBox listBox = item as ListBox;

            if (listBox != null)
            {
                VisitListBox(listBox);
                return;
            }
            ListView listView = item as ListView;

            if (listView != null)
            {
                VisitListView(listView);
                return;
            }
            ComboBox comboBox = item as ComboBox;

            if (comboBox != null)
            {
                VisitComboBox(comboBox);
                return;
            }
            UIText uIText = item as UIText;

            if (uIText != null)
            {
                VisitUIText(uIText);
                return;
            }
            RadioGroup radioGroup = item as RadioGroup;

            if (radioGroup != null)
            {
                VisitRadioGroup(radioGroup);
                return;
            }
            IniFileSearch iniFileSearch = item as IniFileSearch;

            if (iniFileSearch != null)
            {
                VisitIniFileSearch(iniFileSearch);
                return;
            }
            RegistrySearch registrySearch = item as RegistrySearch;

            if (registrySearch != null)
            {
                VisitRegistrySearch(registrySearch);
                return;
            }
            ComponentSearch componentSearch = item as ComponentSearch;

            if (componentSearch != null)
            {
                VisitComponentSearch(componentSearch);
                return;
            }
            FileSearch fileSearch = item as FileSearch;

            if (fileSearch != null)
            {
                VisitFileSearch(fileSearch);
                return;
            }
            DirectorySearch directorySearch = item as DirectorySearch;

            if (directorySearch != null)
            {
                VisitDirectorySearch(directorySearch);
                return;
            }
            File file = item as File;

            if (file != null)
            {
                VisitFile(file);
                return;
            }
            Component component = item as Component;

            if (component != null)
            {
                VisitComponent(component);
                return;
            }
            Merge merge = item as Merge;

            if (merge != null)
            {
                VisitMerge(merge);
                return;
            }
            Custom custom = item as Custom;

            if (custom != null)
            {
                VisitCustom(custom);
                return;
            }
            WebError webError = item as WebError;

            if (webError != null)
            {
                VisitWebError(webError);
                return;
            }
            WebVirtualDir webVirtualDir = item as WebVirtualDir;

            if (webVirtualDir != null)
            {
                VisitWebVirtualDir(webVirtualDir);
                return;
            }
            WebDir webDir = item as WebDir;

            if (webDir != null)
            {
                VisitWebDir(webDir);
                return;
            }
            WebFilter webFilter = item as WebFilter;

            if (webFilter != null)
            {
                VisitWebFilter(webFilter);
                return;
            }
            MergeRef mergeRef = item as MergeRef;

            if (mergeRef != null)
            {
                VisitMergeRef(mergeRef);
                return;
            }
            Subscribe subscribe = item as Subscribe;

            if (subscribe != null)
            {
                VisitSubscribe(subscribe);
                return;
            }
            Publish publish = item as Publish;

            if (publish != null)
            {
                VisitPublish(publish);
                return;
            }
            TypeLib typeLib = item as TypeLib;

            if (typeLib != null)
            {
                VisitTypeLib(typeLib);
                return;
            }
            Shortcut shortcut = item as Shortcut;

            if (shortcut != null)
            {
                VisitShortcut(shortcut);
                return;
            }
            ODBCTranslator oDBCTranslator = item as ODBCTranslator;

            if (oDBCTranslator != null)
            {
                VisitODBCTranslator(oDBCTranslator);
                return;
            }
            Permission permission = item as Permission;

            if (permission != null)
            {
                VisitPermission(permission);
                return;
            }
            Class _class = item as Class;

            if (_class != null)
            {
                VisitClass(_class);
                return;
            }
            CopyFile copyFile = item as CopyFile;

            if (copyFile != null)
            {
                VisitCopyFile(copyFile);
                return;
            }
            Patch patch = item as Patch;

            if (patch != null)
            {
                VisitPatch(patch);
                return;
            }
            ODBCDriver oDBCDriver = item as ODBCDriver;

            if (oDBCDriver != null)
            {
                VisitODBCDriver(oDBCDriver);
                return;
            }
            PerfCounter perfCounter = item as PerfCounter;

            if (perfCounter != null)
            {
                VisitPerfCounter(perfCounter);
                return;
            }
            FileShare fileShare = item as FileShare;

            if (fileShare != null)
            {
                VisitFileShare(fileShare);
                return;
            }
            Certificate certificate = item as Certificate;

            if (certificate != null)
            {
                VisitCertificate(certificate);
                return;
            }
            Category category = item as Category;

            if (category != null)
            {
                VisitCategory(category);
                return;
            }
            WebAppPool webAppPool = item as WebAppPool;

            if (webAppPool != null)
            {
                VisitWebAppPool(webAppPool);
                return;
            }
            SqlString sqlString = item as SqlString;

            if (sqlString != null)
            {
                VisitSqlString(sqlString);
                return;
            }
            ServiceControl serviceControl = item as ServiceControl;

            if (serviceControl != null)
            {
                VisitServiceControl(serviceControl);
                return;
            }
            IsolateComponent isolateComponent = item as IsolateComponent;

            if (isolateComponent != null)
            {
                VisitIsolateComponent(isolateComponent);
                return;
            }
            ServiceConfig serviceConfig = item as ServiceConfig;

            if (serviceConfig != null)
            {
                VisitServiceConfig(serviceConfig);
                return;
            }
            WebProperty webProperty = item as WebProperty;

            if (webProperty != null)
            {
                VisitWebProperty(webProperty);
                return;
            }
            SqlScript sqlScript = item as SqlScript;

            if (sqlScript != null)
            {
                VisitSqlScript(sqlScript);
                return;
            }
            SqlDatabase sqlDatabase = item as SqlDatabase;

            if (sqlDatabase != null)
            {
                VisitSqlDatabase(sqlDatabase);
                return;
            }
            WebLockdown webLockdown = item as WebLockdown;

            if (webLockdown != null)
            {
                VisitWebLockdown(webLockdown);
                return;
            }
            Extension extension = item as Extension;

            if (extension != null)
            {
                VisitExtension(extension);
                return;
            }
            ReserveCost reserveCost = item as ReserveCost;

            if (reserveCost != null)
            {
                VisitReserveCost(reserveCost);
                return;
            }
            RemoveFile removeFile = item as RemoveFile;

            if (removeFile != null)
            {
                VisitRemoveFile(removeFile);
                return;
            }
            ProgId progId = item as ProgId;

            if (progId != null)
            {
                VisitProgId(progId);
                return;
            }
            Microsoft.Tools.WindowsInstallerXml.Serialize.Environment environment = item as
                                                                                    Microsoft.Tools.WindowsInstallerXml.Serialize.Environment;
            if (environment != null)
            {
                VisitEnvironment(environment);
                return;
            }
            ServiceInstall serviceInstall = item as ServiceInstall;

            if (serviceInstall != null)
            {
                VisitServiceInstall(serviceInstall);
                return;
            }
            IniFile iniFile = item as IniFile;

            if (iniFile != null)
            {
                VisitIniFile(iniFile);
                return;
            }
            Registry registry = item as Registry;

            if (registry != null)
            {
                VisitRegistry(registry);
                return;
            }
            CreateFolder createFolder = item as CreateFolder;

            if (createFolder != null)
            {
                VisitCreateFolder(createFolder);
                return;
            }
            MIME mIME = item as MIME;

            if (mIME != null)
            {
                VisitMIME(mIME);
                return;
            }
            Verb verb = item as Verb;

            if (verb != null)
            {
                VisitVerb(verb);
                return;
            }
        }
Example #7
0
        public string ExportDataFile()
        {
            string json        = Newtonsoft.Json.JsonConvert.SerializeObject(this.DataSet);
            string telFilePath = System.IO.Path.Combine(AxCRL.Comm.Runtime.EnvProvider.Default.RuningPath, "TempData", "PrintTel", string.Format("{0}.frx", ProgId.Replace(".", string.Empty)));

            using (StreamWriter sw = new StreamWriter(telFilePath, false))
            {
                sw.Write(json);
            }
            return(telFilePath);
        }
Example #8
0
        public string Print(string[] billNo)
        {
            if (billNo == null || billNo.Length <= 0)
            {
                return(string.Empty);
            }

            string telFilePath = System.IO.Path.Combine(AxCRL.Comm.Runtime.EnvProvider.Default.RuningPath, "TempData", "PrintTel", string.Format("{0}.frx", ProgId.Replace(".", string.Empty)));

            if (!File.Exists(telFilePath))
            {
                return(string.Empty);
            }

            string filePath = System.IO.Path.Combine(AxCRL.Comm.Runtime.EnvProvider.Default.RuningPath, "TempData", string.Format("{0}.jpg", billNo));

            if (File.Exists(filePath))
            {
                return(filePath);
            }

            #region 获取DataSet数据源
            DataSetManager.GetDataSet(this.DataSet, this.DataAccess, this.ProgId, billNo, this.Handle);
            this.DataSet.AcceptChanges();
            #endregion

            #region 加载打印模板
            //Report report = new Report();
            //report.Load(@telFilePath);
            //report.RegisterData(this.DataSet);
            //report.Prepare();
            #endregion

            #region 导出打印结果图片
            //ImageExport export = new ImageExport();
            //report.Export(export, filePath);
            #endregion

            #region 导出PDF
            //string pdfFilePath = System.IO.Path.Combine(AxCRL.Comm.Runtime.EnvProvider.Default.RuningPath, "TempData", string.Format("{0}.pdf", billNo));
            //PDFExport pdfExport = new PDFExport();
            //report.Export(pdfExport, pdfFilePath);
            #endregion

            //report.Dispose();
            return(filePath);
        }