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

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


Выпуск # 721

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


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

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

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

Форумы Kbyte.Ru

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

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

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

Ну и так мы с Алексеем разобрали что сначала нужно зайти Делаю это так
Using
w As New FoxTools.Lib.Net.Web()
            w.Method = FoxTools.Lib.Net.Enums.HttpMethod.POST
            w.Url = "http://letitbit.net/"

        End Using
и на этом всё дальше не пойму что делать:DDD

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

Ответ #1 @Shark1 20.03.2013 19:53
Я смотрю здесь на форуме становится веселее ...

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

Ответ #2 @Crash666 20.03.2013 19:56
Ответ #3 @i32 21.03.2013 11:44
Только здесь получение ссылки.Но примерно так..
 Dim postData As String = "&uid5=" & uid5blbl & "&uid=" & uidblbl & "&id=" & "14812513" & "&live=" & "10" & "&seo_name=" & seo_nameblbl & "&name=" & seo_nameblbl &
"&pin=" & pinblbl _
                & "&realuid=" & realuidblbl & "&realname=" & seo_nameblbl & "&host=" & "letitbit.net" & "&ssserver=" & "" & "&sssize=" & sssizeblbl _
                & "&file_id=" & "" & "&index=" & indexblbl & "&dir=" & "" & "&optiondir=" & "" & "&desc=" & "" & "&lsarrserverra=" & "letitbit.net" _
                & "&page=" & "way_selection" & "&ref=" & ref_fullblbl & " &is_skymonk= " & is_skymonkblbl _
                & "&md5crypt=" & md5cryptblbl _
                & "&realuid_free=" & realuidblbl & "&pass=" & pss & "&submit_sms_ways_have_pass=" & "Download file"
                Dim encoding As New UTF8Encoding
                Dim byteData As Byte() = Encoding.GetBytes(postData)
                postReq = DirectCast(WebRequest.Create("http://letitbit.net/sms/check2.php"), HttpWebRequest)postReq.Method = "POST"
                postReq.Timeout = 10000000
                postReq.KeepAlive = True
                postReq.CookieContainer = tempCookies
                postReq.ContentType = "application/x-www-form-urlencoded"
                postReq.Referer = TextBox2.Text
                postReq.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)"
                postReq.AllowAutoRedirect = False
                postReq.ContentLength = byteData.Length

                Dim postreqstream As Stream = postReq.GetRequestStream()
                postreqstream.Write(byteData, 0, byteData.Length)
                postreqstream.Close()
                ' postresponse = HttpWebResponse
                postresponse = DirectCast(postReq.GetResponse(), HttpWebResponse)
                tempCookies.Add(postresponse.Cookies)
                logincookie = tempCookies
                postreqreader = New StreamReader(postresponse.GetResponseStream())
                thepage = postreqreader.ReadToEnd If thepage.Contains("Period of validity:") = True Then
                    addme(1)
                End If
                If thepage.Contains("Link to the file download") = True Then
                    addme(1)
                End If
                If thepage.Contains("Действие вашего прeмиум доступа заканчивается.") = True Then
                    addme(1)
                End If
                If thepage.Contains("Your premium access is about to be over.") = True Then
                    addme(1)
                End If  Else
                    MsgBox("Смени ПРОКСЮ")
                End If
                ' Sw.Stop()
                postresponse.Close()
                postreqreader.Close()
            Catch ex As Exception
            End Try
        Next

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

Ответ #4 @Crash666 21.03.2013 13:41
Так мой прогресса я нашел форму авторизации
<form method="post" action="/index.php">
  <input type="hidden" name="act" value="login"/>
  <div class="row">
    <div class="column" style=""width:120px"><strong>Логин</strong></div>"
    <div class="column" style=""width:200px;" float:right"><input class="input" name="login" type="text"></div>
    <div class="clear-line">&nbsp;</div>
  </div>
  <div class="row">
    <div class="column" style=""width:120px"><strong>Пароль</strong></div>"
    <div class="column" style=""width:200px;" float:right"><input class="input" type="password" name="password"></div>
    <div class="clear-line">&nbsp;</div>
  </div>
  <div class="btnround" style=""float:right"><div" class="btn-corner-br"><div class="btn-corner-bl"><div class="btn-corner-tr"><div class="btn-corner-tl"><input style=""font-size:14px"" type="submit" value="Авторизоваться"></div></div> </div></div></div>
  <div class="clear-line" style=""margin-bottom:9px"></div>"
  </form>
