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