Exemple #1
0
        public void SelectEntry(string reference = "")
        {
            int n = GetWordList().FindIndex(w => w.Contains(reference));

            if (n < 1)
            {
                return;
            }

            //var el = AutomationElement.FromHandle(hwndlstWords);
            //var walker = TreeWalker.ContentViewWalker;

            //int i = 0;
            //for (var child = walker.GetFirstChild(el); child != null; child = walker.GetNextSibling(child))
            //    if (i++ == n)
            //    {
            //        (child.GetCurrentPattern(SelectionItemPattern.Pattern) as SelectionItemPattern).Select();
            //        //SendMessage(hwndlstWords, WM_KEYDOWN, (int)VK_RETURN, 1);
            //        //SendMessage(hwndlstWords, WM_KEYUP, (int)VK_RETURN, 1);
            //        return;
            //    }

            uint processid = 0;
            uint threadid  = GetWindowThreadProcessId(hwndlstWords, out processid);

            //open process
            IntPtr vProcess = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_READ |
                                          PROCESS_VM_WRITE, false, processid);

            //allocate memory in this process address space
            IntPtr vPointer = VirtualAllocEx(vProcess, IntPtr.Zero, 4096, MEM_RESERVE |
                                             MEM_COMMIT, PAGE_READWRITE);

            try
            {
                LVItem[] vItem = new LVItem[1];
                vItem[0].stateMask = LVIS_FOCUSED | LVIS_SELECTED;
                vItem[0].state     = LVIS_FOCUSED | LVIS_SELECTED;

                uint vNumberOfBytesRead = 0;

                //write the struct to the memory of target process
                WriteProcessMemory(vProcess, vPointer, Marshal.UnsafeAddrOfPinnedArrayElement(vItem, 0),
                                   Marshal.SizeOf(typeof(LVItem)), ref vNumberOfBytesRead);

                //let the target process read item text to this struct
                SendMessage(hwndlstWords, LVM_SETITEMSTATE, n, vPointer.ToInt32());
                SendMessage(hwndlstWords, WM_KEYDOWN, (int)VK_RETURN, 1);
                SendMessage(hwndlstWords, WM_KEYUP, (int)VK_RETURN, 1);
            }
            finally
            {
                VirtualFreeEx(vProcess, vPointer, 0, MEM_RELEASE);
                CloseHandle(vProcess);
            }
        }
Exemple #2
0
        /// <summary>
        /// カスタマイズされたリストビューアイテムを生成
        /// </summary>
        /// <returns></returns>
        public System.Windows.Forms.ListViewItem CreateVirtualListViewItem()
        {
            LVItem lvit = new LVItem();

            lvit.Text = Number.ToString();
            lvit.SubItems.Add(Date.ToString());
            lvit.SubItems.Add(AreaName);
            lvit.SubItems.Add(Friend.ToString());
            lvit.SubItems.Add(Foe.ToString());
            lvit.SubItems.Add(Rank);
            lvit.SubItems.Add(ShipDropped);
            lvit.Info = this;

            return(lvit);
        }
Exemple #3
0
        public System.Windows.Forms.ListViewItem CreateVirtualListViewItem()
        {
            LVItem lvit = new LVItem();

            lvit.Text = Date.ToLongDateString();
            if (PrevItem == null)
            {
                lvit.SubItems.Add(Fuel.ToString());
                lvit.SubItems.Add(Ammo.ToString());
                lvit.SubItems.Add(Steel.ToString());
                lvit.SubItems.Add(Bauxite.ToString());
                lvit.SubItems.Add(FastRepair.ToString());
                lvit.SubItems.Add(FastBuild.ToString());
                lvit.SubItems.Add(Devel.ToString());
                lvit.SubItems.Add(Updater.ToString());
            }
            else
            {
                int diff = Fuel - PrevItem.Fuel;
                lvit.SubItems.Add(string.Format("{0}{1:(+#);(-#); }", Fuel, diff));

                diff = Ammo - PrevItem.Ammo;
                lvit.SubItems.Add(string.Format("{0}{1:(+#);(-#); }", Ammo, diff));

                diff = Steel - PrevItem.Steel;
                lvit.SubItems.Add(string.Format("{0}{1:(+#);(-#); }", Steel, diff));

                diff = Bauxite - PrevItem.Bauxite;
                lvit.SubItems.Add(string.Format("{0}{1:(+#);(-#); }", Bauxite, diff));

                diff = FastRepair - PrevItem.FastRepair;
                lvit.SubItems.Add(string.Format("{0}{1:(+#);(-#); }", FastRepair, diff));

                diff = FastBuild - PrevItem.FastBuild;
                lvit.SubItems.Add(string.Format("{0}{1:(+#);(-#); }", FastBuild, diff));

                diff = Devel - PrevItem.Devel;
                lvit.SubItems.Add(string.Format("{0}{1:(+#);(-#); }", Devel, diff));

                diff = Updater - PrevItem.Updater;
                lvit.SubItems.Add(string.Format("{0}{1:(+#);(-#); }", Updater, diff));
            }


            lvit.Info = this;

            return(lvit);
        }
