Отслеживание действий юзера

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
smok
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 09.08.2002 (Пт) 5:41
Откуда: Ukraine

Отслеживание действий юзера

Сообщение smok » 13.11.2003 (Чт) 3:12

Есть прога по работе с БД (Access 2000) - много форм для разных операций. Время от времени проявляются такие глюки, что не поймешь, то ли с кодом что-то не то, то ли юзера понажимали не тех кнопок, то ли вообще система сбойнула.
Как отследить все действия пользователей. Вариант с отработкой mouse_down на каждом контроле кажется не самым изящным решением, да еще и неизвестно как будет работать.
Заранее премного бл.

val
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 14.11.2002 (Чт) 1:14

Сообщение val » 13.11.2003 (Чт) 6:02

Создай log фаил и записывай в него

smok
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 09.08.2002 (Пт) 5:41
Откуда: Ukraine

Сообщение smok » 14.11.2003 (Пт) 4:24

Понятно, что писать нужно. Только не хотелось бы перегружать прогу. Да и как это сделать? Для каждого контрола на всех 7-ми формах писать обработчик клика? :( Да еще клавиши иногда нажимаются.
Или в основном модуле следить за координатами мыши в момент нажатий батонов, тогда еще добавится заморочка с расположением и активностью форм на экране... :cry:
Люди, у кого-нибудь была такая проблемка?

val
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 14.11.2002 (Чт) 1:14

Сообщение val » 14.11.2003 (Пт) 7:09

Да незачем тебе отслеживать координаты мыши или нажатия клавиши.
Напиши обыкновенный класс который будет писать информацию в фаил.
Например:

Public Sub WriteToLog(ByVal sString As String)
Dim iLogFileHandle As Integer

iLogFileHandle = FreeFile
Open vmsLogFileName For Append As iLogFileHandle
Print #iLogFileHandle, Format(Date, "mm/dd/yyyy") & " @ " & Format(Time, "hh:mm:ss") & ">" & sString
Close iLogFileHandle

End Sub

Создай properties которые будут содержать в себе file name и дерикторию
Например:
Public Property Let DebugFileName(ByVal sValue As String)
vmsLogFileName = sValue
End Property

Public Property Get DebugFileName() As String
DebugFileName = vmsLogFileName
End Property

Также с помощью property можно установить максимальный размер файла. Написать маленькую функцию и перед добавлением записи в фаил, проверять его размер. Если фаил достиг определённого размера то тогда переименуй фаил и продолжай запись в новый.
Чтото наподобие такого:

Public Property Let LogFileSizeInMegs(ByVal nValue As Single)
vmfLogFileSizeInMegs = nValue
End Property

Public Property Get LogFileSizeInMegs() As Single
LogFileSizeInMegs = vmfLogFileSizeInMegs
End Property

Private Sub CheckLogSize()
Dim iCounter As Integer

'Checks the Log file and rename it if it's too big

If Dir(vmsLogFileName) <> "" Then
If FileLen(vmsLogFileName) > (vmfLogFileSizeInMegs * 1000000) Then
iCounter = 65
Do
If Dir(vmsDirectory & "\" & Format(Date, "MMddyyyy") & Chr(iCounter) & ".LOG") <> "" Then
iCounter = iCounter + 1
End If
Loop Until Dir(vmsDirectory & "\" & Format(Date, "MMddyyyy") & Chr(iCounter) & ".LOG") = ""

Name vmsLogFileName As vmsDirectory & "\" & Format(Date, "MMddyyyy") & Chr(iCounter) & ".LOG"
End If
End If

End Sub

объявляешь переменную для класса
Dim objLogUtil as new clsLog

После того как user кликнул на Button1 в событии Command1_Click
пишешь в фаил
objLogUtil.WriteToLog("User Вася нажал на Button1")

Надеюсь понятно.

smok
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 09.08.2002 (Пт) 5:41
Откуда: Ukraine

Сообщение smok » 19.11.2003 (Ср) 2:11

Спасибо! :D


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 8

    TopList  
cron