и так Определил я по слову авторизация нашел там login passowrd метод POST

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

Ответ #5 @Crash666 21.03.2013 13:54
Походу я зашел :DDDDD
Using w As New FoxTools.Lib.Net.Web()
            w.Method = FoxTools.Lib.Net.Enums.HttpMethod.POST
            w.Url = "http://letitbit.net/index.php"
            w.ResponseAutoEncoding = True
            w.ContentType = "application/x-www-form-urlencoded"
            w.Queries.AddQuery("login", "**********@mail.ru")
            w.Queries.AddQuery("password", "*************")
        End Using

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

Добавить свой ответ в эту тему · В теме есть еще 6 ответов. Смотреть все ответы.
Tor @i32 20.03.2013 13:05
День добрый..Вопрос Как сделать чтобы программа работала через TOR.Я так
понял все что на VB используют настройки IE.У меня Crome Стоит -заточенный под TOR.При
его включении программы начинают ошибку выдавать..Хотя в IE тоже меняются настройки прокси.
Что то - где то не доделал..Может можно программно что то прописать??
postReq.Proxy = Nothing
- Если так то проги работают но без TORa//
Если без этой записи то нет связи с сервером..
Спасибо

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

Ответ #1 @Алексей Немиро 20.03.2013 13:15
Нужно в Proxy указывать настройки TOR-а. Адрес, порт и, если используется, имя пользователя и пароль.
А сама программа автоматически никак не сможет узнать особенности сетевых настроек системы, если конечно не написать соответствующий функционал для этого.
Хотя в IE тоже меняются настройки прокси.
IE при этом работает?
Перезапуск своих программ, после запуска Chrome, решает проблему?

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

Ответ #2 @i32 20.03.2013 17:05
IE не работает (Через TOR).Но как я читал - этот блаузер геморно настраивать.Crome -Я скачал плагин (Switchy) и настроил - все пошло..
Перезагрузка прог - ничего не дает. Tor настроен на Localhost (127.0.0.1;8118) и socs - 5 порт 9050
Вернее я с крома эти показания снял (Ну если работает значит и в TORe все так же)
Может быть такое что IE сделать по умолчанию.? Да и при настройках CROMEa я пароли никакие не вводил..Просто создал ПРОФИЛЬ(NAME)
А такой вариант тоже не хочет.
postReq.Proxy
= New WebProxy("127.0.0.1:8118")

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

Ответ #3 @Алексей Немиро 20.03.2013 17:19
IE не работает (Через TOR).Но как я читал - этот блаузер геморно настраивать.
Если настройки не ограничиваются IP-адресом и номером порта, то видимо и программно не получится настроить. Указать параметры прокси в IE также просто, как и в других браузерах.
Может быть такое что IE сделать по умолчанию.?
Если указывать свои параметры прокси, то от IE уже ничего не будет зависеть.
А такой вариант тоже не хочет.
postReq.Proxy = New WebProxy("127.0.0.1:8118")
А так:
postReq.Proxy =
New WebProxy("127.0.0.1", 8118)

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

Ответ #4 @i32 20.03.2013 20:03
 Dim wp As WebProxy = New WebProxy("127.0.0.1.", 8118)
        wp.Credentials = CredentialCache.DefaultCredentials
        wp.Credentials = New NetworkCredential("Unnamed", "")
        postReq.Proxy = wp
Попробывал так - ФИГА...В настройках генерацию пароля выключил .Имя выключить нельзя - оставил "Unnamed"
Это сохраненные настройки TORa
BridgeRelay 1
ControlPort 9051
DataDirectory E:/Documents and Settings/123/Local Settings/Application Data/Vidalia
DirPort 0
DirReqStatistics 0
ExitPolicy reject *:*
Log notice stdout
Nickname Unnamed
ORPort 443
RelayBandwidthBurst 10485760
RelayBandwidthRate 5242880
SocksPort 9050

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

Ответ #5 @Алексей Немиро 20.03.2013 21:22
А если порт 9051 использовать?

Если не поможет, то дело не коде, а в TOR.

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

Добавить свой ответ в эту тему
Как узнать сколько апиративки занято, свободно, всего, на компьютере сколько процессво запущено в данный момент, узнать время работы стороннего процесса, компания, версия, его путь хранения и на этом всё=)

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

