С помощью bind
относительно легко записать события определенных типов - вы обнаружите, что <ButtonPress>
, <ButtonRelease>
, <Enter>
, <Leave>
, <FocusIn>
, <FocusOut>
, <KeyPress>
и<KeyRelease>
охватывает почти все, что вас интересует, а затем воспроизводите их с event generate
.(Вам необходимо записать довольно много информации о каждом событии, чтобы правильно сгенерировать его, но базовая модель - это модель событий X с похожими именами.) Предполагается, что вы не хотите поддерживать функцию вырезания и вставки между приложениями.или перетаскивание для целей записи;это сильно усложняет.Скорее всего, у вас будет много событий;запись в базу данных SQLite может иметь большой смысл.
Однако вы должны тщательно продумать, какие части приложения вы хотите записать.Имеет ли значение, что порядок двух кнопок во внешней оболочке приложения вне CAD-подобной области поменялся местами?Для большинства пользователей, если вы четко понимаете, что делают кнопки (с помощью четких ярлыков и значков), это не очень важно, но для воспроизведения записанных событий это может иметь огромное значение.Вместо этого для частей приложения, представляющих собой простые кнопки и поля редактирования, я бы не записывал их детали, а вместо этого просто записывал бы, когда нажимаются кнопки и изменения в текстовом содержимом записейи так далее.По сути, он захватывает события более высокого уровня, и его намного легче правильно воспроизвести.Только когда пользователь находится в этой основной области САПР, вам нужна полная детализация.
Кроме того, остерегайтесь изменений в размерах шрифта и размерах экрана / масштабировании .Они могут изменить порядок вещей и произойти из-за изменений на уровне системы, выходящих за рамки вашего приложения.