Exemplo n.º 1
0
        private void btn_WriteU_Click(object sender, EventArgs e)
        {
            if (dgv_DumpData.Rows.Count != 64)
            {
                return;
            }

            FileLayer.Write("key/tmp.dump", GetGridViewData());
            StringBuilder szArgv = new StringBuilder();

            szArgv.Append("W ");

            if (rb_KeyA.Checked)
            {
                szArgv.Append("a ");
            }
            else
            {
                szArgv.Append("b ");
            }

            szArgv.Append(" key/tmp.dump key/tmp.dump");

            if (pl.AsyncStart("nfc/nfc-mfclassic.exe", szArgv.ToString()) == false)
            {
                MessageBox.Show("已存在工作线程");
                return;
            }
        }
Exemplo n.º 2
0
        private void buttonImport_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter = "xml文件|*.xml";

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                string fname = ofd.FileName;
                if (Mode == 0)
                {
                    Demo.Entities.RasterLayer rl = xmlSerialize.DeSerialize <Demo.Entities.RasterLayer>(fname);
                    Raster2Control(rl);
                }
                else if (Mode == 1)
                {
                    VectorLayer vl = xmlSerialize.DeSerialize <VectorLayer>(fname);
                    Vector2Control(vl);
                }
                else if (Mode == 2)
                {
                    FileLayer fl = xmlSerialize.DeSerialize <FileLayer>(fname);
                    File2Control(fl);
                }
            }
        }
Exemplo n.º 3
0
        private void buttonMetaData_Click(object sender, EventArgs e)
        {
            Demo.FormMetaData fmd;
            switch (nowDT)
            {
            case enumDataType.raster:
                fmd = new Demo.FormMetaData(this.rstLayer);
                break;

            case enumDataType.dem:
                fmd = new Demo.FormMetaData(this.rstLayer);
                break;

            case enumDataType.vector:
                fmd = new Demo.FormMetaData(this.vctLayer);
                break;

            default:
                fmd = new Demo.FormMetaData(this.fleLayer);
                break;
            }

            if (fmd.ShowDialog() == DialogResult.OK)
            {
                this.rstLayer = fmd.rstLayer;
                this.vctLayer = fmd.vctLayer;
                this.fleLayer = fmd.fleLayer;
            }
        }
Exemplo n.º 4
0
        private void File2Control(FileLayer FL)
        {
            Base2Control((BaseLayer)FL);

            textBoxFFolder.Text = FL.ISFOLDER.ToString();
            textBoxFOpenAs.Text = FL.OPENAS;
        }
Exemplo n.º 5
0
 public FormMetaData(FileLayer FL)
 {
     InitializeComponent();
     File2Control(FL);
     xtraTabControl1.SelectedTabPage = xtraTabPage3;
     Mode = 2;
 }
Exemplo n.º 6
0
        private void Control2File(out FileLayer FL)
        {
            FL = new FileLayer();
            Control2Base(out FL);
            if (FL == null)
            {
                return;
            }

            FL.ISFOLDER = Convert.ToBoolean(textBoxFFolder.Text);
            FL.OPENAS   = textBoxFOpenAs.Text;
        }
Exemplo n.º 7
0
        private void GetDataFromFile(string sFilePath)
        {
            byte[] btBuf = FileLayer.ReadWhileFixDump(sFilePath);

            if (btBuf == null)
            {
                MessageBox.Show("不是标准4K/1K.Dump文件");
                return;
            }

            InvokeInsertItem(btBuf);

            lb_source.Text = sFilePath;
        }