Ответ #1 @Алексей Немиро 19.03.2013 14:50
Список процессов можно получить методом System.Diagnostics.Process.GetProcesses():
For Each p As System.Diagnostics.Process In System.Diagnostics.Process.GetProcesses()
  'p - конкретный процесс из списка процессов
  Console.WriteLine(p.ProcessName)'см. другие свойства процесса (Ctrl + J)
Next
Dim сколькоЗапущеноПроцессов As Integer = System.Diagnostics.Process.GetProcesses().Length

Что касается железа, то ту сложнее. К проекту нужно подключить сборку System.Management.dll.
И импортировать пространство System.Management:
Imports System.Management
Информация о процессоре:
Dim scope As New ManagementScope()
Dim query As New ObjectQuery("SELECT * FROM Win32_Processor")
Dim searcher As New ManagementObjectSearcher(scope, query)
For Each itm As ManagementObject In searcher.[Get]()
    Console.WriteLine(itm.Path.Path)
    For Each p As PropertyData In itm.Properties
      Console.WriteLine("{0} = {1}", p.Name, p.Value)
    Next
Next
'это код вывода всей информации о всех физических процессорах
Для материнской платы запрос будет таким:
SELECT * FROM Win32_Baseboard
и т.п.
Информацию о WMI-классах (Windows Management Infrastructure Classes - классы управления инфраструктурой Windows) можно найти тут (англ.).

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

Ответ #2 @Алексей Немиро 19.03.2013 14:54
Эта тема отражена в проекте «Лена Цтулховна», там есть диспетчер задач (frmTaskManager).

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

Ответ #3 @Crash666 19.03.2013 20:09
А как узнать FPS и кол-во занятой оперативной памяти

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

Ответ #4 @Crash666 19.03.2013 20:16
Общее кол-во оперативной памяти

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

Ответ #5 @Алексей Немиро 19.03.2013 20:28
FPS - это графика, вопрос не корректен.
А память, SELECT * FROM Win32_PhysicalMemory, я же привел ссылку, там все возможную информацию можно найти.

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

Добавить свой ответ в эту тему · В теме есть еще 29 ответов. Смотреть все ответы.
Как программно войти на сайт от своего логина и пароля?? а так же выйти

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

Ответ #1 @Алексей Немиро 19.03.2013 13:17
Выйти проще всего

А войти - также как и отправлять файлы.
Парсить обычно для этого ничего не нужно, хотя бывают исключения.
Возьмем в качестве примера axifile. Вход делается на странице http://www.axifile.com/ru/login.php
Находим форму (руками, ну и глазами тоже):
<form action="login.php" method="post" name='lOGIN' onsubmit=''>
<input type="hidden" name="act" value="login">
<center><h3 id="hostplan" >Пожалуйста введите ваши данные для входа</h3></center>
<table border=1 id="filestatsMainTable" style=""direction:ltr;"" width=500 class=tableborder cellspacing="0">
<tr class="tdrow1">
<td width=45%><b>Логин</b>:</td>
<td><input type='text' size='20' maxlength='100' name='user' class='textinput' value='' style=""width:150px"" dir="ltr" /></td>
</tr>
<tr class="tdrow1">
<td><b>Пароль</b>:</td>
<td><input type='password' size='20' name='pass' class='textinput' style=""width:150px"" dir="ltr" maxlength="31" /></td>
</tr>
<tr class="tdrow1">
<td>Запомнить меня? <input type=checkbox name=autologin value=1 checked></td>
<td><input class="Dbutton" type="submit" name='login' value="Войти" /></td>
</tr>
</table>

<table align="center" border="0" style=""direction:ltr;color:#6885AA;font-size:80%;margin-top:20px;"" class="tableborder" cellspacing="0">
<tr><td><a href="#" onClick="return openPopup('/forgot_pass.php', 630, 350)">Забыли логин или пароль?</a></td></tr>
</table>
<input type="hidden" name="referer" value="http://www.axifile.com/">
</form>
Видим, что форма отправляется на эту же страницу.
Видим, в какие поля передается логин и пароль.
Видим, какое имя у опции "запомнить меня" и какое в нее нужно передавать значение.
В форме не указан тип содержимого, значит будет использовать тип по умолчанию - application/x-www-form-urlencoded.
Запрос, естественно, будет делаться методом POST. Формы редко отправляются методом GET, хотя это вполне допустимо (например, в поисковых формах). Метод отправки указан в форме.
Вообще, все это можно узнать, посмотрев на http-заголовки в Fiddler, при отправке данных через браузер.

