ok-script 1.0.149__tar.gz → 1.0.150__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ok_script-1.0.149 → ok_script-1.0.150}/PKG-INFO +1 -1
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/capture_methods/browser.py +18 -7
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/capture_methods/hwnd_window.py +21 -6
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/capture_methods/windows_graphics.py +49 -44
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/StartController.py +17 -17
- {ok_script-1.0.149 → ok_script-1.0.150}/ok_script.egg-info/PKG-INFO +1 -1
- {ok_script-1.0.149 → ok_script-1.0.150}/MANIFEST.in +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/README.md +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/__main__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/alas/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/alas/emulator_base.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/alas/emulator_windows.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/alas/platform_windows.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/alas/utils.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/capture/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/capture/adb/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/capture/adb/deep.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/capture/adb/minitouch.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/capture/adb/nemu_ipc.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/capture/adb/nemu_utils.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/capture/adb/pool.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/capture/adb/timer.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/capture/adb/util.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/capture/windows/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/capture/windows/d3d11.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/capture/windows/dump.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/cli.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/DeviceManager.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/capture.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/capture_methods/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/capture_methods/adb.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/capture_methods/base.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/capture_methods/bitblt.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/capture_methods/bitblt_utils.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/capture_methods/desktop_duplication.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/capture_methods/image.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/capture_methods/nemu_ipc.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/capture_methods/types.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/capture_methods/update.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/interaction.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/interaction_methods/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/interaction_methods/adb.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/interaction_methods/base.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/interaction_methods/browser.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/interaction_methods/do_nothing.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/interaction_methods/foreground_post_message.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/interaction_methods/genshin.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/interaction_methods/keys.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/interaction_methods/post_message.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/interaction_methods/pydirect.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/interaction_methods/pynput.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/interaction_methods/swipe.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/device/intercation.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/feature/Box.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/feature/Feature.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/feature/FeatureSet.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/feature/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/Communicate.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/MainWindow.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/MessageWindow.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/TabTitles.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/about/AboutTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/about/HttpTextEdit.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/about/LinksBar.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/about/ProjectCard.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/about/VersionCard.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/about/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/common/OKIcon.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/common/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/common/config.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/common/style_sheet.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/debug/DebugTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/debug/OverlayWidget.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/debug/RunCodeTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/debug/Screenshot.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/debug/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/i18n/GettextTranslator.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/i18n/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/i18n/en_US.qm +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/i18n/en_US.ts +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/i18n/es_ES.qm +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/i18n/es_ES.ts +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/i18n/ja_JP.qm +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/i18n/ja_JP.ts +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/i18n/ko_KR.qm +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/i18n/ko_KR.ts +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/i18n/path.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/i18n/update.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/i18n/zh_CN.qm +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/i18n/zh_CN.ts +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/i18n/zh_TW.qm +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/i18n/zh_TW.ts +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/overlay/OverlayWindow.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/overlay/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/qss/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/qss/dark/card.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/qss/dark/discord.svg +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/qss/dark/heart.svg +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/qss/dark/message_window.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/qss/dark/setting_interface.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/qss/dark/status_bar.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/qss/dark/stop.svg +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/qss/dark/tab.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/qss/light/card.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/qss/light/discord.svg +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/qss/light/heart.svg +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/qss/light/message_window.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/qss/light/setting_interface.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/qss/light/status_bar.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/qss/light/stop.svg +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/qss/light/tab.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/qt.qrc +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/resources.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/settings/GlobalConfigCard.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/settings/SettingTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/settings/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/start/LogWindow.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/start/SelectCaptureListView.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/start/SelectInteractionListView.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/start/StartCard.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/start/StartTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/start/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/ConfigCard.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/ConfigItemFactory.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/ConfigLabelAndWidget.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/EditTaskTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/LabelAndButtons.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/LabelAndDoubleSpinBox.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/LabelAndDropDown.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/LabelAndGlobal.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/LabelAndLineEdit.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/LabelAndList.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/LabelAndMultiSelection.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/LabelAndSpinBox.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/LabelAndSwitchButton.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/LabelAndTextEdit.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/LabelAndWidget.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/MarkUpWindow.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/ModifyListDialog.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/ModifyListItem.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/OneTimeTaskTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/RecordScript.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/ScheduleTaskTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/ScriptPackager.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/StartButton.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/TaskCard.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/TaskManger.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/TaskOpButton.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/TaskTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/TemplateFactory.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/TemplateTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/TooltipTableWidget.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/TriggerTaskTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/tasks/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/util/Alert.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/util/InitWorker.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/util/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/util/app.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/util/download.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/util/pip_util.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/util/pyappify_startup.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/BaseLoading.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/BaseWindow.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/Card.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/CustomTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/EmptyCard.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/FlowLayout.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/FramelessDialog.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/ImageWidget.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/ListTableWidgetItem.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/NumericTableWidgetItem.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/OkCompactSpinBox.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/SortingTableWidgetItem.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/StartLoadingDialog.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/StatusBar.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/Tab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/TabWidget.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/UpdateConfigWidgetItem.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/WidgetWithVLabel.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/YesNonWidgetItem.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/gui/widget/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/ocr/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/ocr/download_paddle_model.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/Windows/Foundation/Collections.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/Windows/Foundation/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/Windows/Globalization/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/Windows/Graphics/Capture/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/Windows/Graphics/DirectX/Direct3D11/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/Windows/Graphics/DirectX/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/Windows/Graphics/Imaging/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/Windows/Graphics/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/Windows/Media/Ocr/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/Windows/Media/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/Windows/Security/Cryptography/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/Windows/Security/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/Windows/Storage/Streams/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/Windows/Storage/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/Windows/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/delegate.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/export.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/idldsl.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/inspectable.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/roapi.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/types.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/rotypes/winstring.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/task/DiagnosisTask.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/task/TaskExecutor.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/task/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/task/exceptions.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/task/task.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/test/OKTestRunner.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/test/RunTests.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/test/TaskTestCase.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/test/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/third_party/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/third_party/paperclip.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/update/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/update/copy_ok_folder.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/update/inline_ok_requirements.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/util/Analytics.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/util/GlobalConfig.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/util/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/util/blur.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/util/clazz.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/util/collection.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/util/color.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/util/config.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/util/file.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/util/gpu_driver_settings.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/util/handler.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/util/i18n.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/util/logger.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/util/partial_sync_repo.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/util/print_hwnd.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/util/process.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/util/window.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok/util/windows_schedule.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok_script.egg-info/SOURCES.txt +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok_script.egg-info/dependency_links.txt +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok_script.egg-info/entry_points.txt +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok_script.egg-info/not-zip-safe +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok_script.egg-info/requires.txt +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/ok_script.egg-info/top_level.txt +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/setup.cfg +0 -0
- {ok_script-1.0.149 → ok_script-1.0.150}/setup.py +0 -0
|
@@ -282,13 +282,24 @@ class BrowserWindowAdapter:
|
|
|
282
282
|
def height(self):
|
|
283
283
|
return self.capture.height
|
|
284
284
|
|
|
285
|
-
@property
|
|
286
|
-
def exe_full_path(self):
|
|
287
|
-
return self.capture.exe_full_path
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
285
|
+
@property
|
|
286
|
+
def exe_full_path(self):
|
|
287
|
+
return self.capture.exe_full_path
|
|
288
|
+
|
|
289
|
+
@property
|
|
290
|
+
def capture_target_signature(self):
|
|
291
|
+
return (
|
|
292
|
+
self.hwnd,
|
|
293
|
+
self.width,
|
|
294
|
+
self.height,
|
|
295
|
+
self.capture.x_offset,
|
|
296
|
+
self.capture.y_offset,
|
|
297
|
+
self.capture.exe_full_path,
|
|
298
|
+
)
|
|
299
|
+
|
|
300
|
+
def get_abs_cords(self, x, y):
|
|
301
|
+
try:
|
|
302
|
+
rect = win32gui.GetWindowRect(self.capture.hwnd)
|
|
292
303
|
return rect[0] + self.capture.x_offset + x, rect[1] + self.capture.y_offset + y
|
|
293
304
|
except:
|
|
294
305
|
return x, y
|
|
@@ -190,12 +190,27 @@ class HwndWindow:
|
|
|
190
190
|
def get_abs_cords(self, x, y):
|
|
191
191
|
return self.x + x, self.y + y
|
|
192
192
|
|
|
193
|
-
def get_top_window_cords(self, x, y):
|
|
194
|
-
return x - self.top_offset_x, y - self.top_offset_y
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
193
|
+
def get_top_window_cords(self, x, y):
|
|
194
|
+
return x - self.top_offset_x, y - self.top_offset_y
|
|
195
|
+
|
|
196
|
+
@property
|
|
197
|
+
def capture_target_signature(self):
|
|
198
|
+
hwnds = tuple(hwnd_info[0] for hwnd_info in (self.hwnds or []))
|
|
199
|
+
return (
|
|
200
|
+
self.hwnd,
|
|
201
|
+
self.top_hwnd,
|
|
202
|
+
self.width,
|
|
203
|
+
self.height,
|
|
204
|
+
self.real_x_offset,
|
|
205
|
+
self.real_y_offset,
|
|
206
|
+
self.real_width,
|
|
207
|
+
self.real_height,
|
|
208
|
+
hwnds,
|
|
209
|
+
)
|
|
210
|
+
|
|
211
|
+
def do_update_window_size(self):
|
|
212
|
+
if self.device_manager and getattr(self.device_manager, 'capture_method', None):
|
|
213
|
+
from ok.device.capture_methods.browser import BrowserCaptureMethod
|
|
199
214
|
if isinstance(self.device_manager.capture_method, BrowserCaptureMethod):
|
|
200
215
|
return
|
|
201
216
|
try:
|
|
@@ -3,18 +3,18 @@ import threading
|
|
|
3
3
|
import time
|
|
4
4
|
|
|
5
5
|
import numpy as np
|
|
6
|
-
import win32gui
|
|
7
|
-
|
|
8
|
-
from ok.util.logger import Logger
|
|
9
|
-
from ok.util.window import WINDOWS_BUILD_NUMBER, WGC_NO_BORDER_MIN_BUILD
|
|
6
|
+
import win32gui
|
|
7
|
+
|
|
8
|
+
from ok.util.logger import Logger
|
|
9
|
+
from ok.util.window import WINDOWS_BUILD_NUMBER, WGC_NO_BORDER_MIN_BUILD
|
|
10
10
|
|
|
11
11
|
from ok.device.capture_methods import bitblt
|
|
12
12
|
from ok.device.capture_methods.base import BaseWindowsCaptureMethod
|
|
13
13
|
from ok.device.capture_methods.bitblt_utils import PBYTE, composite_hwnds, get_crop_point
|
|
14
14
|
|
|
15
|
-
logger = Logger.get_logger(__name__)
|
|
16
|
-
|
|
17
|
-
class WindowsGraphicsCaptureMethod(BaseWindowsCaptureMethod):
|
|
15
|
+
logger = Logger.get_logger(__name__)
|
|
16
|
+
|
|
17
|
+
class WindowsGraphicsCaptureMethod(BaseWindowsCaptureMethod):
|
|
18
18
|
name = "Windows Graphics Capture"
|
|
19
19
|
description = "fast, most compatible, capped at 60fps"
|
|
20
20
|
|
|
@@ -34,10 +34,11 @@ class WindowsGraphicsCaptureMethod(BaseWindowsCaptureMethod):
|
|
|
34
34
|
self.dxdevice = None
|
|
35
35
|
self.immediatedc = None
|
|
36
36
|
self.last_frame = None
|
|
37
|
-
self.last_size = None
|
|
38
|
-
self.last_start_failure_key = None
|
|
39
|
-
self.last_start_failure_time = 0
|
|
40
|
-
self.
|
|
37
|
+
self.last_size = None
|
|
38
|
+
self.last_start_failure_key = None
|
|
39
|
+
self.last_start_failure_time = 0
|
|
40
|
+
self.capture_target_signature = None
|
|
41
|
+
self.start_or_stop()
|
|
41
42
|
|
|
42
43
|
def frame_arrived_callback(self, *args):
|
|
43
44
|
next_frame = None
|
|
@@ -133,12 +134,12 @@ class WindowsGraphicsCaptureMethod(BaseWindowsCaptureMethod):
|
|
|
133
134
|
try:
|
|
134
135
|
if hwnd and win32gui.IsWindow(hwnd):
|
|
135
136
|
return hwnd
|
|
136
|
-
except Exception:
|
|
137
|
-
pass
|
|
138
|
-
return 0
|
|
139
|
-
|
|
140
|
-
def start_or_stop(self, capture_cursor=False):
|
|
141
|
-
with self.lock:
|
|
137
|
+
except Exception:
|
|
138
|
+
pass
|
|
139
|
+
return 0
|
|
140
|
+
|
|
141
|
+
def start_or_stop(self, capture_cursor=False):
|
|
142
|
+
with self.lock:
|
|
142
143
|
if self.exit_event.is_set():
|
|
143
144
|
logger.warning('start_or_stop exit_event.is_set() return')
|
|
144
145
|
self.close()
|
|
@@ -149,16 +150,18 @@ class WindowsGraphicsCaptureMethod(BaseWindowsCaptureMethod):
|
|
|
149
150
|
return False
|
|
150
151
|
|
|
151
152
|
capture_hwnd = self.get_capture_hwnd()
|
|
152
|
-
if not capture_hwnd:
|
|
153
|
-
logger.warning(f'start_or_stop no valid hwnd: {self.hwnd_window}')
|
|
154
|
-
self.close()
|
|
155
|
-
return False
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
153
|
+
if not capture_hwnd:
|
|
154
|
+
logger.warning(f'start_or_stop no valid hwnd: {self.hwnd_window}')
|
|
155
|
+
self.close()
|
|
156
|
+
return False
|
|
157
|
+
|
|
158
|
+
target_signature = self.hwnd_window.capture_target_signature
|
|
159
|
+
if self.frame_pool is not None and self.capture_target_signature != target_signature:
|
|
160
|
+
logger.info(
|
|
161
|
+
f'start_or_stop WGC target changed from {self.capture_target_signature} to {target_signature}')
|
|
162
|
+
self.close()
|
|
163
|
+
|
|
164
|
+
failure_key = capture_hwnd
|
|
162
165
|
if self.frame_pool is None and self.last_start_failure_key == failure_key and time.time() - self.last_start_failure_time < 5:
|
|
163
166
|
return False
|
|
164
167
|
|
|
@@ -204,9 +207,10 @@ class WindowsGraphicsCaptureMethod(BaseWindowsCaptureMethod):
|
|
|
204
207
|
self.session.IsCursorCaptureEnabled = capture_cursor
|
|
205
208
|
if WINDOWS_BUILD_NUMBER >= WGC_NO_BORDER_MIN_BUILD:
|
|
206
209
|
self.session.IsBorderRequired = False
|
|
207
|
-
self.session.StartCapture()
|
|
208
|
-
self.last_start_failure_key = None
|
|
209
|
-
|
|
210
|
+
self.session.StartCapture()
|
|
211
|
+
self.last_start_failure_key = None
|
|
212
|
+
self.capture_target_signature = target_signature
|
|
213
|
+
return True
|
|
210
214
|
except Exception as e:
|
|
211
215
|
self.last_start_failure_key = failure_key
|
|
212
216
|
self.last_start_failure_time = time.time()
|
|
@@ -251,10 +255,11 @@ class WindowsGraphicsCaptureMethod(BaseWindowsCaptureMethod):
|
|
|
251
255
|
if self.immediatedc:
|
|
252
256
|
self.immediatedc.Release()
|
|
253
257
|
self.immediatedc = None
|
|
254
|
-
if self.cputex:
|
|
255
|
-
self.cputex.Release()
|
|
256
|
-
self.cputex = None
|
|
257
|
-
self.capture_hwnd = 0
|
|
258
|
+
if self.cputex:
|
|
259
|
+
self.cputex.Release()
|
|
260
|
+
self.cputex = None
|
|
261
|
+
self.capture_hwnd = 0
|
|
262
|
+
self.capture_target_signature = None
|
|
258
263
|
|
|
259
264
|
def do_get_frame(self):
|
|
260
265
|
|
|
@@ -298,16 +303,16 @@ class WindowsGraphicsCaptureMethod(BaseWindowsCaptureMethod):
|
|
|
298
303
|
|
|
299
304
|
frame = composite_hwnds(frame, self.hwnd_window, self.contexts, bitblt.render_full)
|
|
300
305
|
|
|
301
|
-
if frame is not None:
|
|
302
|
-
new_height = frame.shape[0]
|
|
303
|
-
new_width = frame.shape[1]
|
|
304
|
-
if new_width <= 0 or new_height <= 0:
|
|
305
|
-
logger.warning(f"get_frame size <=0 {new_width}x{new_height}")
|
|
306
|
-
return None
|
|
307
|
-
|
|
308
|
-
return frame
|
|
309
|
-
|
|
310
|
-
def reset_framepool(self, size, reset_device=False):
|
|
306
|
+
if frame is not None:
|
|
307
|
+
new_height = frame.shape[0]
|
|
308
|
+
new_width = frame.shape[1]
|
|
309
|
+
if new_width <= 0 or new_height <= 0:
|
|
310
|
+
logger.warning(f"get_frame size <=0 {new_width}x{new_height}")
|
|
311
|
+
return None
|
|
312
|
+
|
|
313
|
+
return frame
|
|
314
|
+
|
|
315
|
+
def reset_framepool(self, size, reset_device=False):
|
|
311
316
|
logger.info(f'reset_framepool')
|
|
312
317
|
from ok.rotypes.Windows.Graphics.DirectX import DirectXPixelFormat
|
|
313
318
|
if self.cputex:
|
|
@@ -123,10 +123,10 @@ class StartController(QObject):
|
|
|
123
123
|
time.sleep(2)
|
|
124
124
|
return False
|
|
125
125
|
|
|
126
|
-
def _wait_until_started_window_stable(self):
|
|
127
|
-
wait_until = time.monotonic() + self.start_timeout
|
|
128
|
-
stable_size = None
|
|
129
|
-
stable_since = None
|
|
126
|
+
def _wait_until_started_window_stable(self):
|
|
127
|
+
wait_until = time.monotonic() + self.start_timeout
|
|
128
|
+
stable_size = None
|
|
129
|
+
stable_since = None
|
|
130
130
|
min_width, min_height = self.STARTED_WINDOW_MIN_SIZE
|
|
131
131
|
|
|
132
132
|
while not self.exit_event.is_set():
|
|
@@ -151,12 +151,12 @@ class StartController(QObject):
|
|
|
151
151
|
if remaining_time <= 0:
|
|
152
152
|
communicate.starting_emulator.emit(True, self.tr('Start game timeout!'), 0)
|
|
153
153
|
return False
|
|
154
|
-
time.sleep(self.STARTED_WINDOW_POLL_INTERVAL)
|
|
155
|
-
return False
|
|
156
|
-
|
|
157
|
-
def start_device(self):
|
|
158
|
-
device = og.device_manager.get_preferred_device()
|
|
159
|
-
logger.info(f'start_device: {device}')
|
|
154
|
+
time.sleep(self.STARTED_WINDOW_POLL_INTERVAL)
|
|
155
|
+
return False
|
|
156
|
+
|
|
157
|
+
def start_device(self):
|
|
158
|
+
device = og.device_manager.get_preferred_device()
|
|
159
|
+
logger.info(f'start_device: {device}')
|
|
160
160
|
|
|
161
161
|
if device and not device['connected']:
|
|
162
162
|
if device['device'] == "windows" and not is_admin():
|
|
@@ -172,13 +172,13 @@ class StartController(QObject):
|
|
|
172
172
|
dx11_config = og.global_config.get_config('Launch with DX11')
|
|
173
173
|
if dx11_config and dx11_config.get('Launch with DX11'):
|
|
174
174
|
args = "-dx11 -d3d11 -force-d3d11"
|
|
175
|
-
if not execute(path, arguments=args):
|
|
176
|
-
communicate.starting_emulator.emit(True, self.tr("Start game failed, please start game first"), 0)
|
|
177
|
-
return False
|
|
178
|
-
if device['device'] == "windows" and not self._wait_until_started_window_stable():
|
|
179
|
-
return False
|
|
180
|
-
if not self._wait_until_device_ready():
|
|
181
|
-
return False
|
|
175
|
+
if not execute(path, arguments=args):
|
|
176
|
+
communicate.starting_emulator.emit(True, self.tr("Start game failed, please start game first"), 0)
|
|
177
|
+
return False
|
|
178
|
+
if device['device'] == "windows" and not self._wait_until_started_window_stable():
|
|
179
|
+
return False
|
|
180
|
+
if not self._wait_until_device_ready():
|
|
181
|
+
return False
|
|
182
182
|
else:
|
|
183
183
|
communicate.starting_emulator.emit(True,
|
|
184
184
|
self.tr('Game path does not exist, Please open game manually!'), 0)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ok_script-1.0.149 → ok_script-1.0.150}/ok/device/interaction_methods/foreground_post_message.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|