Exemplo n.º 8
0
        private void btn_Export2File_Click(object sender, EventArgs e)
        {
            if (dgv_DumpData.Rows.Count != 64)
            {
                return;
            }

            if (saveFileDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            FileLayer.Write(saveFileDialog.FileName, GetGridViewData());
            MessageBox.Show("保存到文件 [" + saveFileDialog.FileName.Substring(saveFileDialog.FileName.LastIndexOf("\\") + 1) + "] 成功!");
        }
Exemplo n.º 9
0
 private void Control2Base(out FileLayer BL)
 {
     BL             = new FileLayer();
     BL.SCALE       = Convert.ToInt64(textBoxScale.Text);
     BL.AUTHOR      = textBoxAuthor.Text;
     BL.CREATETIME  = textBoxCreateTime.Text;
     BL.DATATYPE    = textBoxDataType.Text;
     BL.DESCRIPTION = textBoxDescription.Text;
     BL.LAYERNAME   = textBoxLayerName.Text;
     BL.MAPNUM      = textBoxMapNum.Text;
     BL.PROJECTION  = textBoxProjection.Text;
     BL.DATAFORMAT  = textBoxDataformat.Text;
     BL.DATAGETDATE = dateTimePickerDatagetdate.Value;
     BL.DATASOURCES = comboBoxDatasource.Text;
     BL.REGION      = treeComboBoxArea.areacodetext.PadRight(9, '0');
 }
Exemplo n.º 10
0
        private void buttonOpen_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            switch (nowDT)
            {
            case enumDataType.raster:
                ofd.Filter = "栅格数据|*.tif;*.img;*.pix;*.bmp;*.jpg";
                break;

            case enumDataType.dem:
                ofd.Filter = "地形数据|*.tif;*.img;*.pix;*.grd;*.dem";
                break;

            case enumDataType.vector:
                ofd.Filter = "矢量数据|*.shp;*.e00;*.dwg;*.bmp;*.mif";
                break;

            default:
                ofd.Filter = "数据|*.*";
                break;
            }

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                FormMetaData frmMD;

                textBoxImport.Text = ofd.FileName;
                ILayer pLayer = GetILayerFromPath(ofd.FileName);
                if (pLayer != null)
                {
                    frmMD = new FormMetaData(pLayer);
                }
                else
                {
                    frmMD = new FormMetaData(ofd.FileName);
                }

                if (frmMD.ShowDialog() == DialogResult.OK)
                {
                    this.rstLayer = frmMD.rstLayer;
                    this.vctLayer = frmMD.vctLayer;
                    this.fleLayer = frmMD.fleLayer;
                }
            }
        }
Exemplo n.º 11
0
        private void buttonExport_Click(object sender, EventArgs e)
        {
            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Filter = "xml 文件|*.xml";

            sfd.RestoreDirectory = true;

            if (sfd.ShowDialog() == DialogResult.OK)
            {
                string filename = sfd.FileName;
                if (!filename.EndsWith(".xml"))
                {
                    filename += ".xml";
                }
                if (Mode == 0)
                {
                    Demo.Entities.RasterLayer RL = new Demo.Entities.RasterLayer();
                    Control2Raster(out RL);

                    xmlSerialize.Serialize <Demo.Entities.RasterLayer>(RL, filename);
                }
                else if (Mode == 1)
                {
                    VectorLayer vl = new VectorLayer();
                    Control2Vector(out vl);
                    xmlSerialize.Serialize <VectorLayer>(vl, filename);
                }
                else if (Mode == 2)
                {
                    FileLayer fl = new FileLayer();
                    Control2File(out fl);
                    xmlSerialize.Serialize <FileLayer>(fl, filename);
                }
                else
                {
                    MessageBox.Show("未知文件类型,请重新导出!");
                }
            }
        }
Exemplo n.º 12
0
        private void GetData(string sExecResultTmp, int ExitCode)
        {
            if (ExitCode != 0)
            {
                if (pl.m_RetErrorMsg != null && pl.m_RetErrorMsg.Length != 0)
                {
                    MessageBox.Show(pl.m_RetErrorMsg);
                }
                else
                {
                    MessageBox.Show("解密失败");
                }
                return;
            }
            GetUid(sExecResultTmp, ExitCode);
            if (FileLayer.Exists("data/" + Uid + ".dump") == false)
            {
                FileLayer.Copy("data/tmp.dump", "data/" + Uid + ".dump");
            }
            byte[] btBuf = FileLayer.Read("data/tmp.dump");
            if (btBuf == null)
            {
                if (pl.m_RetErrorMsg != null && pl.m_RetErrorMsg.Length != 0)
                {
                    MessageBox.Show(pl.m_RetErrorMsg);
                }
                else
                {
                    MessageBox.Show("解密失败");
                }
                return;
            }

            InvokeInsertItemDelegate iiid = new InvokeInsertItemDelegate(InvokeInsertItem);

            this.BeginInvoke(iiid, new object[] { btBuf });

            lb_source.Text = "读卡器直读";
        }