Парсить тут ничего не нужно, необходимо просто добавить параметры с указанными именами и поставить в значение параметра логин - свой логин (w.Queries.AddQuery("user", "это значение параметра")), а в значение параметра пароль - свой пароль.

После успешного входа, сайт передаст в экземпляр класса Web куки. По кукам сайт при последующих запросах сможет определить, что пользователь авторизирован. Все запросы нужно делать в рамках одной сессии, т.е. создал экземпляр класса Web:
Using w As New FoxTools.Lib.Net.Web()
написал код входа на сайт, написал код отправки файла (или еще какие-либо действия),
грохнул экземпляр класса:
End Using
Сессия, куки удаляться. Т.е. как бы случится выход.

Если создать разные экземпляры класса, в одном из которых произвести вход:
Using w1 As New FoxTools.Lib.Net.Web()
'код входа на сайте
End Using
а в другом выполнить другие действия:
Using w2 As New FoxTools.Lib.Net.Web()
'другие действия, например, отправка файла
End Using
то пользователь не будет авторизирован, т.к. куки авторизации остались в w1 и перенести их в w2 невозможно.
Все запросы нужно делать в рамках одного w.

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

Ответ #2 @Crash666 19.03.2013 18:19
То есть когда я передам лог и пароль мне нужно будет просто написать PRocess.start(http://www.axifile.com/) и я уже зайду от себя?

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

Ответ #3 @Алексей Немиро 19.03.2013 19:02
То есть когда я передам лог и пароль мне нужно будет просто написать PRocess.start(http://www.axifile.com/) и я уже зайду от себя?
Нет. Это только для программного входа и программного выполнения запросов.

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

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

Добавить свой ответ в эту тему
И так мне нужно передать несколько параметров, если я пишу больше одного то выходит ошибка

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

Ответ #1 @Crash666 19.03.2013 05:13
Блин зря тему создал

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

Ответ #2 @Crash666 19.03.2013 05:43
Ладно чего зря пропадать. Как войти на сайт по своим лог и паролем, знаю такая тема была но щас точно иду до конца

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

Ответ #3 @Алексей Немиро 19.03.2013 10:47
Для тех, кто будет озадачен этим вопросом, ответ можно найти тут: http://kbyte.ru/ru/Forums/Single.aspx?id=14151 В первом фрагменте кода - 11-13 строки.

Crash666:
Ладно чего зря пропадать. Как войти на сайт по своим лог и паролем, знаю такая тема была но щас точно иду до конца
Никуда она не пропадет. Лучше новую тему создать, чтобы можно было легко найти по названию.

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

Добавить свой ответ в эту тему
Архивация @Crash666 17.03.2013 08:29
Как архивировать ФАЙЛЫ в архив zip находящийся по пути D:\Desktop\Test.zip? И сюда же припишу как создать архив программно? через IO.file.create("D\Desktop\Test.zip") получается но когда я хочу его использовать пишет что файл занят другим процессом или что то вроде того...

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

Ответ #2 @Crash666 17.03.2013 12:15
Хмммм и как этим пользоваться?

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

Ответ #3 @Алексей Немиро 17.03.2013 12:37
Там же есть примеры использования.

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

Ответ #4 @Crash666 17.03.2013 13:54
Я это и скачал, но через визе или bat &

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

Ответ #5 @Алексей Немиро 17.03.2013 15:27
Там же, в файле, есть папка, имя которой "samples", что в переводе с английского означает "Примеры". (Sources, сокращенно src - исходный код. Example, Sample - пример. Эти слова программист должен в первую очередь знать, без них не выжить )

В ней есть папка "vb", которая получило свое название от сокращения названия Visual Basic .NET.

Ну а дальше папка - zipfiletest, которая получила свое название от английского Zip File Test, что можно перевести на наш, как "Пример работы с zip-файлами".

Еще там есть папка CreateZipFile - создание zip-файлов.

Это ж методом тыка можно найти. Ну или поиском по папке по запросу *.vbproj - файлы проектов VB .NET.
Уже даже не смешно.

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

Добавить свой ответ в эту тему · В теме есть еще 14 ответов. Смотреть все ответы.
И так я пытался проделать всю процедуру и понял что там половина отсутствует того что было на turbobit но больше подходит к коду Rghost но как только перехожу к первому парсу теряюсь или может я с самого начала что то не так делаю?

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

Ответ #1 @Алексей Немиро 16.03.2013 20:46
Изначально нужно найти POST-запрос и понять, откуда он берется и что передает.

Там используется AJAX и фреймы. Но принцип работы от этого не меняется. Найти POST-запрос, отправить. Все просто.


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

Ответ #2 @Crash666 16.03.2013 21:12
Я не знаю что такое
AJAX и фреймы

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

Ответ #3 @Crash666 16.03.2013 21:22
Так ну гугл мне помог узнать что такое AJAX и фреймы но какой код для этого нужен??

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

Ответ #4 @Алексей Немиро 17.03.2013 10:00
Так ну гугл мне помог узнать что такое AJAX и фреймы но какой код для этого нужен??
Здесь не код нужен, а логическое мышление

А код, он будет такой же. HTTP-протокол един везде.

В первую очередь, нужно понять, откуда берется адрес, на который отправляется файл. Войти на страницу, на которой находится адрес и взять её.
По трафику нужно внимательно посмотреть, какие параметры передаются. Понять что они означают, являются они важными или нет. Если они важные, нужно понять, откуда они берутся (при условии, что они в каждом запросе разные). Например: UploadSession (сессия (session) загрузки (upload)), AccessKey (ключ (key) доступа (access)), returnUrl (страница (url) возврата (return)).

Тупо открываем исходный код страницы и смотрим:

До этого момента все точно также, как показано в видео.
А дальше, скорей всего придется сделать на пару запросов больше. Но принцип от этого не изменится.

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

Ответ #5 @Crash666 17.03.2013 14:32
А можете еще одно видео записать???:DDDD

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

Добавить свой ответ в эту тему · В теме есть еще 75 ответов. Смотреть все ответы.
Извеняюсь за глупую тему ну я уже и в google и Yandex спрашивал либо не находил либо находил ROUND но он не подходит что делать??
P.s. Заранее спасибо!!!

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

Ответ #1 @Crash666 16.03.2013 18:14
Вопрос не актуален! Как называется событие "Изменение кол-ва итемов в листбокс"

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

Ответ #2 @Алексей Немиро 16.03.2013 19:37
Как называется событие "Изменение кол-ва итемов в листбокс"
Вроде нет такого :)

Если самому проверять, то количество элементов находится в свойстве Count, коллекции Items:
listBox1.Items.Count

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

Ответ #3 @Crash666 16.03.2013 19:50
Алексей я попробовал сам выложить файл на Google disk но когда я посмотрел запросы через Fiddler там вообще нечего похожего не было как у вас в видео

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

Ответ #4 @Алексей Немиро 16.03.2013 20:12
Как округлить число да 1 знака после запятой???
Как называется событие "Изменение кол-ва итемов в листбокс"
я попробовал сам выложить файл на Google disk но когда я посмотрел запросы через Fiddler там вообще нечего похожего не было как у вас в видео

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

Ответ #5 @Crash666 16.03.2013 20:27
Всмысле??:DDDD

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

Добавить свой ответ в эту тему · В теме есть еще 6 ответов. Смотреть все ответы.
Не могу разобраться с потоками
что то набросал
Private Sub SafeFormChange(result As String) 'количество, имена и типы параметров могут быть любыми
        If Me.InvokeRequired Then 'если вызов не из родного потока
            'перенаправляем вызов в родной поток
            Me.Invoke(New Action(Of String)(AddressOf SafeFormChange), result) 'нужно не забывать передавать параметры
            Return 'выходим, чтобы не случилось ничего плохого
        End If
        'в этом месте можно безопасно обращаться к элементам формы (окна)
        'например:
        TextBox1.Text = result
    End Sub

    Private Sub Method2()
        Dim ofd As New OpenFileDialog
        ofd.Filter = "Все файлы|*.*"
        If ofd.ShowDialog = DialogResult.Cancel Then Exit Sub
        Dim q As String = ofd.FileName
        MyThreadMethod(q)
    End Sub

    Private Sub MyThreadMethod(file As String)
        Using w As New FoxTools.Lib.Net.Web()
            w.Method = FoxTools.Lib.Net.Enums.HttpMethod.GET
            w.Url = "http://turbobit.net"
            w.ResponseAutoEncoding = True
            Dim result As String = w.ExecuteString
            Dim postUrl As String = Regex.Match(result, "<param name=""FlashVars"" value=""cancelLang=Отмена&browserLang=Обзор&downloadLang=Загрузить&maxSize=209715200&domain=main&urlSite=(?<postUrl>.+?)&userId=&apptype=fd1"" />").Groups("postUrl").Value

            w.Method = FoxTools.Lib.Net.Enums.HttpMethod.POST
            w.Url = postUrl
            w.ContentType = "multipart/form-data"
            w.Queries.AddQuery("Filename", file)
            w.Queries.AddQuery("id", "null")
            w.Queries.AddQuery("apptype", "fd1")
            w.Queries.AddQuery("stype", "null")
            w.Queries.AddFile("Filedata", file, IO.File.ReadAllBytes(file))
            result = w.ExecuteString()

            Dim id As String = Regex.Match(result, """id"":""(?<fileId>[^\x22]+)""").Groups("fileId").Value

            SafeFormChange((String.Format("http://turbobit.net/{0}.html", id)))
        End Using
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Method2()
        Dim t As New Thread(AddressOf MyThreadMethod)
        'Поток будет выполняться в фоновом режиме
        t.IsBackground = True
        'Запуск выполнения потока
        t.Start()
    End Sub

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

Ответ #1 @Алексей Немиро 16.03.2013 11:00
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
	        Method2()'после нажатия на кнопку сразу будет вызван Method2,
                'который в свою очередь вызовет метод MyThreadMethod,
                'а код ниже пытается сделать тоже самое, т.е. не имеет смысла.
	        Dim t As New Thread(AddressOf MyThreadMethod)
	        'Поток будет выполняться в фоновом режиме
	        t.IsBackground = True
	        'Запуск выполнения потока
	        t.Start() ' в методе MyThreadMethod есть параметры, передавать их нужно через параметры метода Start. Скорее всего в этом месте будет ошибка.
                't.Start("имя параметра")
                'в качестве параметров ожидается object, т.е. можно указать любой тип данных.
                'Если метод MyThreadMethod будет принимать более одного параметра,
                'то нужно будет использовать один параметр типа массива, или коллекции, или создавать свой класс (с необходимыми свойствами) для их передачи.
	    End Sub
Исходя из всего выше написанного, будет примерно так:
Private Sub SafeFormChange(result As String) 'количество, имена и типы параметров могут быть любыми
        If Me.InvokeRequired Then 'если вызов не из родного потока
            'перенаправляем вызов в родной поток
            Me.Invoke(New Action(Of String)(AddressOf SafeFormChange), result) 'нужно не забывать передавать параметры
            Return 'выходим, чтобы не случилось ничего плохого
        End If
        'в этом месте можно безопасно обращаться к элементам формы (окна)
        'например:
        TextBox1.Text = result
    End Sub

    Private Sub MyThreadMethod(file As String)
        Using w As New FoxTools.Lib.Net.Web()
            w.Method = FoxTools.Lib.Net.Enums.HttpMethod.GET
            w.Url = "http://turbobit.net"
            w.ResponseAutoEncoding = True
            Dim result As String = w.ExecuteString
            Dim postUrl As String = Regex.Match(result, "<param name=""FlashVars"" value=""cancelLang=Отмена&browserLang=Обзор&downloadLang=Загрузить&maxSize=209715200&domain=main&urlSite=(?<postUrl>.+?)&userId=&apptype=fd1"" />").Groups("postUrl").Value

            w.Method = FoxTools.Lib.Net.Enums.HttpMethod.POST
            w.Url = postUrl
            w.ContentType = "multipart/form-data"
            w.Queries.AddQuery("Filename", file)
            w.Queries.AddQuery("id", "null")
            w.Queries.AddQuery("apptype", "fd1")
            w.Queries.AddQuery("stype", "null")
            w.Queries.AddFile("Filedata", file, IO.File.ReadAllBytes(file))
            result = w.ExecuteString()

            Dim id As String = Regex.Match(result, """id"":""(?<fileId>[^\x22]+)""").Groups("fileId").Value

            SafeFormChange((String.Format("http://turbobit.net/{0}.html", id)))
        End Using
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim ofd As New OpenFileDialog()
        ofd.Filter = "Все файлы|*.*"
        If ofd.ShowDialog = DialogResult.Cancel Then Return

        Dim t As New Thread(AddressOf MyThreadMethod)
        'Поток будет выполняться в фоновом режиме
        t.IsBackground = True
        'Запуск выполнения потока
        'передаем путь к выбранному файлу
        t.Start(ofd.FileName)
    End Sub

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

Ответ #2 @Crash666 16.03.2013 13:14
Спасибо Алексей спасли=))

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

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

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

