Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Автор: May_Johnson
Дата сообщения: 15.09.2010 11:36
ForposT_ForeveR
А помойму сам смысл лабораторной и состоит в написании этой функции
Автор: ComradG
Дата сообщения: 15.09.2010 13:24
ForposT_ForeveR
IL DASM и MSDN тебе в помощь.
Автор: LuckyStrike
Дата сообщения: 15.09.2010 22:25
//Нахождение расстояния от источника до всех вершин
//(метод Форда-Беллмана).
//Нахождение кратчайшего пути из S в T.
#include <iostream.h>
#define MaxNodes 7
#define B 1000 //Машинный эквивалент бесконечности.

//Описание типа узла стека.
typedef struct Zveno *svqz;
typedef struct Zveno
{
int Element;
svqz Sled;
};

class Spisok
{
private:
int A[MaxNodes][MaxNodes]; //Матрица весов дуг.
int D[MaxNodes]; //Матрица расстояний от источника до
//всех вершин графа.
svqz Stack; //Указатель на рабочий стек.
void UDALENIE (svqz *, int *);
void W_S (svqz *, int);
public:
Spisok() {Stack = NULL;}
void Vvod_Ves();
void Reshenie ();
};

int main ()
{
Spisok A;
A.Vvod_Ves();
A.Reshenie();
}

void Spisok::Reshenie ()
{
int S; // Начальная вершина пути (источник).
int T; // Конечная вершина пути.
int u,v;
int i,j,k;
svqz UkZv;

cout << "Vvedite nachal'nuyu vershinu: ";
cin >> S; S--;
//Инициализация.
for (i=0;i<MaxNodes;i++) D[i] = A[S][i];
D[S] = 0;
//Вычисление матрицы расстояний от
//источника до всех вершин графа.
for (k=0;k<MaxNodes-2;k++)
for (i=0;i<MaxNodes;i++)
if ( i!=S )
for (j=0;j<MaxNodes;j++)
if ( D[i] > D[j]+A[j][i] ) D[i] = D[j]+A[j][i];
//Вывод матрицы расстояний от источника
//до всех вершин графа.
cout << "Matrica rasstoyaniy: \n";
for (i=0;i<MaxNodes;i++) cout << D[i] << " ";
cout << endl;
// Нахождение кратчайшего пути из S в T с использованием
// построенной матрицы расстояний.
cout << "vvedite konechnuyu vershinu puti: ";

cin >> T; T--;
W_S (&Stack,T); v = T;
while ( v!=S )
{// cout<<"jhfgkjg";
for (i=1;i<MaxNodes;i++)
if ( D[v]==D[i]+A[i][v] ) u = i;
W_S (&Stack,u);
v = u;
}

//Вывод кратчайшего пути на экран
cout << "kratchaishiy put': ";
UkZv = Stack;
while ( UkZv != NULL )
{ cout << UkZv->Element << " ";
UkZv = UkZv->Sled; }
cout << endl;
}

void Spisok::Vvod_Ves()
//Ввод матрицы весов дуг заданного графа.
{
cout << "vvodite elementi matrici vesov dug po strocam:\n";
for (int i=0;i<MaxNodes;i++)
for (int j=0;j<MaxNodes;j++)
{
cout << "vvedite A[" << (i+1) << "," << (j+1) << "]: ";
cin >> A[i][j];
if ( A[i][j]==0 ) A[i][j] = B;
}
}

void Spisok::W_S (svqz *stk, int Elem)
//Помещение Elem в стек stk.
{
svqz q=new (Zveno);
(*q).Element = Elem;
(*q).Sled = *stk; *stk = q;
}