Exemplo n.º 13
0
        private void GetData(string sExecResultTmp, int ExitCode)
        {
            if (ExitCode != 0)
            {
                if (pl.m_RetErrorMsg != null && pl.m_RetErrorMsg.Length != 0)
                {
                    MessageBox.Show(pl.m_RetErrorMsg);
                }
                else
                {
                    MessageBox.Show("Crack Failed");
                }
                return;
            }
            GetUid(sExecResultTmp, ExitCode);

            byte[] btBuf = FileLayer.Read("key/" + Uid + ".dump");
            if (btBuf == null)
            {
                if (pl.m_RetErrorMsg != null && pl.m_RetErrorMsg.Length != 0)
                {
                    MessageBox.Show(pl.m_RetErrorMsg);
                }
                else
                {
                    MessageBox.Show("Crack Failed");
                }
                return;
            }

            InvokeInsertItemDelegate iiid = new InvokeInsertItemDelegate(InvokeInsertItem);

            this.BeginInvoke(iiid, new object[] { btBuf });

            lb_source.Text = "Card Reader";
        }
Exemplo n.º 14
0
        private void GetUidToCrack(string sExecResultTmp, int ExitCode)
        {
            GetUid(sExecResultTmp, ExitCode);
            if (string.IsNullOrEmpty(Uid))
            {
                if (pl.m_RetErrorMsg != null && pl.m_RetErrorMsg.Length != 0)
                {
                    MessageBox.Show(pl.m_RetErrorMsg);
                }
                else
                {
                    MessageBox.Show("Can not get the UID of the card");
                }
                return;
            }

            if (FileLayer.Exists("key/" + Uid + ".dump"))
            {
                byte[] btBuf = FileLayer.Read("key/" + Uid + ".dump");

                if (btBuf == null)
                {
                    if (pl.m_RetErrorMsg != null && pl.m_RetErrorMsg.Length != 0)
                    {
                        MessageBox.Show(pl.m_RetErrorMsg);
                    }
                    else
                    {
                        if (pl.AsyncStart("nfc/mfoc.exe", "-P " + ud_Probe.Value.ToString() + " -T " + ud_distance.Value.ToString() + " -O key/" + Uid + ".dump", GetData) == false)
                        {
                            MessageBox.Show("已存在工作线程");
                            return;
                        }
                    }
                    return;
                }

                List <string> KeyListTmp = new List <string>();
                for (int i = 0; i < 64; i++)
                {
                    byte[] btBufTmp = new byte[6];
                    Buffer.BlockCopy(btBuf, 64 * i + 48, btBufTmp, 0, 6);
                    KeyListTmp.Add(HexStringByteArrayConverter.BytesToHexString(btBufTmp));
                    Buffer.BlockCopy(btBuf, 64 * i + 58, btBufTmp, 0, 6);
                    KeyListTmp.Add(HexStringByteArrayConverter.BytesToHexString(btBufTmp));
                }

                KeyListTmp = KeyListTmp.Distinct().ToList();

                StringBuilder sbKeyArgv = new StringBuilder();

                foreach (string item in KeyListTmp)
                {
                    sbKeyArgv.Append(" -k ");
                    sbKeyArgv.Append(item);
                }
                if (pl.AsyncStart("nfc/mfoc.exe", sbKeyArgv.ToString() + " -P " + ud_Probe.Value.ToString() + " -T " + ud_distance.Value.ToString() + " -O key/tmp.dump", GetData) == false)
                {
                    MessageBox.Show("已存在工作线程");
                    return;
                }
            }
            else
            {
                if (pl.AsyncStart("nfc/mfoc.exe", "-P " + ud_Probe.Value.ToString() + " -T " + ud_distance.Value.ToString() + " -O key/" + Uid + ".dump", GetData) == false)
                {
                    MessageBox.Show("已存在工作线程");
                    return;
                }
            }
        }
 public PolinomManipulator()
 {
     _data = new FileLayer();
 }