Вакансии в IT

Технический менеджер проекта/Ведущий разработчик ПО

Россия, Москва | Работа в офисе | 70 000,00 KBP

Программист C++

Россия, Москва | Работа в офисе | 100 000,00 KBP

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

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

Программист 1С на подряд со свободным графиком

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

Инженер-программист драйверов Windows и (или) Linux

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

Программист 1 С (совместиитель)

Россия, Москва | Удаленная работа

Веб мастер/web администратор

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

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

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

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

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

Программист / Разработчик Axapta

Россия, Москва | Работа в офисе | 120 000,00 KBP

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

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

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

Аудитория YouTube достигла 1 млрд человек в месяц

Портал YouTube сегодня заявил, что его зрительская аудитория превысила 1 млрд человек в месяц. О достижении важного рубежа было объявлено на специальном мероприятии для специалистов по рекламе, куда Google также пригласила некоторых западных популярных авторов видеороликов. В компании говорят, что портал YouTube, запущенный в 2005 году, был одним из самых быстрорастущих проектов.

Аналитики говорят, что YouTube преодолел отметку в 1 млрд пользователей через пять месяцев после того, как соцсеть Facebook заявила, что количество ее пользователей также превысило 1 млрд человек. В то же время, за последний год динамика роста портала, судя по всему, была не слишком впечатляющей, так как еще в октябре 2012 года проект объявил, что количество его зрителей достигло показателя 800 млн человек в месяц.

