Example #1
0
        // some code might be scuffed cuz visual studio deleted 2 days worth of progress and got it off of dnspy

        private void RobloxProcessTimer_Tick(object sender, EventArgs e)
        {
            foreach (Process p in Process.GetProcessesByName("RobloxPlayerBeta"))
            {
                if (!RbxProcesses.Any(x => x.RobloxProcess.MainWindowHandle == p.MainWindowHandle))
                {
                    RbxProcess rbx = new RbxProcess(p);
                    RbxProcesses.Add(rbx);

                    Task.Run(() =>
                    {
                        Task.Delay(1000);
                        DateTime setupTime = DateTime.Now;
                        rbx.Setup();

                        do
                        {
                            Task.Delay(500);
                        }while (string.IsNullOrEmpty(rbx.UserName) && (DateTime.Now - setupTime).TotalSeconds < 5.0);

                        if (rbx.Working && p.Responding)
                        {
                            p.EnableRaisingEvents = true;
                            p.Exited += new EventHandler(RobloxProcess_Exited);
                            rbx.Index = AddInviteLinkItem(rbx.UserName);
                        }
                        else
                        {
                            RbxProcesses.Remove(rbx);
                        }
                    });
                }
            }
        }
Example #2
0
        private void InviteLinks_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (InviteLinks.SelectedIndex < 0 || InviteLinks.SelectedItem == null)
            {
                return;
            }

            RbxProcess rbx = RbxProcesses.FirstOrDefault(x => x.UserName == (string)InviteLinks.SelectedItem);

            if (rbx != null)
            {
                Clipboard.SetText(string.Format("<rbx-join://{0}/{1}>", rbx.PlaceId, rbx.JobId));
                MessageBox.Show("Copied to Clipboard!");
            }
        }
Example #3
0
        private void RobloxProcess_Exited(object sender, EventArgs e)
        {
            Process Exited = (Process)sender;

            RbxProcess process = RbxProcesses.FirstOrDefault(x => x.RobloxProcess == Exited);

            if (process == null)
            {
                return;
            }

            RbxProcesses.Remove(process);

            for (int Index = 0; Index < InviteLinks.Items.Count; Index++)
            {
                if ((string)InviteLinks.Items[Index] == process.UserName)
                {
                    RemoveInviteLinkItem(Index);
                    break;
                }
            }
        }