Имя: Пароль:
IT
Админ
Запись действий в окне приложения
0 Dirk Diggler
 
10.11.20
15:16
Есть ли софт, заточенный под сабж?
А то есть пара очень талантливых сотрудников, которые "я не знаю, что я сделал, оно само".
Писать всё, как это делают всякие бандикамы и стахановцы - это совсем конечно пипец, я на такое пойтить не могу.

Но вот такой визор для этих оленей, который будет писать только происходящее в окне 1С, я бы пользовал периодически.
Есть ли?
1 ДенисЧ
 
10.11.20
15:20
UILogRecorder
/UILogRecorder [–TPort<Номер порта TCP/IP>] [-File<Путь>]
— запись журнала интерактивных действий пользователя. Журнал можно использовать для формирования сценария на встроенном языке "1С:Предприятие", позволяющего воспроизводить записанные действия. Может совмещаться с параметром /TESTCLIENT.
-TPort<Номер TCP-порта> указывает номер порта для взаимодействия клиента и менеджера тестирования. По умолчанию используется порт 1538.
-File<Путь> имя файла, в который будет сохраняться журнал действий пользователя после завершения записи, если к клиенту не подключён менеджер тестирования.
2 Dirk Diggler
 
10.11.20
15:24
>после завершения записи

это что за момент? Нужно чтобы писалось постоянно, от и до.
3 Irbis
 
10.11.20
15:29
>> А то есть пара очень талантливых сотрудников, которые "я не знаю, что я сделал, оно само"

Терморектальный криптоанализ без использования местной и/или общей анестезии спасёт отца русской демократии
4 Жан Пердежон
 
10.11.20
15:29
(1) не подойдет ТСу, да и вообще затея неудачная в (0).
- делайте инструкции, может даже видео.
а за фразы "я не знаю, что я сделал..." - сразу слать на йух.
5 spiller26
 
10.11.20
15:32
(0) Никак, ставь версионизацию объектов.
Это робот - как ты сказал ему , так оно тебе и сделал.
6 Dirk Diggler
 
10.11.20
16:05
(4) Всё есть.
(3) Доказательства нужны.
7 DmitriyDI
 
10.11.20
16:10
(0) obs, умеет записывать, только конкретную программу, программа для стрименга и записи игр, с 1Сом ее использовать не пробовал, по идее должна подойти, там захват приложения включаешь и все
8 Irbis
 
10.11.20
17:07
(6) Кому и зачем?
9 mikecool
 
10.11.20
17:29
(4) +1
не знает, как сделать - отобрать права к этому участку работ
10 Dirk Diggler
 
10.11.20
18:03
(8) любому адекватному руководителю нужны.
11 ДенисЧ
 
10.11.20
18:05
(10) У адекватного руководителя неадекватные исполнители, у которых "оно само как ломанулось!", не задерживаются
12 Dirk Diggler
 
10.11.20
18:06
(11) О технически подкованные, но инфантильные бородатые друзья мои, у адекватного руководителя задерживаются все, кто полезен для работы.
13 Irbis
 
10.11.20
18:49
(10)Адекватный куроводитель про "оно само" только поржёт.
(12) А это второй конец той же палки. Если так нужен тот, у кого "оно само", то нафейхоа доказательства. Пусть и дальше "оно само" работает.
14 Dirk Diggler
 
11.11.20
21:42
Накатал скрипт на аутоит. сидит в автозагрузке, делает скриншоты при активности в окне, переносит их на сервер когда юзер уи валяет более 5 секунд. засунул в автозагрузку. работает.



#include <AutoItConstants.au3>
#include <FileConstants.au3>
#include <Misc.au3>
#include <ScreenCapture.au3>
#include <WindowsConstants.au3>
#include <WinAPISys.au3>
#include <Date.au3>
#include <Timers.au3>

Global Const $SDIR = @TempDir & "\1cscreenlog\"
Global Const $ServerDir = "\\server\files\logs\1cscreenlog\" & @ComputerName & "\"

Global $iIdleTime
Global $wHnd

$dll = DllOpen("user32.dll")

DirCreate($SDIR)
DirCreate($ServerDir)

ProcessSetPriority(@ScriptName, $PROCESS_LOW)
ProcessSetPriority("AutoIt3.exe", $PROCESS_LOW)
Opt("TrayIconHide", 1)

_ScreenCapture_SetJPGQuality(20)



While True
    $wHnd = WinWaitActive("[CLASS:V8TopLevelFrame]", "", 5)
    While WinActive("[CLASS:V8TopLevelFrame]") And Not $wHnd = 0

        If _IsPressed("01", $dll) Or _IsPressed("02", $dll) Or _IsPressed("0D", $dll) Or _IsPressed("1B", $dll) Or _IsPressed("73", $dll) Or _IsPressed("78", $dll) Or _IsPressed("2E", $dll) Then
            MakeScreenShot()
        EndIf
        $iIdleTime = _Timer_GetIdleTime()
        If $iIdleTime > 5000 Then
            MoveScreenShotsToServer()
        Else
            Sleep(100) ;
        EndIf
    WEnd
    $iIdleTime = _Timer_GetIdleTime()


    If $iIdleTime > 5000 Then
        MoveScreenShotsToServer()
    EndIf
WEnd

Exit


Func MakeScreenShot()
    _ScreenCapture_CaptureWnd(FileName(), $wHnd, 0, 0, -1, -1, True)

    Sleep(500) ;

    _ScreenCapture_CaptureWnd(FileName(), $wHnd, 0, 0, -1, -1, True)
EndFunc   ;==>MakeScreenShot

Func FileName()
    Return $SDIR & @YEAR & "-" & @MON & "-" & @MDAY & "-" & @HOUR & "-" & @MIN & "-" & @SEC & "-" & @MSEC & ".jpg"
EndFunc   ;==>FileName

Func MoveScreenShotsToServer()
    FileMove($SDIR & "*", $ServerDir, $FC_OVERWRITE + $FC_CREATEPATH)
EndFunc   ;==>MoveScreenShotsToServer