void Spisok::UDALENIE (svqz *stk, int *Klad)
//Удаление звена из стека, заданного указателем *stk.
//Значение информационного поля удаляемого звена сохраня-
//ется в параметре Klad.
{
svqz q;

/* if (*stk==NULL) cout<<"Попытка выбора из пустого стека!\n";
else
{ *Klad = (**stk).Element;
q = *stk; *stk = (**stk).Sled; delete q; }*/
}
при выводе почему то не находит короткий путь...точнее не выводит
Автор: ComradG
Дата сообщения: 16.09.2010 11:57
LuckyStrike
Дядь, а позвольте спросить, к чему ваш пост? Ну Си, но к управляемому коду то он какое отношение имеет? Для Си есть отдельная ветка, посмотри внимательней. Здесь обсуждаются NET языки.
Автор: MagistrAnatol
Дата сообщения: 16.09.2010 14:39
народ как сбросить панель инструментов из командной строки для ВС 2010
и как побороть ошибку
Имя журнала: Application
Источник: Application Error
Дата: 16.09.2010 13:58:03
Код события: 1000
Категория задачи100)
Уровень: Ошибка
Ключевые слова:Классический
Пользователь: Н/Д
Компьютер: BLACKADMIN.brt.org
Описание:
Имя сбойного приложения: devenv.exe, версия: 10.0.30319.1, отметка времени: 0x4ba1fab3
Имя сбойного модуля: msenv.dll, версия: 10.0.30319.1, отметка времени 0x4ba1fd94
Код исключения: 0xc0000005
Смещение ошибки: 0x000fda77
Идентификатор сбойного процесса: 0x115c
Время запуска сбойного приложения: 0x01cb55858abdc343
Путь сбойного приложения: C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe
Путь сбойного модуля: C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\msenv.dll
Код отчета: e4a2b0a4-c178-11df-a2eb-001d9272c15b
Xml события:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Application Error" />
<EventID Qualifiers="0">1000</EventID>
<Level>2</Level>
<Task>100</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2010-09-16T09:58:03.000000000Z" />
<EventRecordID>20119</EventRecordID>
<Channel>Application</Channel>
<Computer>BLACKADMIN.brt.org</Computer>
<Security />
</System>
<EventData>
<Data>devenv.exe</Data>
<Data>10.0.30319.1</Data>
<Data>4ba1fab3</Data>
<Data>msenv.dll</Data>
<Data>10.0.30319.1</Data>
<Data>4ba1fd94</Data>
<Data>c0000005</Data>
<Data>000fda77</Data>
<Data>115c</Data>
<Data>01cb55858abdc343</Data>
<Data>C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe</Data>
<Data>C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\msenv.dll</Data>
<Data>e4a2b0a4-c178-11df-a2eb-001d9272c15b</Data>
</EventData>
</Event>
Автор: ComradG
Дата сообщения: 16.09.2010 16:16
Del [more=Исправлено]Imports System
Imports System.Drawing
Imports System.Diagnostics
Imports System.Windows.Forms
Imports System.Runtime.InteropServices

Public Class frmMain
Inherits Form

Private Const WH_KEYBOARD_LL As Integer = 13
Private Const WM_KEYDOWN As Integer = 256
Private Shared _proc As LowLevelKeyboardProc = AddressOf HookCallback
Private Shared _hookID As IntPtr = IntPtr.Zero

Public Sub New()
InitializeComponent()
End Sub

Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

Private components As System.ComponentModel.IContainer = Nothing

Friend WithEvents lblCaption As Label
Friend WithEvents lblHowdoit As Label
Friend WithEvents btnExit As Button
Friend WithEvents btnTray As Button
Friend WithEvents ntfContext As NotifyIcon
Friend WithEvents mnuContext As ContextMenu
Friend WithEvents mnuRestore As MenuItem
Friend WithEvents mnuSplit As MenuItem
Friend WithEvents mnuExit As MenuItem

