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

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


Выпуск # 760

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


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

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

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

Форумы Kbyte.Ru

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

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

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

Стоит такая задача.

Есть файлы которые дублируют друг друга, однако находящиеся в разных каталогах. Следует, Используя API Win 32, найти файлы с одинаковыми именами, далее сравнить их содержимое и дать возможность удаления файлов дубликатов, ну и все это оформить в виде оконного приложения.
Программу надо написать на C#
прочитал вот эту статью, но только немного понял что нужно сделать http://kbyte.ru/ru/Programming/Articles.aspx?id=69&mode=art
Помогите пожалуйста!

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

Ответ #1 @Алексей Немиро 06.02.2014 19:15
Следует, Используя API Win 32
Зачем WinAPI? Это ж элементарная задача, она легко решается возможностями .NET Framework :)

Перебирать все файлы в каталогах нужно рекурсивно.
var startDir = new DirectoryInfo(@"C:\путь к каталогу");
List<FileInfo> allFiles = new List<FileInfo>();
GetFiles(startDir, allFiles);
// в коллекции allFiles будет список всех файлов
private void GetFiles(DirectoryInfo currentDir, List<FileInfo> allFiles)
{
  // получаем и запоминаем все файлы в каталоге
  FileInfo[] files = currentDir.GetFiles();
  allFiles.AddRange(files);
  // получаем и перебираем вложенные каталоги
  DirectoryInfo[] childs = currentDir.GetDirectories();
  foreach (DirectoryInfo d in childs)
  {
     GetFiles(d, allFiles);
  }
}
далее сравнить их содержимое
Проще всего сравнивать хэш-суммы файлов. Примерно так:
var md5 = new MD5CryptoServiceProvider();
byte[] file1Hash = md5.ComputeHash(File.Open(@"C:\Windows\System32\calc.exe", FileMode.Open, FileAccess.Read, FileShare.ReadWrite));
byte[] file2Hash = md5.ComputeHash(File.Open(@"C:\Windows\System32\notepad.exe", FileMode.Open, FileAccess.Read, FileShare.ReadWrite));
string file1HashString = String.Join("", file1Hash.Select(b => b.ToString("x2")));
string file2HashString = String.Join("", file2Hash.Select(b => b.ToString("x2")));
if (file1HashString == file2HashString)
{
  Console.WriteLine("Файлы одинаковые!");
}

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

Добавить свой ответ в эту тему
System.Net.Mail. @i32 06.02.2014 12:57
Алексей .Ты похоже не много слукавил касаясь темы BAT/.Что все можно прописать и через
System.Net.Mail.
 .Item(v_Conf & "sendusing") = 2
                    .Item(v_Conf & "smtpserver") = "smtp.mail.ru"
                    .Item(v_Conf & "smtpauthenticate") = 1
                    .Item(v_Conf & "sendusername") = "log"
                    .Item(v_Conf & "sendpassword") = "pass"
                    .Item(v_Conf & "smtpserverport") = 25
                    .Item(v_Conf & "smtpusessl") = False
                    .Item(v_Conf & "smtpconnectiontimeout") = 60
                    .Update()
                End With
                .send()