Exemple #4
0
        public System.Windows.Forms.ListViewItem CreateVirtualListViewItem()
        {
            LVItem lvit = new LVItem();

            lvit.Text = Number.ToString();
            lvit.SubItems.Add(Date.ToString());
            lvit.SubItems.Add(ItemName);
            lvit.SubItems.Add(ItemType);
            lvit.SubItems.Add(Resource.Fuel.ToString());
            lvit.SubItems.Add(Resource.Ammo.ToString());
            lvit.SubItems.Add(Resource.Steel.ToString());
            lvit.SubItems.Add(Resource.Bauxite.ToString());
            lvit.SubItems.Add(SecretaryShip);
            lvit.SubItems.Add(OfficeLv.ToString());
            lvit.Info = this;

            return(lvit);
        }
Exemple #5
0
        public System.Windows.Forms.ListViewItem CreateVirtualListViewItem()
        {
            LVItem lvit = new LVItem();

            lvit.Text = Number.ToString();
            lvit.SubItems.Add(Date.ToString());
            lvit.SubItems.Add(AreaName);
            lvit.SubItems.Add(QuestName);
            lvit.SubItems.Add(string.Join(",", Member));
            lvit.SubItems.Add(SucceededMsg);
            lvit.SubItems.Add(Material.Fuel.ToString());
            lvit.SubItems.Add(Material.Ammo.ToString());
            lvit.SubItems.Add(Material.Steel.ToString());
            lvit.SubItems.Add(Material.Bauxite.ToString());
            lvit.SubItems.Add(string.Join(",", Item));
            lvit.Info = this;

            return(lvit);
        }
Exemple #6
0
        private List <string> GetWordList()
        {
            //var el = AutomationElement.FromHandle(hwndlstWords);
            //var walker = TreeWalker.ContentViewWalker;

            //var words = new List<string>();
            //for (var child = walker.GetFirstChild(el); child != null; child = walker.GetNextSibling(child))
            //{
            //    var w = walker.GetNextSibling(walker.GetFirstChild(child)).Current.Name;
            //    words.Add(w.Replace("-", "").Replace("・", "").Replace("・", ""));
            //}
            //return words;

            uint processid = 0;
            uint threadid  = GetWindowThreadProcessId(hwndlstWords, out processid);

            //open process
            IntPtr vProcess = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_READ |
                                          PROCESS_VM_WRITE, false, processid);

            //get the number of list item
            int count = SendMessage(hwndlstWords, LVM_GETITEMCOUNT, 0, 0);

            //allocate memory in this process address space
            IntPtr vPointer = VirtualAllocEx(vProcess, IntPtr.Zero, 4096, MEM_RESERVE |
                                             MEM_COMMIT, PAGE_READWRITE);

            var words = new List <string>();

            try
            {
                for (int i = 0; i < count; i++)
                {
                    byte[]   buffer = new byte[100];
                    LVItem[] vItem  = new LVItem[1];
                    vItem[0].mask       = LVIF_TEXT;
                    vItem[0].iItem      = i;
                    vItem[0].iSubItem   = 1;
                    vItem[0].cchTextMax = buffer.Length;
                    vItem[0].pszText    = (IntPtr)((int)vPointer + Marshal.SizeOf(typeof(LVItem)));

                    uint vNumberOfBytesRead = 0;

                    //write the struct to the memory of target process
                    WriteProcessMemory(vProcess, vPointer, Marshal.UnsafeAddrOfPinnedArrayElement(vItem, 0),
                                       Marshal.SizeOf(typeof(LVItem)), ref vNumberOfBytesRead);

                    //let the target process read item text to this struct
                    SendMessage(hwndlstWords, LVM_GETITEMTEXT, i, vPointer.ToInt32());

                    //read this struct
                    ReadProcessMemory(vProcess, (IntPtr)((int)vPointer + Marshal.SizeOf(typeof(LVItem))),
                                      Marshal.UnsafeAddrOfPinnedArrayElement(buffer, 0), buffer.Length, ref vNumberOfBytesRead);

                    var w = Marshal.PtrToStringUni(Marshal.UnsafeAddrOfPinnedArrayElement(buffer, 0));

                    //add this item text to array
                    words.Add(w.Replace("-", "").Replace("・", "").Replace("・", ""));
                }
            }
            finally
            {
                VirtualFreeEx(vProcess, vPointer, 0, MEM_RELEASE);
                CloseHandle(vProcess);
            }
            return(words);
        }