Private Sub InitializeComponent()
Me.lblCaption = New Label()
Me.lblHowdoit = New Label()
Me.btnExit = New Button()
Me.btnTray = New Button()
Me.ntfContext = New NotifyIcon()
Me.mnuContext = New ContextMenu()
Me.mnuRestore = New MenuItem()
Me.mnuSplit = New MenuItem()
Me.mnuExit = New MenuItem()
'
'lblCaption
'
Me.lblCaption.Font = New Font("Microsoft Sans Serif", 9, FontStyle.Bold)
Me.lblCaption.Location = New Point(71, 9)
Me.lblCaption.Size = New Size(139, 23)
Me.lblCaption.Text = "WinKey Hooker"
Me.lblCaption.TextAlign = ContentAlignment.MiddleCenter
'
'lblHowdoit
'
Me.lblHowdoit.Location = New Point(12, 32)
Me.lblHowdoit.Size = New Size(273, 29)
Me.lblHowdoit.Text = "Press ""Tray"" if you wish block WinKey or ""Exit"" to leave this application."
Me.lblHowdoit.TextAlign = ContentAlignment.MiddleCenter
'
'btnExit
'
Me.btnExit.Location = New Point(12, 74)
Me.btnExit.Text = "E&xit"
'
'btnTray
'
Me.btnTray.Location = New Point(210, 74)
Me.btnTray.Text = "&Tray"
'
'ntfContext
'
Me.ntfContext.ContextMenu = Me.mnuContext
Me.ntfContext.Icon = Me.Icon
'
'mnuContext
'
Me.mnuContext.MenuItems.AddRange(New MenuItem() { Me.mnuRestore, _
Me.mnuSplit, _
Me.mnuExit } )
'
'mnuRestore
'
Me.mnuRestore.Text = "Restore"
'
'mnuSplit
'
Me.mnuSplit.Text = "-"
'
'mnuExit
'
Me.mnuExit.Text = "Exit"
'
'frmMain
'
Me.ClientSize = New Size(297, 111)
Me.Controls.AddRange(New Control() { Me.lblCaption, _
Me.lblHowdoit, _
Me.btnExit, _
Me.btnTray } )
Me.FormBorderStyle = FormBorderStyle.FixedSingle
Me.MaximizeBox = False
Me.StartPosition = FormStartPosition.CenterScreen
End Sub

Private Shared Function SetHook(ByVal proc As LowLevelKeyboardProc) As IntPtr
Using curProcess As Process = Process.GetCurrentProcess()
Using curModule As ProcessModule = curProcess.MainModule
Return SetWindowsHookEx(WH_KEYBOARD_LL, proc, GetModuleHandle(curModule.ModuleName), 0)
End Using
End Using
End Function

Private Delegate Function LowLevelKeyboardProc(ByVal nCode As Integer, ByVal wParam As IntPtr, _
ByVal lParam As IntPtr) As IntPtr

Private Shared Function HookCallback(ByVal nCode As Integer, ByVal wParam As IntPtr, _
ByVal lParam As IntPtr) As IntPtr
If (nCode >= 0) AndAlso (wParam = CType(WM_KEYDOWN, IntPtr)) Then
Dim vkCode As Integer = Marshal.ReadInt32(lParam)
If (DirectCast(vkCode, Keys) = Keys.LWin) OrElse (DirectCast(vkCode, Keys) = Keys.RWin) Then
Return CType(1, IntPtr)
End If
End If
Return CallNextHookEx(_hookID, nCode, wParam, lParam)
End Function

<DllImport("user32.dll", CharSet := CharSet.Auto, SetLastError := True)> _
Private Shared Function SetWindowsHookEx(ByVal idHook As Integer, _
ByVal lpfn As LowLevelKeyboardProc, ByVal hMod As IntPtr, ByVal dwThreadId As UInteger) As IntPtr
End Function

<DllImport("user32.dll", CharSet := CharSet.Auto, SetLastError := True)> _
Private Shared Function UnhookWindowsHookEx(ByVal hhk As IntPtr) As Boolean
End Function