Такой вариант не идет..Посмотрел настройки БАТТа там smtpserver") = "Прокся"
smtpserverport") = 25
pop = 110
login = """"""
parol = """""
Получается мне надо сначало подключиться с логин и паролем к прокси .Потом только выйти на почту майл.ру.
Или ...Как то так.(незнаком с таким делом.....)
Из блаузеров стандарт IE -не пашет.Только МоЗИЛА (похоже заточена также)
Подскажи как тут можно выйти на Майл.ру..?Если я пароля прокси не знаю....

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

Ответ #1 @Алексей Немиро 06.02.2014 13:26
    Dim smpt As New System.Net.Mail.SmtpClient("адрес прокси-сервера", 25) '25 - порт
    smpt.Credentials = New System.Net.NetworkCredential("логин", "пароль")
    smpt.EnableSsl = True 'mail.ru на днях присылал письмо, что скоро (а может уже) они запретят обычные соединения и будет только SSL

    Dim msg As New System.Net.Mail.MailMessage("от_кого@mail.ru", "кому@mail.ru", "Тема", "Текст сообщения")
    'если ваше письмо написано в html-формате, то нужно
    'установить свойство IsBodyHtml = True
    'msg.IsBodyHtml = True
    'чтобы изменить кодировку письма,
    'используете свойство BodyEncoding
    'msg.BodyEncoding = Encoding.GetEncoding(1251)
    'отправляем сообщение
    smpt.Send(msg)

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

Ответ #2 @i32 06.02.2014 14:01
Спасибо попробую..Только завтра...

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

Добавить свой ответ в эту тему
Среда Visual Basic STUDIO’2010 Professional
Как добавить свойство "cmdCreateXML()" в файл "Resources.Designer.vb" ИСПОЛЬЗУЯ МЕНЮ среды STUDIO’2010 Professional?
Самому ручками нельзя вводить учитывая предупреждение
"Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае повторной генерации кода."
'''<summary>
        '''  Looks up a localized string similar to Create XML Programmatically.
        '''</summary>
        Friend ReadOnly Property cmdCreateXML() As String
            Get
                Return ResourceManager.GetString("cmdCreateXML", resourceCulture)
            End Get
        End Property
 End Module
Для события Click CommantButton обачно процедура создаётся как показано на снимке:
Спасибо.

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

Ответ #1 @Алексей Немиро 03.02.2014 19:14
Файлы *.Designer.vb создаются автоматически, их нельзя изменять. Любые изменения могут поломать проект, либо будут стерты.

Добавлять значения в файл ресурсов нужно визуально, в файл *.resx.

(Имя - это имя параметра ресурса, т.е. имя свойства)

В файле ресурсов могут быть разные типы значений. Переключаться между ними можно при помощи меню:

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

Добавить свой ответ в эту тему
The bat @i32 02.02.2014 20:45
Попытался на ВБ код перелопатить .Что то не идет.
Источник http://excelvba.ru/code/TheBAT
Последний вариант у меня ..
Shell("E:\Program Files\The Bat!\thebat.exe /USER=" & Emailot & ";TO=" & Chr(34) & Email & ";SUBJECT=" & subject & ";CONTENTS=" & Text & ";File=" & filess & ";/MINIMIZE;")
В чем может быть проблема...??? СПАСИБО...

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

Ответ #1 @Алексей Немиро 03.02.2014 12:04
В .NET для запуска процессов лучше использовать Process.Start.

В примере все параметры указаны в кавычках (Chr(34)), а у тебя только одна кавычка. Впрочем, с кавычками у меня тоже не работает. Нужно смотреть справочное руководство The Bat, какие команды и в каком виде он понимает.


В .NET можно легко отправлять письма через класс System.Net.Mail.

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

Ответ #2 @i32 03.02.2014 13:57
System.Net.Mail почему то не работает на работе .В отличее от дома..Но я не подгружал к проекту
библу Microsoft CDO for Windows 2000 library/ может поэтому..
Последний вариант - сделал дословно как написано.Но результат -0.Только скрывает приложение (тобишь /MINIMIZE; - работает)
  '''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim Text As String = "sdgsfd_fghrth_кенраерванкуе"
        Dim subject As String = "Приветики"       
        Dim Email As String = TextBox1.Text
        Dim strTO As String = "TO=" & Chr(34) & Email & Chr(34) ' адрес получателя
        MsgBox(strTO)
        Dim strSUBJECT As String = "SUBJECT=" & Chr(34) & Replace(subject, """", "`") & Chr(34) 'тема
        MsgBox(strSUBJECT)
        Dim strTEXT As String = "TEXT=" & Chr(34) & Text & Chr(34)
        Dim strATTACH As String = "ATTACH=" & Chr(34) & filess & Chr(34)
        MsgBox(strATTACH)
        Dim TheBatPath As String = "E:\Program Files\The Bat!\thebat.exe"
Shell(Chr(34) & TheBatPath & Chr(34) & " /MAIL;" & strTO & ";" & strSUBJECT & ";" & strTEXT & ";" & strATTACH & " /SENDALL; /MINIMIZE;")

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

Ответ #3 @Алексей Немиро 03.02.2014 14:30
System.Net.Mail почему то не работает на работе .В отличее от дома..
Возможно порты закрыты. Если The Bat работает, то нужно посмотреть, через какой порт он почту отправляет и указать аналогичный в System.Net.Mail.
Но я не подгружал к проекту
библу Microsoft CDO for Windows 2000 library/ может поэтому..
System.Net.Mail - это родная часть Framework, ему не нужны никакие дополнительные библиотеки.
Последний вариант - сделал дословно как написано.Но результат -0.Только скрывает приложение (тобишь /MINIMIZE; - работает)
У меня The Bat на этот код вообще не реагирует. Если The Bat закрыт, то просто запускается и не более. Версия 5.0.36.2

Нагуглил такой пример:
C:\Program Files (x86)\The Bat!\thebat.exe /MAILU="Алексей Немиро";TO=some@address.com
У меня работает. В ящике "Алексей Немиро" в папке "Исходящие" появляется письмо на адрес some@address.com


Вот полная строка параметров примера:
/MAILU=МойПочтовыйЯщик;TO=some@address.com;S=Провер ка;TEXT=C:\TEST\TEST.MSG

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

Ответ #4 @i32 03.02.2014 15:34
У меня 1.4.9. заработало. Доперло..- надо было еще в настройках проги
поставить галку по умолчанию (дополнительно).А то что в исходящих висит то
ТЕЛО письма надо отдельным файлом создавать .А там только путь прописать.
Все примеры рабочие мои оказались..
        Dim Text As String = "C:\wepkeys.txt"
        Dim subject As String = "Приветики"       
        Dim Email As String = TextBox1.Text
 Dim strTO As String = "TO=" & Chr(34) & Email & Chr(34) ' адрес получателя
        MsgBox(strTO)
        Dim strSUBJECT As String = "SUBJECT=" & Chr(34) & Replace(subject, """", "`") & Chr(34) 'тема
        MsgBox(strSUBJECT)
        Dim strTEXT As String = "TEXT=" & Chr(34) & Text & Chr(34)
        Dim strATTACH As String = "ATTACH=" & Chr(34) & filess & Chr(34)
        MsgBox(strATTACH)
        Dim TheBatPath As String = "E:\Program Files\The Bat!\thebat.exe"