Напомним, что сама Google купила портал YouTube в 2006 году за 1,76 млрд долларов, тогда аудитория проекта составляла всего около 50 млн человек. В 2011 года Google занялась улучшением качества записей на портале: были созданы тематические каналы, внедрена программа поощрения авторов видео и выделены деньги на съемку авторского видео. Также компания значительно усовершенствовала саму технологическую платформу YouTube.

Впрочем, аналитики говорят, что пока проект YouTube так и не стал для Google экономически прибыльным, ведь затраты на его содержание опережают поступления. Сама Google не раскрывает данных о финансах YouTube.

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

21.03.2013 10:50 · Категория: Бизнес в IT · Источник: CyberSecurity.ru

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

ICANN намерена ужесточить работу с данными о владельцах доменов

Интернет-корпорация ICANN, отвечающая за функционирование доменного пространства в Сети, инициировала процесс консультаций, направленный на улучшение сбора информации о владельцах доменных имен и операторов сайтов в доменных зонах .com, .net, .info и .biz. Как рассказали в интернет-корпорации, данная кампания связана с тем, что все чаще возникают случаи распространения вредоносных кодов с доменов, зарегистрированных в вышеуказанных зонах.

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

"Есть стойкое убеждение, что улучшение точности данных о регистраторе gTLD положительно скажется на обстановке с распространением вредоносных кодов и мошеннических сайтов", - говорит Ларс Хоффманн, представитель ICANN.

