лог скорости передачи данных
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
лог скорости передачи данных - 2008-10-03 08:34:46.700000
|
|
|
Anthonylm
Сообщений: 1
Оценки: 0
Присоединился: 2008-10-03 08:26:05.696666
|
Доброго всем времени суток. Народ, подскажите плиз….. Есть локальная сеть 1 и локальная сеть 2. доступ в интеренет предоставляеться через локальную сеть 2. Нужна программа которая бы позволяла вести учет трафика на компьютере из локальной сети 1. есть такие? программ кучу перепробовал, в реальном времени показывают скорость подключения, а вот чтобы вели лог, хотя бы среднюю скорость в день. Нужно собрать данные хотя бы за неделю. Доступа к серверам из локальной сети 2 нет.
|
|
|
RE: лог скорости передачи данных - 2008-10-03 12:28:32.160000
|
|
|
DenischPro
Сообщений: 10
Оценки: 0
Присоединился: 2008-10-02 14:51:17.056666
|
Здравствуйте, Anthonylm! Вашу программу можно реализовать несколькими способами от простого до сложного. Простой: 1)Запускаем программу, отображающюю скорость подключения! 2)У любой такой программы есть обязательно окошечко для вывода данных в диалоговом окне. Определяем его id. Каждая прога с диалоговым окном, созданным при помощи одной из функций ряда CreateDialogBox, имеет такой id. Этот id не меняется никогда, он зашит в exe'шнике. Для этого воспользоваться можно плагином к OllyDbg отладчикку Windows Juggler. 2.1) Прога с диалоговым окном, созданным при помощи CreateWindow, CreateWindowEx может не иметь id, но тогда имеет точный порядок расположения в родительском окне. Тогда вместо id находим его порядковый номер программно, предварительно перед этим найдя имя класса родительского окна(тоже можно воспользоваться Windows Juggler). Код на Си++ будет выглядеть примерно так: HWND hwndParent = FindWindow(lpClassName, NULL);//Находим дескриптор родительского окна if(bWndHasId)//если окно с нужной наи инфой имеет id hwndToOutInfo = GetDlgItem(hwndParent, id); else EnumChildWindows(hwndParent, EnumChildWindowsProc, NULL);//Перечисляем дочерние окна SendMessage(hwndToOutInfo, WM_GETTEXT, NULL, strInfo);//Забираем нужную нам инфу //… //… int n = 0; BOOL CALLBACK EnumChildWindowsProc(HWND hwndChild, LPARAM) { if(n == nWndToOutInfo)//nWndToOutInfo находится опытным путем { hwndToOutInfo = hwndChild;//Будем использовать найденный дескриптор return false;//Перечислять больше необязательно } else { n++; return true;//Перечисляем дальше } } 3) Осталось только реализовать таймер и лог простой таймер CreateThread(…,ThreadProc,…); //… //… DWORD WINAPI ThreadProc(LPARAM); { while(WaitForSingleObject(hEventExit, 50) == WAIT_TIMEOUT)//время в миллисекундах { //Код, забирающий инфу //Код лога } return 0; } Лог: HANDLE hFile = CreateFile(…, CREATE_NEW,…); if(hFile != INVLALID_HANDLE_VALUE) { char s[0x100]; DWORD dwBytesWritten; sprintf(s, "Нужный нам формат вывода%s\n", strInfo); WriteFile(hFile, s, strlen(s), &dwBytesWritten, NULL); CloseHandle(hFile); } 4) Дело за малым - оптимизировать! Ж-:)
|
|
|
|
|