Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование (VB,C#,ASP,.NET): новости, советы, примеры


Выпуск # 646

Очередной выпуск рассылки! За последнее время на сайте произошло столько всего, столько всего, что все просто не уместилось в этот выпуск! Но ничего, ведь вы всегда можете ознакомиться со всеми обновлениями непосредственно посетив сайт. Кстати, помимо изменения в содержании Kbyte.Ru, появлении новых интересных материалов, проект постоянно совершенствуется технически, и вы можете принять в этом непосредственное участие, присылая свои идеи и предложения.
Надеюсь, этот выпуск будет интересен для вас. Если вы хотите увидеть в следующих выпусках что-то конкретное, напишите мне об этом на ящик subscribe@kbyte.ru.


Содержание выпуска

Читайте в этом выпуске:

Если у вас есть вопросы по программированию или работе с компьютером, не стесняйтесь, спрашивайте.

Форумы Kbyte.Ru

На форумах Kbyte.Ru постоянно появляются новые интересные темы и обсуждения. В этом выпуске представлены лишь новые темы, с момента прошлой рассылки.

Кстати, любой желающий может на форумах Kbyte.Ru совершенно свободно получить помощь грамотных специалистов в области программирования, да и в целом информационных технологий.

Задать свой вопрос прямо сейчас

Lisp @Marilyn 13.06.2011 13:22
Здравствуйте.
Можете помочь с задачами по лиспу?...
1. Найти наибольший общий делитель НОД (M, N). Указание: искать НОД через вычитание из большего числа меньшего.

[- к содержанию -]

Здравствуйте. Подскажите, как получить идентификатор устройства (требуется определить, что воткнута именно флэшка). Что - то вроде GetDeviceId для Windows Forms

[- к содержанию -]

Ответ #1 @[i]Pro 12.06.2011 23:52
На VB.NET

 Public Sub getDevices()
    'обнаружение подключенных на компьютере USB накопителей, их ID 
    Dim objWMI, objLogicalDisks, objLD 
    Dim objPartitions, objPart, objDrives, objDrive 
    Dim strComputer 
 
    strComputer = "." 
    objWMI = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & strComputer & "\root\cimv2") 
    objLogicalDisks = objWMI.ExecQuery _ 
              ("SELECT * FROM Win32_LogicalDisk WHERE DriveType=2") 
    For Each objLD In objLogicalDisks 
      objPartitions = objWMI.ExecQuery _ 
                  ("ASSOCIATORS OF {Win32_LogicalDisk.DeviceID=""" & _ 
                  objLD.DeviceID & _ 
                  """} WHERE AssocClass=Win32_LogicalDiskToPartition") 
      For Each objPart In objPartitions 
        objDrives = objWMI.ExecQuery _ 
                  ("ASSOCIATORS OF {Win32_DiskPartition.DeviceID=""" & _ 
                  objPart.DeviceID & _ 
                  """} WHERE AssocClass=Win32_DiskDriveToDiskPartition") 
        For Each objDrive In objDrives 
          MsgBox(objDrive.Caption & " (" & objLD.DeviceID & ")  " & objDrive.PnPDeviceID) 
          objDrive = Nothing 
          objDrives = Nothing 
        Next 
        objPart = Nothing 
        objPartitions = Nothing 
      Next 
    Next 
    objLD = Nothing 
    objLogicalDisks = Nothing 
    objWMI = Nothing 
  End Sub

На C# думаю переведете уж сами как нибудь

[- к содержанию -]

Добавить свой ответ в эту тему
Собственно..
и вопрос сразу не по теме.
как определить что гад . ой кто-то вошел под Novell ..
это вопрос, а дальше давайте про AD ,,,

[- к содержанию -]

Скажите тип кнопок-панели Office 2007 официально закрыт,?
т.е. только за деньги.. точнее запрещено его производить.
типа никто кроме меня ?
гдето видел продажу прав - даже не компонентов а прав на них..
завтра пойду запантентую крестик.. обмелионерусь..

[- к содержанию -]

Я задал вопрос экспертам. каким образом происходят события..
т.е. в какой момент я могу определить что форма создана и можно к ее компонентам обращаться.
ответ.. простите немного не то.. т.е. ну не от экспертов.
После создания экземпляра формы вы можете обратиться к любым компонентам формы объявленным как public. Причем совершенно не важно, вызвали вы метод Show чтобы показать форму или нет, компоненты будут доступны в любом случае.
ну коль ответить умным гуру, не возможно , поэтому спрошу тут еще раз.
при инициализации формы ( при запуске приложения )я хочу провести кучу действий. при этом (в частном случае ) запускаю поток который мне творит там чтото
и из него я хочу в компоненты (пусть будет Label ) хочу чёто сунуть - но в ответ получаю, форма не создана и обращаться к ней вы не можете.
- по этому и возник вопрос где я могу обратиться к компонентам формы на этапе ее создания.. - ответ экспертов , простите, непонятен.
а переписка с ними невозможна. :( В С++Builder я обходил это тем что в функции инициализации запускал таймер на 100 милисекунд
функция инициализации выходила - форма создана. дальше вперед.. на C# не проходит такой фокус. выход я найду всегда , но вопрос а как должно быть ? собственно..не сильно важно уже - но для общего образования .. эксперты ... угнетает меня это слово блин..

[- к содержанию -]

Ответ #1 @Shadowmaster 11.06.2011 13:36
ну коль ответить умным гуру, не возможно , поэтому спрошу тут еще раз.
Вот только ехидничать не нужно, если нужен диалог, вопрос нужно было сразу задавать на форум

Почитал вопрос в системе эксперт, ответ вполне соответствует вопросу.
при инициализации формы ( при запуске приложения )
Инициализация формы и запуск приложения - это такие же разные вещи, как восход солнца и пробуждение человека
В приложении форма может не запускаться, но при этом приложение будет работать.

В приложениях Windows Forms на C#, если нужно что-то сделать до запуска главной формы, можно "ковырять" класс Program.cs:
[STAThread] 
static void Main(string[] args) 
{ 
 // делаем что хотим, можно, например сплеш-экран показать 
 // создаем основную форму 
 frmMain MainForm = new frmMain(); 
 // делаем что хотим, можно например загрузить какие-нибудь данные в основную форму 
 // запускаем основную форму 
 Application.Run(MainForm); 
}
запускаю поток который мне творит там чтото
и из него я хочу в компоненты (пусть будет Label ) хочу чёто сунуть - но в ответ получаю, форма не создана и обращаться к ней вы не можете.
Если есть ошибка, значит есть код. Нужен код, чтобы понять в чем ошибка. Возможно неправильная работа с потоками или неправильная инициализация класса (ой, формы).
эксперты ... угнетает меня это слово блин..
Что, тоже хочешь в команду экспертов? Меня вот не взяли, т.к. система уже давно не работает

Я вот тоже на днях ехал в автобусе, а над человеком, который управляет этим средством передвижения висит надпись "Водитель", это вызвало у меня бурю эмоций, как этот кретин посмел себя назвать водителем?!!! Плевать на то что у него права категории А и Б и Цы, плевать на то что он уже 40 лет управляет автобусом. На ср*ть что у этого ушлепка за всю практику вождения автобусов не было ни одной аварии! Как эта сволочь посмела себя назвать водителем??!!!!! Это ж просто невероятное хамство!!! Да я..., да я...., я..., Я десять, целых десять лет! управляю велосипедом!!! ВЕЛО-СИ-ПЕ-ДОМ!!! Вы слышите!! И я не в коей мере не посмею назвать себя ВОДИТЕЛЕМ! А этот автобусный червь называет себя водителем, это ж просто смешно! Расстреливать таких нужно! РАСС-ТРЕ-ЛИ-ВАТЬ! Прям к стенке и расстреливать!

[- к содержанию -]

Ответ #2 @Shadowmaster 11.06.2011 13:43
Кстати, порядок событий при создании и запуске (выводе) формы можно посмотреть в режиме отладки, создав обработчики всех событий и расставив брейкпоинты.
При создании любой формы первым вызывается конструктор, из которого обычно вызывается метод InitializeComponent, который создает элементы на форме. Если требуется работа с элементами формы из конструктора, то делать это нужно после их инициализации (после InitializeComponent).

PS: Оказывается водитель не считает себя водителем, это все общество виновато, так что я зря разорялся.

[- к содержанию -]

Добавить свой ответ в эту тему
TextBox @Дмитрий 10.06.2011 18:47
Здравствуйте, прошу помочь. Вот в этом видео уроке есть 2 вида TextBox.... для чата, но когда я создаю их я иогу их изменять только в длине, а не в ширине. Так вот как изменить их в ширину?

[- к содержанию -]

Ответ #1 @Aleksey Nemiro 11.06.2011 17:28
Немцы в городе!

Примеры разнообразных чатов на Visual Basic .NET можно найти у нас на сайте.

Что касается TextBox-ов, то длина и ширина - это одно и тоже
Как я понимаю, речь идет о высоте (Height). Нужно поставить у TextBox-а свойство Multiline = True. +возможно понадобится изменить свойство ScrollBars.

[- к содержанию -]

Добавить свой ответ в эту тему

Все темы и обсуждения

Исходные коды

Как получить элемент в TreeView по координатам мышки?

Visual Basic .NET: Элементы управления Windows @Команда Kbyte.Ru 15.06.2011 14:16
В этом примере показано, как выбрать элемент (нод) в TreeView при клике правой кнопкой мышки. Как известно, выделение элемента (нода) в TreeView происходит при клике левой кнопкой мышки, это может не удобно, если к TreeView прикручено контекстное меня для управления элементами (нодами) списка.
Private Sub TreeView1_NodeMouseClick(sender As System.Object, e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick 
  If e.Button = Windows.Forms.MouseButtons.Right Then 
    Dim n As TreeNode = TreeView1.GetNodeAt(e.X, e.Y) 
    'выделить элемент 
    'If TreeView1.GetNodeAt(e.X, e.Y) IsNot Nothing Then 
    '  TreeView1.SelectedNode = TreeView1.GetNodeAt(e.X, e.Y) 
    'End If 
  End If 
End Sub

[- к содержанию -]

Конвертирование RTF в HTML

Visual Basic .NET: Строки @Ханли Лоллер 13.06.2011 18:35
Небольшая функция на Visual Basic .NET, которая позволяет конвертировать RTF-текст в HTML с сохранением форматирования. Конвертирование делает при помощи библиотеки Microsoft.Office.
Public Function sRTF_To_HTML(ByVal sRTF As String) As String 
 
  Dim MyWord As Microsoft.Office.Interop.Word.Application 
  Dim oDoNotSaveChanges As Object = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges 
  Dim sReturnString As String = "" 
  Dim sConvertedString As String = "" 
  Try 
    MyWord = CreateObject("Word.application") 
    MyWord.Visible = False 
    MyWord.Documents.Add() 
 
 
    Dim doRTF As New System.Windows.Forms.DataObject 
    doRTF.SetData("Rich Text Format", sRTF) 
    Clipboard.SetDataObject(doRTF) 
    MyWord.Windows(1).Selection.Paste() 
    MyWord.Windows(1).Selection.WholeStory() 
    MyWord.Windows(1).Selection.Copy() 
    sConvertedString = Clipboard.GetData(System.Windows.Forms.DataFormats.Html) 
    'Remove some leading text that shows up in the email 
    sConvertedString = sConvertedString.Substring(sConvertedString.IndexOf("<html")) 
    'Also remove multiple  characters that somehow got inserted  
    sConvertedString = sConvertedString.Replace("Â", "") 
    sReturnString = sConvertedString 
    If Not MyWord Is Nothing Then 
      MyWord.Quit(oDoNotSaveChanges) 
      MyWord = Nothing 
    End If 
  Catch ex As Exception 
    If Not MyWord Is Nothing Then 
      MyWord.Quit(oDoNotSaveChanges) 
      MyWord = Nothing 
    End If 
    MsgBox("Error converting Rich Text to HTML") 
  End Try 
  Return sReturnString 
End Function

К данном исходному коду прилагаются файлы примеров. Скачать.

[- к содержанию -]

Все исходные коды

Вакансии в IT

Разработчик ПО

Россия, Москва | Работа в офисе | 70 000.00 RUB

Разработчик ПО

Россия, Москва | Работа в офисе | 70 000.00 RUB

Программист-разработчик C#.NET

Россия, Москва | Работа в офисе | 50 000.00 RUB

Разработчик ASP.NET

Россия, Москва | Работа в офисе | 80 000.00 RUB

Все вакансии в IT · Создать резюме

[- к содержанию -]

Новости мира IT

Mail.Ru выпустила онлайновую версию ICQ

Mail.Ru Group сообщила о запуске продукта ICQ On-Site  – веб-версии известного мессенджера, которая может быть установлена на любом независимом  ресурсе. Теперь во время серфинга в Сети интернет-пользователи могут без загрузки клиента общаться по ICQ одновременно с просмотром сайтов, а у владельцев сайтов, интернет-магазинов, онлайн-изданий появится новый инструмент повышения лояльности аудитории.

Как говорят разработчики, ICQ On-Site – это решение для владельцев онлайн-площадок, которые заинтересованы в развитии своих проектов и предоставлении пользователям дополнительных возможностей.

16.06.2011 12:29 · Категория: Бизнес в IT · Источник: CyberSecurity.ru

[- к содержанию -]

Lenovo начала поставку серверов на базе новых Xeon E3

Lenovo стала первым крупным мировым вендором, представившим в продаже серверы начального уровня на базе процессоров Intel Xeon E3-1200 с микроядром Sandy Bridge-DT. Решения данного  класса в первую очередь предназначенные для малого и среднего бизнеса. В Lenovo говорят, что серверы выполнены в корпусе Tower, что позволяет разместить их буквально на полу в офисе.

Напомним, что первые Xeon E3 корпорация Intel начала поставлять в марте и апреле, однако тогда они предназначались только для однопроцессорных серверов и рабочих станций. Новые же процессоры могут работать в двухпроцессорных серверах.

Все новые серверы работают на четырехъядерных процессорах Xeon E3, исключение составляет лишь E3-1220L, который имеет два ядра и потребляет всего 20 ватт. Тактовая частота работы новых чипов составляет 2,4-3,5 ГГц (в зависимости от моделей). Все процессоры используют чипсеты Cougar Point от Intel.

Учитывая то обстоятельство, что серверы ориентированы на СМБ, максимальный объем их оперативной памяти составляет всего 16 Гб (4 чипа DDR3 по 4 Гб каждый), в то же время, новые серверы уже поддерживают память ECC с коррекцией ошибок и имеют поддержку интерфейсов SATAIII 6Гбит/сек, работая с SATA-дисками на 250, 500, 750, 1000 и 2000 Гб. Отдельно компания поставляет RDX-картриджи, позволяющие размещать в серверах 2,5-дюймовые диски.

Продаваемые серверы совместимы со всеми наиболее распространенными ОС, однако официально они совместимы с Microsoft Windows Server 2008 R2 Foundations, Standard и Enterprise Edition, а также Windows Small Business Server 2011 Essentials, Standard и Premium Edition. Также серверы поддерживают продукты VMware для виртуализации.

16.06.2011 12:28 · Категория: Железо · Источник: CyberSecurity.ru

[- к содержанию -]

Google запустит голосовой поиск на компьютерах

Поисковик Google научат воспринимать голосовые запросы и распознавать картинки. Новые функции получат названия "Голосовой поиск" и "Визуальный поиск" и будут запущены в ближайшие дни. Ранее эти возможности были доступны только пользователям мобильных приложений Google.

16.06.2011 12:03 · Категория: Бизнес в IT · Источник: Lenta.ru

[- к содержанию -]

Все новости


Подпишитесь на тематические RSS-ленты Kbyte.Ru, чтобы быть в курсе последних новостей:

Основная лента · Форумы (темы и сообщения) · Visual Basic 5.0/6.0 · Visual Basic .NET · C# (Си шарп) · Delphi · JavaScript · ActionScript · ASP .NET · ASP .NET MVC

Ищите Kbyte.Ru в социальных сетях FaceBook, ВКонтакте, Twitter.

Если вы занимаетесь программированием, то наверняка вам пригодятся хитрые инструменты.


Международный портал для программистов и разработчиков Kbyte.Ru основан в 2006 году. Целью портала является объединение программистов и специалистов IT-бизнеса, студентов и преподавателей для обмена опытом и знаниями, оказания помощи во всех делах и начинаниях в области IT.
Kbyte.Ru является парнёром компаний Mail.Ru Group, WebMoney Transfer, Ozon.Ru и др.
Выпуск рассылки подготовлен автоматически. Все права на материалы выпуска принадлежат Kbyte.Ru если иное не указано отдельно.


В избранное