19.03.2013 10:08 · Категория: Бизнес в IT · Источник: CyberSecurity.ru

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

Сервис Dropbox покупает приложение Mailbox

Разработчики популярного мобильного приложения Mailbox App для iPhone и iPad в пятницу сообщили, что их проект был куплен сервисом удаленного хранения данных Dropbox. Данное приложение с одной стороны довольно простое - оно работает с сервисом электронной почты Gmail, а с другой - оно удивительно удобное и функциональное. С некоторой долей условности можно сказать, что Mailbox App - это альтернативный интерфейс для Gmail.

Пользователи Dropbox, комментирующие сделку, полагают, что с одной стороны Dropbox могла решить расширить функционал Mailbox app и на другие почтовые сервисы с последующей интеграцией в Dropbox, а с другой, самому Dropbox мог приглянуться почтовый интерфейс с рядом интересных интерфейсных решений.

Напомним, что приложение Mailbox App в стадии конечной версии появилось лишь месяц назад.

Сумма, заплаченная за Mailbox, публично не разглашается, однако сама Mailbox представляет собой венчурный стартап, получивший еще в конце 2011 года 5,3 млн долларов инвестиций. В описании программы говорится, что сейчас при помощи Mailbox получается и отправляется более 60 млн сообщений в сутки.

18.03.2013 11:25 · Категория: Бизнес в IT · Источник: CyberSecurity.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 если иное не указано отдельно.


В избранное