private void processTick()
        {
            if (gameProcessName != null)
            {
                foreach (var process in Process.GetProcesses().Where(x => x.Id == gameProcess))
                {
                    if (process.HasExited || process.ProcessName.ToLower() != gameProcessName)
                        break;
                    return;
                }
                gameProcessName = null;
                Thread.Sleep(5000);
                foreach (var process in Process.GetProcesses())
                {
                    if (process.Id == uplayProcess)
                    {
                        process.Kill();
                    }
                }
                return;
            }

            Win32API.EnumWindows((hwnd, data) =>
            {
                StringBuilder sb = new StringBuilder(1024);
                Win32API.GetClassName(hwnd, sb, sb.Capacity);
                if(sb.ToString() == "UplayPCWindowClass")
                {
                    Win32API.SetForegroundWindow(hwnd);

                    var inputs = new List<Win32API.INPUT>();

                    var keyInput = new Win32API.INPUT() {type = 1, U = new Win32API.InputUnion()};

                    keyInput.U.ki = new Win32API.KEYBDINPUT();
                    keyInput.U.ki.wVk = Win32API.VirtualKeyShort.TAB;
                    inputs.Add(keyInput);

                    keyInput.U.ki.time = 5;
                    keyInput.U.ki.dwFlags = Win32API.KEYEVENTF.KEYUP;
                    inputs.Add(keyInput);

                    keyInput.U.ki.time = 10;
                    keyInput.U.ki.wVk = Win32API.VirtualKeyShort.SPACE;
                    keyInput.U.ki.dwFlags = 0;
                    inputs.Add(keyInput);

                    keyInput.U.ki.time = 15;
                    keyInput.U.ki.dwFlags = Win32API.KEYEVENTF.KEYUP;
                    inputs.Add(keyInput);

                    Win32API.SendInput(inputs.Count, inputs.ToArray(), Win32API.INPUT.Size);

                    Thread.Sleep(500);

                    foreach (var process in Process.GetProcesses())
                    {
                        if (process.ProcessName.ToLower() == "uplay")
                        {
                            uplayProcess = process.Id;
                            var list = ListChildProcesses(process.Id);
                            if (list.Count == 0)
                                return true;
                            var child = list.First();
                            gameProcessName = child.Item1.ToLower().Replace(".exe","");
                            gameProcess = child.Item2;
                        }
                    }
                }
                return true;
            }, 0);
        }
Example #2
0
        private void processTick()
        {
            if (gameProcessName != null)
            {
                foreach (var process in Process.GetProcesses().Where(x => x.Id == gameProcess))
                {
                    if (process.HasExited || process.ProcessName.ToLower() != gameProcessName)
                    {
                        break;
                    }
                    return;
                }
                gameProcessName = null;
                Thread.Sleep(5000);
                foreach (var process in Process.GetProcesses())
                {
                    if (process.Id == uplayProcess)
                    {
                        process.Kill();
                    }
                }
                return;
            }

            Win32API.EnumWindows((hwnd, data) =>
            {
                StringBuilder sb = new StringBuilder(1024);
                Win32API.GetClassName(hwnd, sb, sb.Capacity);
                if (sb.ToString() == "UplayPCWindowClass")
                {
                    Win32API.SetForegroundWindow(hwnd);

                    var inputs = new List <Win32API.INPUT>();

                    var keyInput = new Win32API.INPUT()
                    {
                        type = 1, U = new Win32API.InputUnion()
                    };

                    keyInput.U.ki     = new Win32API.KEYBDINPUT();
                    keyInput.U.ki.wVk = Win32API.VirtualKeyShort.TAB;
                    inputs.Add(keyInput);

                    keyInput.U.ki.time    = 5;
                    keyInput.U.ki.dwFlags = Win32API.KEYEVENTF.KEYUP;
                    inputs.Add(keyInput);

                    keyInput.U.ki.time    = 10;
                    keyInput.U.ki.wVk     = Win32API.VirtualKeyShort.SPACE;
                    keyInput.U.ki.dwFlags = 0;
                    inputs.Add(keyInput);

                    keyInput.U.ki.time    = 15;
                    keyInput.U.ki.dwFlags = Win32API.KEYEVENTF.KEYUP;
                    inputs.Add(keyInput);

                    Win32API.SendInput(inputs.Count, inputs.ToArray(), Win32API.INPUT.Size);

                    Thread.Sleep(500);

                    foreach (var process in Process.GetProcesses())
                    {
                        if (process.ProcessName.ToLower() == "uplay")
                        {
                            uplayProcess = process.Id;
                            var list     = ListChildProcesses(process.Id);
                            if (list.Count == 0)
                            {
                                return(true);
                            }
                            var child       = list.First();
                            gameProcessName = child.Item1.ToLower().Replace(".exe", "");
                            gameProcess     = child.Item2;
                        }
                    }
                }
                return(true);
            }, 0);
        }