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 }; } }
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); }