Exemple #7
0
        public System.Windows.Forms.ListViewItem CreateVirtualListViewItem()
        {
            LVItem lvit = new LVItem();
            lvit.Text = Date.ToLongDateString();
            if (PrevItem == null)
            {
                lvit.SubItems.Add(Fuel.ToString());
                lvit.SubItems.Add(Ammo.ToString());
                lvit.SubItems.Add(Steel.ToString());
                lvit.SubItems.Add(Bauxite.ToString());
                lvit.SubItems.Add(FastRepair.ToString());
                lvit.SubItems.Add(FastBuild.ToString());
                lvit.SubItems.Add(Devel.ToString());
                lvit.SubItems.Add(Updater.ToString());
            }
            else
            {
                int diff = Fuel - PrevItem.Fuel;
                lvit.SubItems.Add(string.Format("{0}{1:(+#);(-#); }", Fuel, diff));

                diff = Ammo - PrevItem.Ammo;
                lvit.SubItems.Add(string.Format("{0}{1:(+#);(-#); }", Ammo, diff));

                diff = Steel - PrevItem.Steel;
                lvit.SubItems.Add(string.Format("{0}{1:(+#);(-#); }", Steel, diff));

                diff = Bauxite - PrevItem.Bauxite;
                lvit.SubItems.Add(string.Format("{0}{1:(+#);(-#); }", Bauxite, diff));

                diff = FastRepair - PrevItem.FastRepair;
                lvit.SubItems.Add(string.Format("{0}{1:(+#);(-#); }", FastRepair, diff));

                diff = FastBuild - PrevItem.FastBuild;
                lvit.SubItems.Add(string.Format("{0}{1:(+#);(-#); }", FastBuild, diff));

                diff = Devel - PrevItem.Devel;
                lvit.SubItems.Add(string.Format("{0}{1:(+#);(-#); }", Devel, diff));

                diff = Updater - PrevItem.Updater;
                lvit.SubItems.Add(string.Format("{0}{1:(+#);(-#); }", Updater, diff));
            }

 
            lvit.Info = this;

            return lvit;
        }
Exemple #8
0
        public System.Windows.Forms.ListViewItem CreateVirtualListViewItem()
        {
            LVItem lvit = new LVItem();
            lvit.Text = Number.ToString();
            lvit.SubItems.Add(Date.ToString());
            lvit.SubItems.Add(AreaName);
            lvit.SubItems.Add(QuestName);
            lvit.SubItems.Add(string.Join(",", Member));
            lvit.SubItems.Add(SucceededMsg);
            lvit.SubItems.Add(Material.Fuel.ToString());
            lvit.SubItems.Add(Material.Ammo.ToString());
            lvit.SubItems.Add(Material.Steel.ToString());
            lvit.SubItems.Add(Material.Bauxite.ToString());
            lvit.SubItems.Add(string.Join(",", Item));
            lvit.Info = this;

            return lvit;
        }
Exemple #9
0
        /// <summary>
        /// カスタマイズされたリストビューアイテムを生成
        /// </summary>
        /// <returns></returns>
        public System.Windows.Forms.ListViewItem CreateVirtualListViewItem()
        {
            LVItem lvit = new LVItem();
            lvit.Text = Number.ToString();
            lvit.SubItems.Add(Date.ToString());
            lvit.SubItems.Add(AreaName);
            lvit.SubItems.Add(Friend.ToString());
            lvit.SubItems.Add(Foe.ToString());
            lvit.SubItems.Add(Rank);
            lvit.SubItems.Add(ShipDropped);
            lvit.Info = this;

            return lvit;
        }
Exemple #10
0
        public System.Windows.Forms.ListViewItem CreateVirtualListViewItem()
        {
            LVItem lvit = new LVItem();
            lvit.Text = Number.ToString();
            lvit.SubItems.Add(Date.ToString());
            lvit.SubItems.Add(ItemName);
            lvit.SubItems.Add(ItemType);
            lvit.SubItems.Add(Resource.Fuel.ToString());
            lvit.SubItems.Add(Resource.Ammo.ToString());
            lvit.SubItems.Add(Resource.Steel.ToString());
            lvit.SubItems.Add(Resource.Bauxite.ToString());
            lvit.SubItems.Add(SecretaryShip);
            lvit.SubItems.Add(OfficeLv.ToString());
            lvit.Info = this;

            return lvit;
        }