Exemplo n.º 16
0
        /// <summary>
        /// Lädt die angegebene Datei in der Hoffnung um eine Area.
        /// </summary>
        public static Area LoadFromJson(string file, ref int nextId)
        {
            FileInfo info = new FileInfo(file);

            using (Stream stream = File.OpenRead(file))
            {
                using (StreamReader sr = new StreamReader(stream))
                {
                    // json Datei auslesen
                    string json = sr.ReadToEnd();

                    // Deserialisieren
                    FileArea result = JsonConvert.DeserializeObject <FileArea>(json);

                    // Neue Area öffnen und mit den Root-Daten füllen
                    FileLayer[] tileLayer   = result.layers.Where(l => l.type == "tilelayer").ToArray();
                    FileLayer   objectLayer = result.layers.Where(l => l.type == "objectgroup").FirstOrDefault();
                    Area        area        = new Area(tileLayer.Length, result.width, result.height);
                    area.Name = info.Name.Substring(0, info.Name.Length - 5);

                    // Song auslesen
                    if (result.properties != null)
                    {
                        area.Song = result.properties.Song;
                    }

                    // Hintergrundfarbe interpretieren
                    area.Background = new Color(128, 128, 128);
                    if (!string.IsNullOrEmpty(result.backgroundcolor))
                    {
                        // Hexwerte als Farbwert parsen
                        area.Background = new Color(
                            Convert.ToInt32(result.backgroundcolor.Substring(1, 2), 16),
                            Convert.ToInt32(result.backgroundcolor.Substring(3, 2), 16),
                            Convert.ToInt32(result.backgroundcolor.Substring(5, 2), 16));
                    }

                    // Tiles zusammen suchen
                    for (int i = 0; i < result.tilesets.Length; i++)
                    {
                        FileTileset tileset = result.tilesets[i];

                        int start  = tileset.firstgid;
                        int perRow = tileset.imagewidth / tileset.tilewidth;
                        int width  = tileset.tilewidth;

                        for (int j = 0; j < tileset.tilecount; j++)
                        {
                            int x = j % perRow;
                            int y = j / perRow;

                            // Block-Status ermitteln
                            bool block = false;
                            if (tileset.tileproperties != null)
                            {
                                FileTileProperty property;
                                if (tileset.tileproperties.TryGetValue(j, out property))
                                {
                                    block = property.Block;
                                }
                            }

                            // Tile erstellen
                            Tile tile = new Tile()
                            {
                                Texture         = tileset.image,
                                SourceRectangle = new Rectangle(x * width, y * width, width, width),
                                Blocked         = block
                            };

                            // In die Auflistung aufnehmen
                            area.Tiles.Add(start + j, tile);
                        }
                    }

                    // TileLayer erstellen
                    for (int l = 0; l < tileLayer.Length; l++)
                    {
                        FileLayer layer = tileLayer[l];

                        for (int i = 0; i < layer.data.Length; i++)
                        {
                            int x = i % area.Width;
                            int y = i / area.Width;
                            area.Layers[l].Tiles[x, y] = layer.data[i];
                        }
                    }

                    // Object Layer analysieren
                    if (objectLayer != null)
                    {
                        // Portals - Übertragungspunkte zu anderen Karten
                        foreach (var portal in objectLayer.objects.Where(o => o.type == "Portal"))
                        {
                            Rectangle box = new Rectangle(
                                portal.x / result.tilewidth,
                                portal.y / result.tileheight,
                                portal.width / result.tilewidth,
                                portal.height / result.tileheight
                                );

                            area.Portals.Add(new Portal()
                            {
                                DestinationArea = portal.name, Box = box
                            });
                        }

                        // Items (Spielelemente)
                        foreach (var item in objectLayer.objects.Where(o => o.type == "Item"))
                        {
                            Vector2 pos = new Vector2(
                                (item.x + (item.width / 2f)) / result.tilewidth,
                                (item.y + (item.height / 2f)) / result.tileheight);

                            switch (item.name)
                            {
                            case "coin": area.Items.Add(new Coin(nextId++)
                                {
                                    Position = pos
                                }); break;

                            case "goldencoin": area.Items.Add(new GoldenCoin(nextId++)
                                {
                                    Position = pos
                                }); break;

                            case "decard": area.Items.Add(new Decard(nextId++)
                                {
                                    Position = pos
                                }); break;

                            case "heidi": area.Items.Add(new Heidi(nextId++)
                                {
                                    Position = pos
                                }); break;

                            case "orc": area.Items.Add(new Orc(nextId++)
                                {
                                    Position = pos
                                }); break;

                            case "trader":
                                Trader trader = new Trader(nextId++)
                                {
                                    Position = pos
                                };
                                trader.Inventory.Add(new IronSword(nextId++)
                                {
                                });
                                trader.Inventory.Add(new WoodSword(nextId++)
                                {
                                });
                                trader.Inventory.Add(new Gloves(nextId++)
                                {
                                });
                                area.Items.Add(trader);
                                break;
                            }
                        }

                        // Player (Startpunkte)
                        foreach (var player in objectLayer.objects.Where(o => o.type == "Player"))
                        {
                            Vector2 pos = new Vector2(
                                (player.x + (player.width / 2)) / result.tilewidth,
                                (player.y + (player.height / 2)) / result.tileheight);

                            area.Startpoints.Add(pos);
                        }
                    }

                    return(area);
                }
            }
        }
