Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2012, 18:48   #1
Faton 11
Пользователь
 
Регистрация: 04.10.2011
Сообщений: 74
По умолчанию Доступ к порту 'СОМ1' закрыт

Добрый день! Программа заключается в передачи по сом-порту значений, введенных в ТеxtBox. Это происходит при нажатии кнопки Button. А точнее, не происходит, т.к. выходит ошибка "Доступ к порту 'СОМ1' закрыт". Ничего не помогает, что делать?
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
 
 
namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        SerialPort port;
        public Form1()
        
       
        {
            InitializeComponent();
            port = new SerialPort("COM1");
            port.Open();
            
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            if (port.IsOpen)
            {
                byte[] send = new byte[256];//текст 1-ого текстбокса, 2-ого,3-го
                port.Write(send, 0, 3);
            }
            port.Close();
 
        }
 
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
           string message = Convert.ToString(textBox1.Text);
           port.WriteLine(message);
        }
 
       
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            port.Close();
        }
    }
}
Faton 11 вне форума Ответить с цитированием
Старый 17.06.2012, 21:24   #2
Defunate
Пользователь
 
Регистрация: 11.09.2010
Сообщений: 83
По умолчанию

Я конечно могу ошибаться,но как нам говорил ещё наш преподаватель:"Запомните детки,Билл Гейтс закрыл доступ к портам через виндовс,делайте это через дос))"
Defunate вне форума Ответить с цитированием
Старый 17.06.2012, 22:08   #3
iukash
учу английский...
Форумчанин
 
Аватар для iukash
 
Регистрация: 04.04.2009
Сообщений: 480
По умолчанию

А он есть этот COM1? В системе в компортах такой существует?
Еще можно открытие порта поместить в try и посмотреть что пишет эксепшн
Код:
try
   {
      serialPort.Open();
   }
catch (Exception ex)
   {
       MessageBox.Show(ex.Message);
   }
"Мы можем что-то изменить и своими силами..."
"Начнешь с себя, примером ближнему поможешь..."
iukash вне форума Ответить с цитированием
Старый 17.06.2012, 23:08   #4
Faton 11
Пользователь
 
Регистрация: 04.10.2011
Сообщений: 74
По умолчанию

СОМ1 точно есть, и есть СОМ2 есть тоже. А эксепшн так и пишет: "доступ к порту 'СОМ1' закрыт" и ни словом больше =(
Faton 11 вне форума Ответить с цитированием
Старый 18.06.2012, 09:32   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...чего гадать, возьмите ComptPort или hypertrm или т.д. и попробуйте ими открыть порт COM1, если они открывают - проблема в вашем коде. Если нет, то он занят.

Цитата:
Я конечно могу ошибаться,но как нам говорил ещё наш преподаватель:"Запомните детки,Билл Гейтс закрыл доступ к портам через виндовс,делайте это через дос))"
Билли по этому поводу говорит это http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 18.06.2012, 16:03   #6
Faton 11
Пользователь
 
Регистрация: 04.10.2011
Сообщений: 74
По умолчанию

"Сom Port Toolkit" в статусе портов пишет, что СОМ1, СОМ2 доступны
Faton 11 вне форума Ответить с цитированием
Старый 18.06.2012, 16:19   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Я конечно могу ошибаться,но как нам говорил ещё наш преподаватель:"Запомните детки,Билл Гейтс закрыл доступ к портам через виндовс,делайте это через дос))"
скажу это своей программе, а то она не знает и работает с COM-портом, а нельзя...
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 19.06.2012, 00:15   #8
Faton 11
Пользователь
 
Регистрация: 04.10.2011
Сообщений: 74
По умолчанию

теперь ошибок не возникает, но когда вбиваю значение в форму и отправляю по СОМ1, не могу проследить этого в "Сom Port Toolkit", т.к. он считает этот порт занятым. Как так может быть?
Faton 11 вне форума Ответить с цитированием
Старый 04.07.2012, 15:20   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...переключите Сom Port Toolkit в режим сниффера, если у вас старая версия или новая купленная, либо используйте Portmon.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доступ к lpt порту в java ovram Общие вопросы по Java, Java SE, Kotlin 8 13.01.2011 12:35
Передать в СОМ1 CTRL+BREAK vipkursk Общие вопросы Delphi 2 21.05.2010 09:26
Закрыт доступ на форум,как быть? Miha62 Помощь студентам 16 05.05.2009 15:17
Доступ к ИК порту ЧИЖ Win Api 4 09.05.2007 20:41
Доступ к com порту для нескольких приложений Lexx Win Api 11 06.04.2007 20:10