Пример #1
0
        public void Update(IEnumerable <libexeinfo.NE.ResourceType> resourceTypes, libexeinfo.NE.TargetOS os)
        {
            TreeGridItemCollection treeData = new TreeGridItemCollection();

            foreach (libexeinfo.NE.ResourceType resourceType in resourceTypes.OrderBy(r => r.name))
            {
                TreeGridItem root = new TreeGridItem
                {
                    Values = new object[] { $"{resourceType.name}", null, null, null, os, null }
                };

                foreach (libexeinfo.NE.Resource resource in resourceType.resources.OrderBy(r => r.name))
                {
                    root.Children.Add(new TreeGridItem
                    {
                        Values = new object[]
                        {
                            $"{resource.name}", $"{resource.data.Length}",
                            $"{(libexeinfo.NE.ResourceFlags)((ushort)resource.flags & libexeinfo.NE.KNOWN_RSRC_FLAGS)}",
                            $"{resourceType.name}", os, resource
                        }
                    });
                }

                treeData.Add(root);
            }

            treeResources.DataStore = treeData;
        }
        public void Update(byte[] data, libexeinfo.NE.TargetOS targetOs)
        {
            grdAccelerators.DataStore = null;
            List <Accelerator> accelerators = new List <Accelerator>();

            if (targetOs == libexeinfo.NE.TargetOS.OS2)
            {
                libexeinfo.NE.Os2AcceleratorTable table = libexeinfo.NE.GetOs2Accelerators(data);
                lblCodepage.Visible = true;
                txtCodepage.Visible = true;
                txtCodepage.Text    = $"{table.CodePage}";
                accelerators.AddRange(table.Accelerators.Select(accel => new Accelerator
                {
                    Type = $"{accel.Type}",
                    Key  = accel.Type.HasFlag(libexeinfo.NE.Os2AcceleratorFlags.AF_VIRTUALKEY) ? $"{accel.Key}" :
                           $"'{(char)(byte)accel.Key}'",
                    Command = accel.Command
                }));
            }
            else
            {
                lblCodepage.Visible = false;
                txtCodepage.Visible = false;
                accelerators.AddRange(libexeinfo.NE.GetWinAccelerators(data)
                                      .Select(accel => new Accelerator
                {
                    Type = $"{accel.Flags}",
                    Key  = accel.Flags.HasFlag(libexeinfo.NE.WinAcceleratorFlags.VirtualKey) ? $"{accel.Key}" :
                           $"'{(char)(byte)accel.Key}'",
                    Command = accel.Command
                }));
            }

            if (accelerators.Count > 0)
            {
                grdAccelerators.DataStore = accelerators.OrderBy(r => r.Command).ThenBy(r => r.Key);
            }
        }
Пример #3
0
 public void Update(byte[] data, libexeinfo.NE.TargetOS targetOs)
 {
     treeStrings.DataStore = targetOs == libexeinfo.NE.TargetOS.OS2
                                 ? libexeinfo.NE.GetOs2Strings(data)
                                 : libexeinfo.NE.GetWindowsStrings(data);
 }