Exemplo n.º 17
0
        protected override void DefWndProc(ref System.Windows.Forms.Message m)
        {
            switch (m.Msg)
            {
            case WM_COPYDATA:
            {
                COPYDATASTRUCT mystr  = new COPYDATASTRUCT();
                Type           mytype = mystr.GetType();
                mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
                TransferTask currentTask = transferTaskListControl1.GetTaskByID(new Guid(mystr.lpData.Substring(0, mystr.cbData)));
                if (currentTask != null)
                {
                    transferTaskListControl1.CompleteTask(currentTask);

                    //写入元数据
                    TemplateMetaData metaData;
                    MetaDts.TryGetValue(currentTask.ID, out metaData);

                    if (currentTask.Type == TaskType.Upload)
                    {
                        switch (metaData.MetaDataType)
                        {
                        case EnumMetaDataType.Raster:
                        {
                            Demo.Entities.RasterLayer rstLyr = metaData.LayerData as Demo.Entities.RasterLayer;
                            rstLyr.LAYERSIZE = (long)currentTask.Size;
                            if (Demo.Entities.RasterLayer.ImportRasterIndex(rstLyr) == 1)
                            {
                                //MessageBox.Show("元数据保存成功!");
                            }
                            else
                            {
                                MessageBox.Show("元数据保存失败!");
                            }
                            break;
                        }

                        case EnumMetaDataType.Features:
                        {
                            VectorLayer vecLyr = metaData.LayerData as VectorLayer;
                            vecLyr.LAYERSIZE = (long)currentTask.Size;
                            if (VectorLayer.ImportVectorIndex(vecLyr) == 1)
                            {
                                //MessageBox.Show("元数据保存成功!");
                            }
                            else
                            {
                                MessageBox.Show("元数据保存失败!");
                            }
                            break;
                        }

                        case EnumMetaDataType.Files:
                        {
                            FileLayer fileLyr = metaData.LayerData as FileLayer;
                            fileLyr.LAYERSIZE = (long)currentTask.Size;
                            if (FileLayer.ImportFileIndex(fileLyr) == 1)
                            {
                                //MessageBox.Show("元数据保存成功!");
                            }
                            else
                            {
                                MessageBox.Show("元数据保存失败!");
                            }
                            break;
                        }
                        }
                    }
                    else
                    {
                    }
                }
                break;
            }

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
Exemplo n.º 18
0
        private Area LoadFromJson(string name)
        {
            string rootPath = Path.Combine(Environment.CurrentDirectory, "Maps");

            using (Stream stream = File.OpenRead(rootPath + "\\" + name + ".json"))
            {
                using (StreamReader sr = new StreamReader(stream))
                {
                    string   json   = sr.ReadToEnd();
                    FileArea result = JsonConvert.DeserializeObject <FileArea>(json);
                    Area     area   = new Area(result.layers.length, result.width, result.height);
                    area.Name       = name;
                    area.Background = new Color(128, 128, 128);
                    if (!string.IsNullOrEmpty(result.backgroundcolor))
                    {
                        area.Background = new Color(Convert.ToInt32(result.backgroundcolor.Substring(1, 2), 16),
                                                    Convert.ToInt32(result.backgroundcolor.Substring(3, 2), 16),
                                                    Convert.ToInt32(result.backgroundcolor.Substring(5, 2), 16));
                    }
                    for (int i = 0; i < result.tilesets.Length; i++)
                    {
                        FileTileset tileset = result.tilesets[i];
                        int         start   = tileset.firstgid;
                        int         perRow  = tileset.imagewidth / tileset.tilewidth;
                        int         width   = tileset.tilewidth;
                        for (int j = 0; j < tileset.tilecount; j++)
                        {
                            int  x     = j % perRow;
                            int  y     = j / perRow;
                            bool block = false;
                            if (tileset.tileproperties != null)
                            {
                                FileTileProperty property;
                                if (tileset.tileproperties.TryGetValue(j, out property))
                                {
                                    block = property.Block;
                                }
                            }

                            Tile tile = new Tile()
                            {
                                Texture         = tileset.image,
                                SourceRectangle = new Rectangle(x * width, y * width, width, width),
                                Blocked         = block
                            };
                            area.Tiles.Add(start + j, tile);
                        }
                    }

                    for (int l = 0; l < result.layers.Length; l++)
                    {
                        FileLayer layer = result.layers[l];
                        for (int i = 0; i < layer.data.Length; i++)
                        {
                            int x = i % area.Width;
                            int y = i / area.Width;
                            area.Layers[l].Tiles[x, y] = layer.data[i];
                        }
                    }
                    return(area);
                }
            }
        }
Exemplo n.º 19
0
        private void Search_Click(object sender, EventArgs e)
        {
            SearchConditions sc = new SearchConditions();

            string areacode = string.Empty;

            if (Region_Country.SelectedItem.GetType().Name.Equals("Area"))
            {
                areacode += ((Area)Region_Country.SelectedItem).areacode;
                if (Region_Province.SelectedItem.GetType().Name.Equals("Area"))
                {
                    areacode += ((Area)Region_Province.SelectedItem).areacode.PadRight(6, '_');
                }
                else
                {
                    areacode += "______";
                }
                sc.area.Add(areacode);
            }

            if (DataSource.SelectedItem.ToString() != "全部")
            {
                sc.datasource.Add(DataSource.SelectedItem.ToString());
            }

            if (!String.IsNullOrEmpty(Scale_From.Text) && !String.IsNullOrEmpty(Scale_To.Text))
            {
                sc.scale.Add(Convert.ToInt64(Scale_From.Text));
                sc.scale.Add(Convert.ToInt64(Scale_To.Text));
            }

            if (!String.IsNullOrEmpty(Resolution_From.Text) && !String.IsNullOrEmpty(Resolution_To.Text))
            {
                sc.resolution.Add(Convert.ToSingle(Resolution_From.Text));
                sc.resolution.Add(Convert.ToSingle(Resolution_To.Text));
            }

            sc.keywords = Keywords.Text;

            if (DB_Raster.Checked)
            {
                searchResult = RasterLayer.GetRasterLayerBySearchConditions("影像库", sc);
            }
            else if (DB_DEM.Checked)
            {
                searchResult = RasterLayer.GetRasterLayerBySearchConditions("DEM库", sc);
            }
            else if (DB_Vector.Checked)
            {
                searchResult = VectorLayer.GetVectorLayerBySearchConditions("矢量库", sc);
            }
            else if (DB_3D.Checked)
            {
                searchResult = FileLayer.GetFileLayerBySearchConditions("三维库", sc);
            }
            else if (DB_Test.Checked)
            {
                searchResult = FileLayer.GetFileLayerBySearchConditions("试验库", sc);
            }
            else if (DB_Others.Checked)
            {
                searchResult = FileLayer.GetFileLayerBySearchConditions("其他库", sc);
            }
        }