Process.Start("E:\Program files\The Bat!\thebat.exe", "/MAIL;" & strTO & ";" & strSUBJECT & ";" & strTEXT & ";" & strATTACH & " /SENDALL; /MINIMIZE;")
System.Net.Mail - только порт нужен? Насколько я помню там вместо (В графе настроек) smtp.mail.ru (к примеру)
Стоял какой то прокси..

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

Ответ #5 @Алексей Немиро 03.02.2014 15:41
System.Net.Mail - только порт нужен? Насколько я помню там вместо (В графе настроек) smtp.mail.ru (к примеру)
Стоял какой то прокси..
Любые сетевые настройки можно повторить в System.Net.Mail. Если почта идет через прокси, то нужно его и указывать.

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

Добавить свой ответ в эту тему
Доброго времени суток всем.

По теме вопроса GOOOOOOGLE выдает варианты с использованием некоей

"IWshRuntimeLibrary"

в добавлении ссылок в проект такого в списке нет

Вопрос:
как сделать Imports IWshRuntimeLibrary?
или может как-то еще можно создать файл .lnk?

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

Ответ #1 @Сергей 02.02.2014 13:56
Извиняюсь, нашел..

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

Добавить свой ответ в эту тему
Как-то показывал эту "игрушку".
Их, в Торонто я настроил на +7. Так-то, у нас еще день.
Дарю их Вам.
Вы симпатичный и добрый парень. Желаю удачи и благополучия Вам и Вашим близким
Akiva

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

Ответ #1 @Akiva 02.02.2014 03:02
Пожалуйста, уберите вышеизложенное.
"Игрушка" с исходником. Исходя из местного времени и времени Greenwich-a,
можно настроить эти часы на необходимые временные зоны.


Так выглядит это мое извращение.

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

Добавить свой ответ в эту тему
По Greenwich-у @Akiva 31.01.2014 19:06
Собрал маленькую безделушку которая переключает
часовой пояс с Гринвича на местное и обратно.
Хочу подключить (к прим.) время Владивостока и не знаю как?

Исходник ниже

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

Ответ #1 @Алексей Немиро 31.01.2014 19:31
Есть класс TimeZoneInfo для работы с часовыми поясами.
'список часовых зон
For Each tz As TimeZoneInfo In TimeZoneInfo.GetSystemTimeZones()
  Console.WriteLine(tz.Id)
