private void MainForm() { //Startup FormClosing += OnFormClosing; Resize += PopTartForm_Resize; Application.ApplicationExit += OnApplicationExit; exitToolStripMenuItem.Click += exitToolStripMenuItem_Click; notify_master.ContextMenuStrip = contextMenuStrip1; synth.SetOutputToDefaultAudioDevice(); synth.Volume = 50; synth.Rate = 1; LoadSettings(); mi_popuptoggle.Checked = PoptartSettings.PopupToggle; mi_voicetoggle.Checked = PoptartSettings.VoiceToggle; mi_roulettetoggle.Checked = PoptartSettings.RouletteToggle; startup = true; //Get API Data APIHelper.GetAPIData(); //Attach to FFXIV var attach = FFXIVInterface.Attach(); if (attach) { _attachcts = new CancellationTokenSource(); MemoryTask = new Task(() => { _call = CallFfxivMemory(_attachcts.Token); }, _memoryTask.Token); MemoryTasks.Add(MemoryTask); MemoryTasks.Run(MemoryTask); notify_master.ShowBalloonTip(2000, @"FFXIV PopTart", @"Ready to Go!", ToolTipIcon.Info); } else { Console.WriteLine(@"Unable to attach. Are you running DX11?"); } notifyX = new Notify { ShowInTaskbar = false }; notifyX.ShowDialog(); notifyX.Left = -16384; }
private async Task CallFfxivMemory(CancellationToken ct) { while (!ct.IsCancellationRequested) { await Task.Delay(300, ct); var processes = Process.GetProcessesByName("ffxiv_dx11"); if (processes.Length <= 0) { _attachcts.Cancel(); continue; } if (!listen) { continue; } FFXIVInterface.Loop(); } }