<DllImport("user32.dll", CharSet := CharSet.Auto, SetLastError := True)> _
Private Shared Function CallNextHookEx(ByVal hhk As IntPtr, ByVal nCode As Integer, _
ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
End Function

<DllImport("kernel32.dll", CharSet := CharSet.Auto, SetLastError := True)> _
Private Shared Function GetModuleHandle(ByVal lpModuleName As String) As IntPtr
End Function

Private Sub btnExit_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnExit.Click
Me.Close()
End Sub

Private Sub btnTray_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnTray.Click
Me.Hide()
ntfContext.Visible = True
ntfContext.Text = "WinKey Hooker"
End Sub

Private Sub mnuRestore_Click(ByVal sender As Object, ByVal e As EventArgs) Handles mnuRestore.Click
ntfContext.Visible = False
Me.Show()
End Sub

Private Sub mnuExit_Click(ByVal sender As Object, ByVal e As EventArgs) Handles mnuExit.Click
ntfContext.Visible = False
Application.[Exit]()
End Sub

<STATHread()> _
Public Shared Sub Main()
_hookID = SetHook(_proc)
Application.EnableVisualStyles()
Application.Run(New frmMain())
UnhookWindowsHookEx(_hookID)
End Sub

End Class[/more]
Автор: LuckyStrike
Дата сообщения: 19.09.2010 16:40
Здравствуйте, будьте добры помочь с задачкой, вот её условие:
Разработать программу для вычисления определенного интеграла от заданной функции на заданном отрезке методом прямоугольников. Программа должна разбивать отрезок на три равные части, запускать по выбору вычисления на каждом отрезке по 10000 значений либо параллельно, либо последовательно, обеспечивать приостановку и прерывание вычислений, установку приоритета каждого потока, по окончании вычислений сложить их результаты и получить ответ(3*x3/sin(x) на отрезке [0, 6]).
а вот код, который я написал под неё:
[CODE=csh]
namespace интеграл
{
class Integral
{
public double summa = 0;
public double a, b;
public Integral(double a, double b)
{
this.a = a;
this.b = b;
}
}
class Program
{
public static void sum(object pp)
{
Integral p = pp as Integral;
double summa = 0;
double a = p.a;
double b = p.b;
double dx = (b - a) / 10000;
for (double i = a; i <= b; i+=dx)
summa += dx*Function(i);

}
static public double Function(double x)
{
double y;
y = (3 * Math.Pow(x, 3)) / Math.Sin(x);
return y;
}
static void Main(string[] args)
{
int a = 0;
int b = 6;
int c = (b - a) / 3;
Integral p1 = new Integral(a, c);
Integral p2 = new Integral(c, b-c);
Integral p3 = new Integral(b-c, b);
Thread proc1 = new Thread(new ParameterizedThreadStart(sum));
Thread proc2 = new Thread(new ParameterizedThreadStart(sum));
Thread proc3 = new Thread(new ParameterizedThreadStart(sum));
proc1.Start(p1);
proc2.Start(p2);
proc3.Start(p3);
proc1.Join();
proc2.Join();
proc3.Join();
Console.WriteLine(Function(p1.summa+p2.summa+p3.summa));

}
}
}
[/CODE]подскажите что исправить. фишка в этой задачи в том, что я отрезок разбиваю на три части (то есть потока на 10000) и потом их складываю и должен быть ответ.
Автор: cosmosliva
Дата сообщения: 19.09.2010 19:33
Добрый день!
Кто подскажет C#
как проще работать с коллекцией List<>

Код:
//Имеем класс
class Section
{
public int Number { get; set; }
public string Name { get; set; }
}

//Создаем
List<Section> Collect = new List<Section>();
Автор: Omicron_Persey_8
Дата сообщения: 19.09.2010 21:27
cosmosliva
Для этого лучше воспользоваться коллекциями Dictionary<TKey, TValue> или Hashtable (Dictionary предпочтительнее, так как типизирован)

Код: Dictionary<int, string> dict = new Dictionary<int, string>();
dict.Add(1, "one");
dict.Add(10, "ten");
dict.Add(15, "fifteen");
Console.WriteLine(dict[10]);
Автор: cosmosliva
Дата сообщения: 20.09.2010 05:50
Omicron_Persey_8
Спасибо
Действительно то что нужно
Dictionary<int, Section>

попутный вопрос
не будет проблем с сериализацией
Автор: BlackVetal
Дата сообщения: 20.09.2010 06:01
LuckyStrike
Я тебе посоветую дугой способ. Ниже кусок кода - имитация работы конвееров. При чем идет распаралеливание как работы так и вывод информации о работе ковеера ...
[more=Тыц]
/// <summary>
/// Делегат - необходим для создания асинхронных и синхронных потоков
/// имитации работы конвеера
/// </summary>
/// <param name="_status"> Статус конвеера</param>
/// <param name="_TextBox">Контрол - куда нужно выводить статус</param>
delegate void StartConveerDelegate(Conveer_Status Status, RichTextBox _TextBox, XtraUserControl _userControl);

/// <summary>
/// Метод Запускает конвеер с переданными параметрами.
/// В переменной _status - передается ссылка на переменную содержащую статус конвеера
/// а в переменной _TextBox - передается контрол - в котором должна выводиться информация
/// о состоянии конвеера и смене стадий обработки
/// </summary>
/// <param name="_status"> Статус конвеера</param>
/// <param name="_TextBox">Контрол - куда нужно выводить статус</param>
private void StartConveer(Conveer_Status Status, RichTextBox _TextBox, XtraUserControl _userControl)
{
// создаем объект генератора случайных чисел
Random rnd = new Random();

// цикл имитации конвеера - бесконечный
while (true)
{
// получаем текущий статус конвеера
int Step = (int)Status;
//если статус - последний цикл обработки асбеста, то переходим к первому шагу
if (Step == (int)Conveer_Status.Упаковка_Хризотила)
Step = (int)Conveer_Status.Загрузка_Руды;
else // иначе просто переходим к следующему шагу
Step++;
// присваиваем новый статус конвеера
Status = (Conveer_Status)Step;

// вычисляем аварийную ситуацию
// для этого генерируем число - которое означает вероятность аварии
// затем сравниваем с пределом - который означает допустимое значение
// аварийности
int авария = rnd.Next(maxValueАвария);
if (авария > PredelАвария)
{
// выводим статус что произошла авария
ShowStatus(Conveer_Status.Останов_Авария, _TextBox, _userControl);
// приостанавливаем поток
Thread.Sleep(rnd.Next(maxValueSleep*3));
}
// выводим статус что произошла авария
ShowStatus(Status, _TextBox, _userControl);
// приостанавливаем поток
Thread.Sleep(rnd.Next(maxValueSleep));
}
}

/// <summary>
/// Делегат - необходим для создания синхронных и асинхронных потоков вывода
/// статуса конвеера.
/// ПО сути дела - это объявление шаблона.
/// </summary>
/// <param name="_status"> Статус конвеера который нужно вывести</param>
/// <param name="_TextBox">Контрол - куда нужно вывести статус</param>
delegate void ShowStatusDelegate(Conveer_Status _status, RichTextBox _TextBox, XtraUserControl _userControl);


/// <summary>
/// Метод выводит текущий статус конвеера в соответствующее ему окошко.
/// Весь вывод осуществляется асинхронно - если все идет стандартно. Это
/// необходимо для того чтобы не тормозить остальные процессы.
/// </summary>
/// <param name="_status"> Статус конвеера который нужно вывести</param>
/// <param name="_TextBox">Контрол - куда нужно вывести статус</param>
private void ShowStatus(Conveer_Status _status, RichTextBox _TextBox, XtraUserControl _userControl)
{
// проверяем - соответствует ли даный контрол текущему потоку
if (_TextBox.InvokeRequired == false)
{
// выводим строку статуса
_TextBox.Text += "" + DateTime.Now.ToString() + " -> " + _status + Environment.NewLine;
_userControl.SetStep(_status);
}
else // создаем вывод статуса в синхронном потоке
{
ShowStatusDelegate _showStatus = new ShowStatusDelegate(ShowStatus);
this.BeginInvoke(_showStatus, new object[] { _status, _TextBox, _userControl });
}
}


/// <summary>
/// Метод Запускает конвеер №1. Сначала запускается инициализация конвера,
/// его тестирование. Затем уже не посредственно работа.
/// </summary>
/// <param name="sender">Источник события - кнопка button_StartConveer1</param>
/// <param name="e">Аргументы события</param>
private void button_StartConveer1_Click(object sender, EventArgs e)
{
Status1 = Conveer_Status.Останов;
textBox_conveer1.Text += "" + DateTime.Now.ToString() + " -> " + Conveer_Status.Останов + Environment.NewLine;
StartConveerDelegate _startConveer = new StartConveerDelegate(StartConveer);
_startConveer.BeginInvoke(Status1, textBox_conveer1, xtraUserControl1, null, null);
}

[/more]
Автор: Omicron_Persey_8
Дата сообщения: 20.09.2010 08:52
cosmosliva

Цитата:
не будет проблем с сериализацией

Будут. Обобщенные коллекции List<T> и Dictionary<TKey, TValue> не сереализуются стандартно в xml при помощи SoapFormatter. Использование BinaryFormatter прокатит.
Автор: MagistrAnatol
Дата сообщения: 20.09.2010 11:55
господа, подсобите с регулярным выражением - закачиваю страничку
http://forum.ru-board.com/postings.cgi?action=edit&forum=35&topic=47321&postno=1
в ней есть номерок в строке
Номер от 13.09.2010 для включения WebFilter-а под ковриком (теги скрытия)23115:1423139878(теги скрытия).
как вытащить етот номер?
Автор: MagistrAnatol
Дата сообщения: 20.09.2010 14:16
с регуляркой разобрался но теперь вопрос-
как закачать страницу с етого форума - раздел "Варез" - там требуется юзер/пас -
закачиваю
HttpWebRequest WebRequestObject = (HttpWebRequest)HttpWebRequest.Create(textBox2.Text);
if (checkBox1.Checked)
{
WebProxy proxy = new WebProxy("proxy", 80);
proxy.BypassProxyOnLocal = true;
WebRequestObject.Proxy = proxy;
}
WebResponse Response = WebRequestObject.GetResponse();
Stream WebStream = Response.GetResponseStream();
StreamReader Reader = new StreamReader(WebStream, Encoding.GetEncoding(1251));
String PageContent = Reader.ReadToEnd();
Reader.Close();
WebStream.Close();
Response.Close();
но закачиваю страницу с незарегеным юзером ?????
Автор: MagistrAnatol
Дата сообщения: 20.09.2010 17:07
вот с кучи примеров попробывал сваять для нашего сайта

CookieContainer cookies;
HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("http://forum.ru-board.com/misc.cgi?action=login"); //делаем запрос
Request.CookieContainer = new CookieContainer();
HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();//получаем ответ
cookies = Request.CookieContainer;
StreamReader sr = new StreamReader(Response.GetResponseStream());//получаем поток для чтения
string htmlCode = sr.ReadToEnd(); //считали весь HTML-код
Response.Close(); //обязательно закрываем сессию соединения

htmlCode = Regex.Replace(htmlCode, "inmembername\" value=\"\"", "inmembername\" value=\"ЮЗЕР\"");
htmlCode = Regex.Replace(htmlCode, "password name=\"inpassword\" value=\"\"", "password name=\"inpassword\" value=\"ПАРОЛЬ\"");

StreamWriter sw = new StreamWriter("content.html"); //создаём поток записи и направляем его на файл
sw.Write(htmlCode); //пишем скачанную строку
sw.Close(); //закрываем поток
StreamReader htmlContent = new StreamReader("content.html");
Request = (HttpWebRequest)WebRequest.Create("http://forum.ru-board.com/misc.cgi?action=login"); //снова запрос
Request.CookieContainer = cookies;
StreamWriter serverRequest = new StreamWriter(Request.GetRequestStream()); //создаём поток управления для отправки данных на сервер.
serverRequest.Write(htmlContent.ReadToEnd()); //скармливаем серваку содержимое файла

Response = (HttpWebResponse)Request.GetResponse();//получаем ответ на авторизацию

но получаю ошибку в строке
System.Net.ProtocolViolationException не обработано
Message=Невозможно отправить тело содержимого с данным типом предиката.
Source=System
StackTrace:
в System.Net.HttpWebRequest.CheckProtocol(Boolean onRequestStream)
в System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
в System.Net.HttpWebRequest.GetRequestStream()
в WindowsFormsApplication2.Form1.button1_Click(Object sender, EventArgs e) в D:\Робота\Проекты в розробке\WindowsFormsApplication2\WindowsFormsApplication2\Form1.cs:строка 43
в System.Windows.Forms.Control.OnClick(EventArgs e)
в System.Windows.Forms.Button.OnClick(EventArgs e)
в System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ButtonBase.WndProc(Message& m)
в System.Windows.Forms.Button.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
в System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
в System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
в System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
в System.Windows.Forms.Application.Run(Form mainForm)
в WindowsFormsApplication2.Program.Main() в D:\Робота\Проекты в розробке\WindowsFormsApplication2\WindowsFormsApplication2\Program.cs:строка 18
в System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
в System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Threading.ThreadHelper.ThreadStart()
InnerException:

Автор: MagistrAnatol
Дата сообщения: 21.09.2010 11:53
господа, есть webBrowser
webBrowser1.Navigate("http://forum.ru-board.com/misc.cgi?action=login");
как мне подождать пока не загрузится страница а потом выполнять код дальше?
Автор: v1rtyaluk
Дата сообщения: 21.09.2010 13:54
Здравствуйте!
Как использовать КукиКонтайнер от первого хттп запроса в другом?
Пробую так:

Код:
private CookieContainer cookieContainer=new CookieContainer();
string goToUri, goToUri2;
public void Login()
{
HttpWebRequest httpWebRequest =
(HttpWebRequest)
WebRequest.Create(goToUri);
httpWebRequest.CookieContainer = cookieContainer;
StreamReader reader = null;
try
{
HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
reader = new StreamReader(httpWebResponse.GetResponseStream());
reader.Close();
httpWebResponse.Close();
HttpWebRequest httpWebRequest2 = (HttpWebRequest) WebRequest.Create(goToUri2);
httpWebRequest2.CookieContainer = cookieContainer;
...
}
Автор: MagistrAnatol
Дата сообщения: 21.09.2010 16:39
народ, что надо поставить на тачке чтобы заработала прога на 4 фреймворке?
dotNetFx40_Client_x86_x64.exe
dotNetFx40_Full_x86_x64.exe
???
или все?
Автор: MagistrAnatol
Дата сообщения: 22.09.2010 09:25
господа, есть код
HtmlElement l_element = webBrowser.Document.GetElementById("submit");
object obj = l_element.DomElement;
MethodInfo mi = obj.GetType().GetMethod("click");
mi.Invoke(obj, new object[0]);

в строке mi.Invoke(obj, new object[0]); пр запуске на 2003 винде, на вынь 7все нормально, вываливается ошибка
System.NullReferenceException: Object reference not set to an instance of an object.
как ее побороть или как по другому нажать кнопку на форме логина веб страницы?
Автор: Omicron_Persey_8
Дата сообщения: 22.09.2010 11:18
MagistrAnatol

Цитата:
народ, что надо поставить на тачке чтобы заработала прога на 4 фреймворке?
dotNetFx40_Client_x86_x64.exe
dotNetFx40_Full_x86_x64.exe
???
или все?

Это зависит от того, чего ты наваял в проекте. В студии есть шаблоны для Client Profile.

Client Profile - это набор часто используемых, по мнению Майкрософт, сборок:
common language runtime (CLR)
ClickOnce
Windows Forms
Windows Presentation Foundation (WPF)
Windows Communication Foundation (WCF)
Entity Framework
Windows Workflow Foundation
Speech
XSLT support
LINQ to SQL
Runtime design libraries for Entity Framework and WCF Data Services
Managed Extensibility Framework (MEF)
Dynamic types
Parallel-programming features, such as Task Parallel Library (TPL), Parallel LINQ (PLINQ), and Coordination Data Structures (CDS)
Debugging client applications

Подробности тут.
Автор: MagistrAnatol
Дата сообщения: 22.09.2010 12:27
Omicron_Persey_8
понятно.
А по поводу предыдущего поста ??
foreach (HtmlElement heForm in webBrowser.Document.Forms)
{
HtmlElement he = heForm.All["inmembername"];
if (he != null)
{
he.SetAttribute("value", textBox3.Text);
}
}

foreach (HtmlElement heForm in webBrowser.Document.Forms)
{
HtmlElement he = heForm.All["inpassword"];
if (he != null)
{
he.SetAttribute("value", textBox5.Text);
}
}
MessageBox.Show(textBox3.Text + ":" + textBox5.Text);
toolStripStatusLabel1.Text = "Логинимся";
// код не работае на винь 2003
HtmlElement l_element = webBrowser.Document.GetElementById("submit");
object obj = l_element.DomElement;
System.Reflection.MethodInfo mi = obj.GetType().GetMethod("click");
mi.Invoke(obj, new object[0]); - на 2003 винде System.NullReferenceException: Object reference not set to an instance of an object
а webBrowser.Document.All["submit"].InvokeMember("click"); почему-то отправляет неверные данные и выдает страницу с незарегеным юзером?


Добавлено:
блин,
webBrowser.Document.All["inmembername"].SetAttribute("value", textBox3.Text);
webBrowser.Document.All["inpassword"].SetAttribute("value", textBox5.Text);
webBrowser.Document.All["submit"].InvokeMember("click");
на вынь 7 работает на вынь 2003 нет - шо за хрень?

Добавлено:
Omicron_Persey_8
если у меня в свойствах проекта стоит Клиент профайл - то ставить надо .нет клиент профайл?
Автор: Omicron_Persey_8
Дата сообщения: 22.09.2010 16:09
MagistrAnatol

Цитата:
если у меня в свойствах проекта стоит Клиент профайл - то ставить надо
.нет клиент профайл?

Не принципиально. .NET Framework Full включает в себя Client Profile.

А по поводу кода, думаю что здесь

Код: System.Reflection.MethodInfo mi = obj.GetType().GetMethod("click");
Автор: MagistrAnatol
Дата сообщения: 23.09.2010 10:51
Omicron_Persey_8
да, но почему тогда работает на вынь 7?
Автор: ComradG
Дата сообщения: 23.09.2010 19:00
Напарился я уже с написанием межъязыкового конвертора NET: после прогона на нескольких простых примерах выяснилось, что нельзя сделать конвертор универсальным. Например, VB.NET код:

Код: Imports System
Imports Microsoft.VisualBasic

Module MainModule

Public Sub Main()
Dim intHigh As Integer = 100
Dim intLow As Integer = 1
Dim intNum As Integer

For i As Integer = 1 To 5
Randomize
intNum = Int((intHigh - intLow + 1) * Rnd + intLow)
Console.WriteLine(intNum)
Next
End Sub

End Module
Автор: Omicron_Persey_8
Дата сообщения: 23.09.2010 23:26
ComradG

Цитата:
И потом, похоже все же довольно плохая идея делать конвертор сорцов VB.NET в C#, неправда ли?

Ну, в общем, да. Если это полностью готовый класс, то его проще в отдельную сборку скомпоновать. Если кусок алгоритма - то лучше руками перевести, заодно в работе разобраться.
Кстати, посмотри в сторону CodeDOM. Он предназначен несколько для другого, но код парсить может. Хороший пример.

MagistrAnatol

Цитата:
да, но почему тогда работает на вынь 7?

А .NET и HTML для разбора один и тот же?
Автор: MagistrAnatol
Дата сообщения: 24.09.2010 08:15
Omicron_Persey_8
ага, причем на 2 версии нета одни ошибки на 4 другие, точнее разные реализации,
а страничка одна и та же логин етого форума,
да я в принцыпе уже сделал - соединил два варианта реализации,
просто интересно почему так, видать в дот нете используются и библиотеки сыстемы
не дот.нетовские
Автор: ComradG
Дата сообщения: 24.09.2010 10:41
Omicron_Persey_8
Спасибо за советы. Относительно примера с codeproject - смотрел. Интересная штука. Но, наверное, все же от дальнейшей разработки конвертора все же откажусь, ибо в чем я действительно не ахти разбираюсь, так это VB.NET, на C# то я прогаю с самых первых версий языка. Так что буду кодить дальше IDE только для C#
Автор: salexn1
Дата сообщения: 24.09.2010 10:44
Вопрос по Asp.Net. Есть форма, в которой используется модально окно, реализованное на ModalPopupExtender из AjaxControlToolkit. Необходимо в этом модальном окне при нажатии на кнопку показать еще одно модальное окно. Бьюсь - не получается. Если можно - небольшой пример кода.
Спасибо!
Автор: Omicron_Persey_8
Дата сообщения: 25.09.2010 00:33
MagistrAnatol

Цитата:
просто интересно почему так, видать в дот нете используются и библиотеки сыстемы
не дот.нетовские

Конечно, платформа .NET не Java, которая по большей части сама на себе написана. .NET без винды немыслим. А класс HtmlElement, которым ты парсишь страницу, работает через COM-интерфейс IHtmlDocument, который сидит в библиотеке mshtml.dll и является куском InternetExplorer'а. А уж он-то в 2003 винде и в 7-ке разный.
Автор: v1rtyaluk
Дата сообщения: 28.09.2010 01:16
Ребята, помогите с разборкой xml-файла.
Файл содержит массив из объектов которые содержат поля, что-то типа:

Код:
<audio>
<aid>SomeAuthor</aid>
<owner_id>OwnerID</owner_id>
<artist>SongArtist</artist>
<title>SongTitle</title>
<duration>DurationInSeconds</duration>
<url>URL_OfThisSong</url>
</audio>

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102

Предыдущая тема: Как удалить/добавить/отключить/включить устройство?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.