Next
'который час во Владивостоке
Console.WriteLine(TimeZoneInfo.ConvertTimeBySystemTimeZoneId(Now, "Vladivostok Standard Time"))
'или 
'MsgBox(TimeZoneInfo.ConvertTimeBySystemTimeZoneId(Now, "Vladivostok Standard Time"))
Console.ReadKey()

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

Ответ #2 @Akiva 31.01.2014 20:43
Алексей,я что-то не так делаю
?

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

Ответ #3 @Алексей Немиро 31.01.2014 21:07
Наверное имя неправильное. Можно писать только те имена, которые выводятся в списке (выше): tz.Id

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

Ответ #4 @Akiva 31.01.2014 22:14
Ввел из списка. Не пашет.
В любом случаи, спасибо тебе, Алексей.
C уважением, Akiva

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

Ответ #5 @Алексей Немиро 31.01.2014 23:08
Завтра проверю. Может регистр символов имеет значение, в моем примере Time с большой буквы написано...

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

Добавить свой ответ в эту тему · В теме есть еще 8 ответов. Смотреть все ответы.
Среда Visual Basic STUDIO’2010 Professional
в окне "Обозреватель решений" имеется Resources.resx
Как его создать?
Пробовал menu "View-Вид\Другие окна\Ресурсы" – не так.
Спасибо.

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

Ответ #1 @Алексей Немиро 31.01.2014 16:51
Как и другие файлы, через меню Проект -> Добавить новый элемент (Ctrl + Shift + A), либо через контекстное меню Обозревателя решений (правой кнопкой мышки, добавить новый элемент)

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

Ответ #2 @capetownn 03.02.2014 18:48
Большое спасибо!

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

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

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

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

Using xml in WPF

Visual Basic .NET: Работа с данными @Shark1 02.02.2014 14:40
Небольшой пример использования "xml" файла внедренного в сборку как Resource.

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

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

Folder Path Element

Visual Basic .NET: Файлы @Shark1 01.02.2014 22:25
Пример создания элемента управления для просмотра каталогов в операционной системе.

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

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

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

Вакансии в IT

Инженер-программист

Россия, Иркутск | Работа в офисе | 30 000,00 KBP

Программист 1 С

Россия, Красноярск | Работа в офисе | 50 000,00 KBP

ASP. NET-программист

Россия, Новосибирск | Работа в офисе | 60 000,00 KBP

Программист iPhone

Россия, Новосибирск | Работа в офисе | 60 000,00 KBP

Java/Android программист

Россия, Новосибирск | Работа в офисе | 60 000,00 KBP

Программист PHP

Россия, Новосибирск | Работа в офисе | 45 000,00 KBP

Программист 1С

Россия, Новосибирск | Работа в офисе | 50 000,00 KBP

Младший Java-разработчик

Россия, Новосибирск | Работа в офисе

Разработчик С++

Россия, Новосибирск | Работа в офисе

Java developer

Россия, Новосибирск | Работа в офисе

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

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

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

У нового смартфона HTC обнаружили три камеры

В Сети попал снимок еще не анонсированного смартфона HTC M8. Судя по фото, у смартфона будут три камеры: одна разместится на передней, а две — на задней панели. «Двойной» фотомодуль может использоваться для съемки 3D-видео или для съемки фото с возможностью постфокусировки.

06.02.2014 12:27 · Категория: Железо · Источник: Lenta.ru

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

Fujitsu анонсировала «ноутбук для бабушек»

Fujitsu анонсировала ноутбук Grannote, предназначенный для людей в возрасте от 60 лет. В компьютере, помимо подсветки клавиатуры, предусмотрена подсветка значков, обозначающих порты, а сами значки вынесены на панель с клавиатурой. Функция Awaseru Voice усиливает высокие частоты, плохо различимые людьми в возрасте.

06.02.2014 12:27 · Категория: Железо · Источник: Lenta.ru

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

Новым главой YouTube стала топ-менеджер Google Ads

Старший вице-президент Google Сьюзан Войжитски возглавит принадлежащий поисковику видеохостинг YouTube. Ранее Войжитски занимала должность руководителя рекламного подразделения Google Ads. Ранее команду YouTube возглавлял Салар Камангар, девятый по счету сотрудник нанятый Google.

06.02.2014 12:26 · Категория: Бизнес в 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 если иное не указано отдельно.


В избранное