Имеются два проекта(transmitter и receiver) C# Winodws forms .Net Framework 4.6, один из них по щелчку кнопки пишет в файл, а другой по таймеру читает из этого файла. Имеется функция в проекте transmitter
if(!Process.GetProcessesByName("receiver").Any())
Process.Start(@"C:\Users\имяпользователя\Documents\Visual Studio 2015\Projects\receiver\receiver\bin\Debug\receiver.exe");
которая открывает receiver, но в нем тогда не работает таймер, или текст не читается - в общем, проблема. Но если receiver запустить ручками из той же Debug папки, то он взаимодействует с файлом и спокойной читает из него текст, в том числе текст, который туда пишет transmitter.
В чем соль?
Проекты ресивер и трансмиттер на Яндекс Диске
Код формы проекта transmitter
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
using System.Threading;
namespace transmitter
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button_Receiver_Click(object sender, EventArgs e)
{
try
{
StreamWriter fileWrite = new StreamWriter(@"C:\Users\имяпользователя\Documents\Visual Studio 2015\Projects\receiver\receiver\bin\Debug\file.txt");
fileWrite.Write(textBox_input.Text);
fileWrite.Close();
}
catch
{
Thread.Sleep(300);
StreamWriter fileWrite = new StreamWriter(@"C:\Users\Имяпользователя\Documents\Visual Studio 2015\Projects\receiver\receiver\bin\Debug\file.txt");
fileWrite.Write(textBox_input.Text);
fileWrite.Close();
}
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
if (Process.GetProcessesByName("receiver").Any())
{
Process[] ps1 = Process.GetProcessesByName("receiver");
ps1[0].CloseMainWindow();
}
}
private void textBox_input_KeyDown(object sender, KeyEventArgs e)
{
Label_KeyDown.Text = Convert.ToString(e.KeyValue);
}
private void textBox_input_KeyUp(object sender, KeyEventArgs e)
{
Label_KeyUp.Text = Convert.ToString(e.KeyValue);
}
private void textBox_input_KeyPress(object sender, KeyPressEventArgs e)
{
Label_KeyPress.Text = Convert.ToString((int)e.KeyChar);
}
private void button_OpenReceiver_Click(object sender, EventArgs e)
{
if(!Process.GetProcessesByName("receiver").Any())
Process.Start(@"C:\Users\имяпользователя\Documents\Visual Studio 2015\Projects\receiver\receiver\bin\Debug\receiver.exe");
}
private void button_Transmitter_Click(object sender, EventArgs e)
{
textBox_Transmitter.Lines = textBox_input.Text.Split(' ', ',',',');
}
}
}
Код формы проекта receiver
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace receiver
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
try
{
StreamReader fileRead = new StreamReader(@"File.txt");
textBox1.Text = fileRead.ReadToEnd();
fileRead.Close();
}
catch
{
}
}
}
}
Проблема оказалась в том, что в проекте receiver файл.тхт искался по пути - @file.txt без полного пути, и видимо, раз ресивер запускался из папки трансмиттера, то файл и искался по пути @file.txt в папке трансмиттера.. жуть
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Код удаляет ударения, но также заменяет букву "й" на букву "и"
ссылка на сайт Сверху карты под header есть кнопка при ее нажатие всплывает окно с выбором файла через select box мне нужно программно выбрать файл...
Существует ли какая-нибудь библиотека для работы с текстом, то есть для создания текстового редактора?