TWI844216B - Windows arrangement system, windows arrangement method and windows arrangement program - Google Patents

Windows arrangement system, windows arrangement method and windows arrangement program Download PDF

Info

Publication number
TWI844216B
TWI844216B TW111150776A TW111150776A TWI844216B TW I844216 B TWI844216 B TW I844216B TW 111150776 A TW111150776 A TW 111150776A TW 111150776 A TW111150776 A TW 111150776A TW I844216 B TWI844216 B TW I844216B
Authority
TW
Taiwan
Prior art keywords
window
desktop
arrangement
windows
window arrangement
Prior art date
Application number
TW111150776A
Other languages
Chinese (zh)
Other versions
TW202427160A (en
Inventor
陳冠儒
Original Assignee
宏碁股份有限公司
Filing date
Publication date
Application filed by 宏碁股份有限公司 filed Critical 宏碁股份有限公司
Application granted granted Critical
Publication of TWI844216B publication Critical patent/TWI844216B/en
Publication of TW202427160A publication Critical patent/TW202427160A/en

Links

Images

Abstract

A windows arrangement system, comprising: a memory device for storing an application program; and a central processing device executing the application to implement the windows detection module and the windows arrangement inference module; the windows detection module detects whether the desktop/window status in the operating system meets the window arrangement activation condition, wherein the desktop/window status includes the number of desktops in the operating system and the windows in each of the desktops; the windows arrangement inference module inputs the information about the desktop/window state into the windows arrangement inference model and outputs the windows arrangement inference result when the desktop/window state meets the windows arrangement activation condition, and returns the windows arrangement inference result to the windows detection module to arrange the desktop/window state.

Description

視窗編排系統、視窗編排方法以及視窗編排程式產品Window layout system, window layout method and window layout program product

本發明係有關於窗編排系統、視窗編排方法以及視窗編排程式產品。The present invention relates to a window layout system, a window layout method and a window layout program product.

隨著處理器的效能越來越強大,使用者在電腦的作業系統中配置多個桌面或虛擬桌面並在各個桌面中開啟多個視窗已成為常態。例如,軟體開發人員在進行開發時,通常需要開啟複數網頁、手冊文件、開發平台等多個視窗,並在複數個桌面或虛擬桌面中編排成方便快速切換閱覽的形式。此外,例如硬體或韌體開發人員、影音工作者、編輯人員、創作工作者或文書處理人員等也可能遇到需要編排多個桌面與視窗的情況。As processors become more powerful, it has become common for users to configure multiple desktops or virtual desktops in the computer operating system and open multiple windows in each desktop. For example, when developing software, software developers usually need to open multiple web pages, manual documents, development platforms and other windows, and arrange them in multiple desktops or virtual desktops to facilitate quick switching and browsing. In addition, hardware or firmware developers, audio and video workers, editors, creative workers or word processing personnel may also encounter the need to arrange multiple desktops and windows.

由於在工作中開啟的視窗或虛擬桌面數量可能非常龐大,編排多個桌面與視窗所耗費的時間也很可觀。舉例而言,軟體開發人員每次佈置工作環境時,從開啟各個所需視窗,到將各個視窗安排在各個桌面上,並調整視窗大小使視窗便於閱讀,可能會耗費數十分鐘,嚴重影響工作效率。目前並無任何先前技術可以改善此問題。Since the number of windows or virtual desktops opened at work may be very large, the time spent on arranging multiple desktops and windows is also considerable. For example, every time a software developer sets up a work environment, it may take tens of minutes to open each required window, arrange each window on each desktop, and adjust the window size to make it easy to read, which seriously affects work efficiency. Currently, no previous technology can improve this problem.

有鑑於此,本發明提出一種視窗編排系統、視窗編排方法以及視窗編排程式產品,可以偵測並推論使用者的桌面及視窗編排,協助使用者快速建立工作環境。In view of this, the present invention proposes a window arrangement system, a window arrangement method and a window arrangement program product, which can detect and infer the user's desktop and window arrangement, and help the user quickly establish a working environment.

本發明的一實施例提供一種視窗編排系統,包括:一記憶裝置,用以儲存一應用程式;以及一處理裝置,執行該應用程式以實現一視窗偵測模組以及一視窗編排推論模組;其中:該視窗偵測模組,偵測一作業系統中的桌面/視窗狀態是否符合一視窗編排啟動條件,該桌面/視窗狀態包括該作業系統中的桌面之數量以及各該桌面中的視窗;該視窗編排推論模組,在該桌面/視窗狀態符合該視窗編排啟動條件時,將關於該桌面/視窗狀態的資訊輸入該視窗編排推論模型並輸出一視窗編排推論結果,並將該視窗編排推論結果回傳給該視窗偵測模組以編排該桌面/視窗狀態。An embodiment of the present invention provides a window arrangement system, comprising: a memory device for storing an application program; and a processing device for executing the application program to implement a window detection module and a window arrangement inference module; wherein: the window detection module detects whether the desktop/window state in an operating system meets a window arrangement activation condition, and the desktop/window state includes The number of desktops in the operating system and the windows in each desktop; the window arrangement inference module inputs information about the desktop/window state into the window arrangement inference model and outputs a window arrangement inference result when the desktop/window state meets the window arrangement activation condition, and returns the window arrangement inference result to the window detection module to arrange the desktop/window state.

在該實施例中該視窗偵測模組可以在編排該桌面/視窗狀態後,偵測一桌面/視窗變更資訊,並將該桌面/視窗變更資訊傳送給一優化模組;該優化模組根據該桌面/視窗變更資訊重新訓練該視窗編排推論模型。In this embodiment, the window detection module can detect desktop/window change information after arranging the desktop/window state, and transmit the desktop/window change information to an optimization module; the optimization module retrains the window arrangement inference model according to the desktop/window change information.

本發明的另一實施例提供一種視窗編排方法,包括:偵測一作業系統中的桌面/視窗狀態是否符合一視窗編排啟動條件,該桌面/視窗狀態包括該作業系統中的桌面之數量以及各該桌面中的視窗;在該桌面/視窗狀態符合該視窗編排啟動條件時,將關於該桌面/視窗狀態的一資訊輸入視窗編排推論模型並輸出一視窗編排推論結果,並根據該視窗編排推論結果編排該桌面/視窗狀態。Another embodiment of the present invention provides a window arrangement method, including: detecting whether a desktop/window state in an operating system meets a window arrangement activation condition, the desktop/window state including the number of desktops in the operating system and the windows in each of the desktops; when the desktop/window state meets the window arrangement activation condition, inputting information about the desktop/window state into a window arrangement inference model and outputting a window arrangement inference result, and arranging the desktop/window state according to the window arrangement inference result.

在該實施例中可以在編排該桌面/視窗狀態後,偵測一桌面/視窗變更資訊,並根據該桌面/視窗變更資訊重新訓練該視窗編排推論模型。In this embodiment, after arranging the desktop/window state, a desktop/window change information can be detected, and the window arrangement inference model can be retrained according to the desktop/window change information.

本發明的另一實施例提供用以在電腦中執行以下處理:一視窗偵測處理,偵測一作業系統中的一桌面/視窗狀態是否符合一視窗編排啟動條件,該桌面/視窗狀態包括該作業系統中的桌面之數量以及各該桌面中的視窗,並接收一視窗編排推論結果;一視窗編排推論處理,在該桌面/視窗狀態符合該視窗編排啟動條件時,將關於該桌面/視窗狀態的資訊輸入該視窗編排推論模型並輸出該視窗編排推論結果,並根據該視窗編排推論結果編排該桌面/視窗狀態。Another embodiment of the present invention provides for executing the following processing in a computer: a window detection process, detecting whether a desktop/window state in an operating system meets a window arrangement activation condition, the desktop/window state including the number of desktops in the operating system and the windows in each of the desktops, and receiving a window arrangement inference result; a window arrangement inference process, when the desktop/window state meets the window arrangement activation condition, inputting information about the desktop/window state into the window arrangement inference model and outputting the window arrangement inference result, and arranging the desktop/window state according to the window arrangement inference result.

在該實施例中可以更包括一優化處理;其中該視窗偵測處理在編排該桌面/視窗狀態後,偵測一桌面/視窗變更資訊;該優化處理根據該桌面/視窗變更資訊重新訓練該視窗編排推論模型。The embodiment may further include an optimization process, wherein the window detection process detects desktop/window change information after arranging the desktop/window state; the optimization process retrains the window arrangement inference model according to the desktop/window change information.

以下,參照隨附圖式詳細說明根據本發明之實施例。所揭露的實施例僅為例示,本發明的範圍不限於此。Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings. The disclosed embodiments are merely illustrative, and the scope of the present invention is not limited thereto.

本發明的實施例1為視窗編排系統1。視窗編排系統1藉由包括至少一處理裝置11的電腦裝置實現。電腦裝置中的處理裝置11與記憶裝置12連接,透過執行儲存於記憶裝置12中的程式,運行視窗編排系統1。記憶裝置12可以為記憶體或儲存裝置。執行視窗編排系統1時,可以將儲存於儲存裝置的程式載入到記憶體中,再由處理裝置11執行。Embodiment 1 of the present invention is a window arrangement system 1. The window arrangement system 1 is implemented by a computer device including at least one processing device 11. The processing device 11 in the computer device is connected to a memory device 12, and the window arrangement system 1 is operated by executing a program stored in the memory device 12. The memory device 12 can be a memory or a storage device. When the window arrangement system 1 is executed, the program stored in the storage device can be loaded into the memory and then executed by the processing device 11.

舉例而言,處理裝置為中央處理單元(Central Processing Unit,CPU)、數位訊號處理器(Digital Signal Processor,DSP)、圖形處理單元(Graphics Processing Unit,GPU)、視覺處理單元(Vision Processing Unit,VPU)、特殊應用積體電路(Application Specific Integrated Circuit,ASIC)及/或現場可程式化邏輯閘陣列(Field Programmable Gate Array,FPGA)等硬體的邏輯運算裝置,也可以為上述邏輯運算裝置之組合。For example, the processing device is a hardware logic operation device such as a central processing unit (CPU), a digital signal processor (DSP), a graphics processing unit (GPU), a vision processing unit (VPU), an application specific integrated circuit (ASIC) and/or a field programmable gate array (FPGA), or a combination of the above logic operation devices.

記憶體為暫時儲存資料的記憶裝置。具體例子為靜態隨機存取記憶體(Static Random Access Memory,SRAM)或動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)。Memory is a storage device that temporarily stores data. Specific examples are static random access memory (SRAM) or dynamic random access memory (DRAM).

儲存裝置為保管資料的記憶裝置,具體例子為固態硬碟(Solid State Drive,SSD)。儲存裝置也可以是硬碟(Hard Disk Drive,HDD)、快閃記憶體等。A storage device is a memory device that stores data, and a specific example is a solid state drive (SSD). A storage device can also be a hard disk drive (HDD), a flash memory, etc.

傳輸介面為在處理裝置、記憶體以及儲存裝置等硬體間傳輸資料的硬體介面,具體例子為匯流排、訊號線、有線網路及/或無線網路等。The transmission interface is a hardware interface for transmitting data between hardware such as processing devices, memory and storage devices. Specific examples include buses, signal cables, wired networks and/or wireless networks.

參照第1圖說明本發明的實施例1之構成。視窗編排系統1包括視窗偵測模組111以及視窗編排推論模組112。視窗偵測模組111以及視窗編排推論模組112藉由一電腦的處理裝置(例如中央處理單元)執行軟體(例如記憶裝置中之一或多個應用程式)所實現。另外,視窗偵測模組111可以取得電腦的處理裝置所運行之作業系統中的桌面與視窗之資訊。以下,詳細說明視窗偵測模組111以及視窗編排推論模組112。Referring to FIG. 1, the structure of the embodiment 1 of the present invention is described. The window arrangement system 1 includes a window detection module 111 and a window arrangement inference module 112. The window detection module 111 and the window arrangement inference module 112 are implemented by a processing device (e.g., a central processing unit) of a computer executing software (e.g., one or more applications in a memory device). In addition, the window detection module 111 can obtain information about the desktop and windows in the operating system run by the processing device of the computer. The window detection module 111 and the window arrangement inference module 112 are described in detail below.

視窗偵測模組111偵測作業系統中的桌面/視窗狀態。桌面/視窗狀態為在作業系統中目前的桌面(包括虛擬桌面)之數量以及在各桌面中顯示的視窗。其中,作業系統中的桌面與虛擬桌面之畫面內容可以被儲存於記憶裝置12中。此外,在處理裝置11連接多個顯示器時,作業系統中可以儲存多個顯示器之桌面的畫面內容。使用者可以透過作業系統依據需要切換不同的桌面或虛擬桌面,顯示於顯示器上。另外,桌面/視窗狀態也可以包含其他與桌面以及視窗有關的資訊。例如可以透過文字與物件辨識之AI模型辨識作業系統中的桌面以及視窗,藉此取得桌面/視窗狀態。或者,例如由視窗偵測模組111透過作業系統的應用程式介面(例如winAPI、Linux Kernal API等)請求作業系統回傳有關桌面/視窗狀態的資訊,例如目前各桌面與各虛擬桌面中開啟的視窗,以及各視窗之位置、尺寸等,作為桌面/視窗狀態。The window detection module 111 detects the desktop/window status in the operating system. The desktop/window status is the number of current desktops (including virtual desktops) in the operating system and the windows displayed in each desktop. Among them, the screen content of the desktop and virtual desktop in the operating system can be stored in the memory device 12. In addition, when the processing device 11 is connected to multiple monitors, the screen content of the desktops of multiple monitors can be stored in the operating system. Users can switch different desktops or virtual desktops as needed through the operating system and display them on the monitor. In addition, the desktop/window status can also include other information related to the desktop and window. For example, the desktop and window in the operating system can be identified through an AI model of text and object recognition, thereby obtaining the desktop/window status. Alternatively, for example, the window detection module 111 requests the operating system to return information about the desktop/window status, such as the windows currently opened in each desktop and each virtual desktop, and the position and size of each window, through the operating system's application programming interface (such as winAPI, Linux Kernal API, etc.), as the desktop/window status.

第2圖為桌面/視窗狀態的示意圖。在本實施例中,假設桌面以及虛擬桌面的大小為1920x1080像素。第2圖中,顯示作業系統中包含兩個桌面,桌面T1以及虛擬桌面VT1。其中桌面T1顯示視窗T1W1、視窗T1W2以及視窗T1W3,其中視窗T1W3重疊於視窗T1W1以及視窗T1W2之上。桌面VT1只顯示視窗VT1W1。在本實施例中,桌面/視窗狀態只包括顯示於桌面以及虛擬桌面中的視窗。在實施例1的變形例中,桌面/視窗狀態也可以包括縮小的視窗(隱藏於工具列中的視窗),例如第2圖中桌面T1中的縮小視窗T1HW1、T1HW2、T1HW3,以及桌面VT1中的縮小視窗VT1HW1。FIG. 2 is a schematic diagram of the desktop/window status. In this embodiment, it is assumed that the size of the desktop and the virtual desktop is 1920x1080 pixels. In FIG. 2, the display operating system includes two desktops, desktop T1 and virtual desktop VT1. Desktop T1 displays windows T1W1, window T1W2, and window T1W3, wherein window T1W3 overlaps window T1W1 and window T1W2. Desktop VT1 only displays window VT1W1. In this embodiment, the desktop/window status only includes windows displayed on the desktop and the virtual desktop. In a variation of Embodiment 1, the desktop/window state may also include reduced windows (windows hidden in the toolbar), such as the reduced windows T1HW1, T1HW2, and T1HW3 in the desktop T1 in FIG. 2, and the reduced window VT1HW1 in the desktop VT1.

當視窗偵測模組111偵測到桌面/視窗狀態符合視窗編排啟動條件時,視窗偵測模組111將桌面/視窗狀態傳送給視窗編排推論模組112。視窗編排啟動條件被設計為使用者佈置工作環境之桌面及視窗時通常會出現的桌面/視窗狀態,以利於在使用者準備佈置工作環境時,幫助使用者開啟虛擬桌面以及視窗,增進使用者的工作效率。在本實施例中,視窗編排啟動條件為僅有一個虛擬桌面且該虛擬桌面中只有一個視窗程式,或其中一個桌面或虛擬桌面中有複數視窗重疊。亦即,只要桌面/視窗狀態符合上述兩個條件中的其中一者,就將桌面/視窗狀態傳送給視窗編排推論模組112作為輸入。When the window detection module 111 detects that the desktop/window state meets the window arrangement activation condition, the window detection module 111 transmits the desktop/window state to the window arrangement inference module 112. The window arrangement activation condition is designed to be the desktop/window state that usually appears when the user arranges the desktop and windows of the working environment, so as to help the user open the virtual desktop and window when the user is ready to arrange the working environment, thereby improving the user's work efficiency. In this embodiment, the window arrangement activation condition is that there is only one virtual desktop and there is only one window program in the virtual desktop, or there are multiple windows overlapping in one desktop or virtual desktop. That is, as long as the desktop/window state meets one of the above two conditions, the desktop/window state is sent to the window layout inference module 112 as input.

視窗編排推論模組112中包括視窗編排推論模型M。視窗編排推論模型M為人工智慧(AI)模型,接收桌面/視窗狀態作為輸入,並輸出視窗編排推論結果。關於訓練窗編排推論模型M的詳細說明將在之後的段落中詳細描述。The window arrangement inference module 112 includes a window arrangement inference model M. The window arrangement inference model M is an artificial intelligence (AI) model that receives the desktop/window state as input and outputs a window arrangement inference result. The detailed description of training the window arrangement inference model M will be described in detail in the following paragraphs.

視窗編排推論模組112接收到關於桌面/視窗狀態的資訊時,將關於桌面/視窗狀態的資訊作為視窗編排推論模型M的輸入進行推論。推論完成後,視窗編排推論模型M輸出視窗編排推論結果。視窗編排推論模組112將視窗編排推論結果回傳給視窗偵測模組111。視窗編排推論結果包括以下中至少一者:新增虛擬桌面清單、新增視窗路徑清單、新增網頁網址清單以及虛擬桌面編號。其中,新增虛擬桌面清單為推論出需要新增之虛擬桌面的清單。此外,各個桌面以及虛擬桌面也可以具有桌面編號,以區別不同的桌面。新增視窗路徑清單為在各桌面及/或虛擬桌面中需要新增之視窗之路徑。新增網頁網址清單在各桌面及/或虛擬桌面中需要新增之網頁視窗的網址。When the window arrangement inference module 112 receives information about the desktop/window status, it uses the information about the desktop/window status as the input of the window arrangement inference model M for inference. After the inference is completed, the window arrangement inference model M outputs the window arrangement inference result. The window arrangement inference module 112 returns the window arrangement inference result to the window detection module 111. The window arrangement inference result includes at least one of the following: a list of newly added virtual desktops, a list of newly added window paths, a list of newly added web page URLs, and virtual desktop numbers. Among them, the list of newly added virtual desktops is a list of virtual desktops that are inferred to be added. In addition, each desktop and virtual desktop may also have a desktop number to distinguish different desktops. The list of paths to add windows is the path to the windows that need to be added in each desktop and/or virtual desktop. The list of URLs to add web pages is the URLs of the web pages that need to be added in each desktop and/or virtual desktop.

視窗偵測模組111接收到視窗編排推論結果後,根據視窗編排推論結果重新編排桌面/視窗狀態。亦即,視窗偵測模組111根據視窗編排推論結果,調整儲存在記憶裝置12中的虛擬桌面之數量以及各桌面(包括虛擬桌面)中顯示的視窗。例如,可以根據視窗編排推論結果中的新增虛擬桌面清單、新增視窗路徑清單、新增網頁網址清單以及虛擬桌面編號新增虛擬桌面、在各桌面中新增視窗、在各桌面中移動視窗、或在各桌面之間移動視窗等。另外,在一個桌面或虛擬桌面中包括複數視窗的情況下,可以平均分配桌布空間給各個視窗。或者,若視窗編排推論模型M有針對使用者偏好的視窗編排方式進行學習,也可以根據視窗編排推論結果調整各桌面中的視窗大小及位置。After receiving the window arrangement inference result, the window detection module 111 rearranges the desktop/window status according to the window arrangement inference result. That is, the window detection module 111 adjusts the number of virtual desktops stored in the memory device 12 and the windows displayed in each desktop (including the virtual desktop) according to the window arrangement inference result. For example, a virtual desktop can be added, a window can be added to each desktop, a window can be moved in each desktop, or a window can be moved between desktops according to the list of newly added virtual desktops, the list of newly added window paths, the list of newly added web page URLs, and the virtual desktop number in the window arrangement inference result. In addition, when a desktop or a virtual desktop includes multiple windows, the wallpaper space can be evenly distributed to each window. Alternatively, if the window arrangement inference model M is trained on the window arrangement method preferred by the user, the window size and position in each desktop can be adjusted according to the window arrangement inference result.

以上,說明了本發明的實施例1。接下來,說明視窗編排推論模型M之訓練方法的例子。The above describes the first embodiment of the present invention. Next, an example of a method for training the window arrangement inference model M will be described.

視窗編排推論模型M之訓練可以在運行視窗編排系統1之電腦裝置有連接網路時進行。訓練視窗編排推論模型M時,處理裝置11將當下開啟的視窗名稱以及各視窗所在的桌面編號作為輸入,透過網路傳送給伺服器(例如原始設備製造商伺服器(OEM Server)),在伺服器中進行訓練。接下來,在伺服器中,視窗編排推論模型M針對以下至少一者進行學習:開啟的視窗之間的關聯;視窗程式與網址來源路徑;以及視窗程式與網址所在的桌面編號。The training of the window arrangement inference model M can be performed when the computer device running the window arrangement system 1 is connected to the network. When training the window arrangement inference model M, the processing device 11 takes the names of the currently opened windows and the desktop numbers where the windows are located as inputs, and transmits them to the server (e.g., the original equipment manufacturer server (OEM Server)) through the network for training in the server. Next, in the server, the window arrangement inference model M learns at least one of the following: the association between the opened windows; the source path of the window program and the URL; and the desktop number where the window program and the URL are located.

詳細而言,開啟的視窗之間的關聯為各桌面及虛擬桌面中,所開啟的各個視窗之間是否經常同時出現。視窗編排推論模型M也可以學習(或記錄)視窗程式與網址來源路徑,以便在產生推論結果時,以正確的路徑開啟視窗程式或網頁。視窗編排推論模型M也可以學習(或記錄)各視窗程式及網址所在的桌面編號,以學習使用者偏好的桌面佈置方式、視窗編排方式以及視窗大小等。另外,訓練的參數不限於此,可以依據需要進行變更。舉例而言,訓練視窗編排推論模型M時,也可以對各個視窗進行分類。例如區分為應用程式視窗、網頁視窗、程式檔案視窗等。In detail, the association between open windows refers to whether the opened windows in each desktop and virtual desktop often appear at the same time. The window arrangement inference model M can also learn (or record) the window program and the URL source path so that when the inference result is generated, the window program or web page is opened with the correct path. The window arrangement inference model M can also learn (or record) the desktop number where each window program and URL is located to learn the user's preferred desktop layout, window arrangement, and window size. In addition, the training parameters are not limited to this and can be changed as needed. For example, when training the window arrangement inference model M, each window can also be classified. For example, they can be divided into application windows, web page windows, program file windows, etc.

舉例而言,視窗編排推論模型M可以是卷積神經網路(Convolutional Neural Network,CNN)、遞迴神經網路(Recurrent Neural Network,RNN)、深度神經網路(Deep Neural Network,DNN)、支持向量機(Support Vector Machine,SVM)或生成對抗網路(Generative Adversarial Network,GANs)等,但不限於此,可以是任何種類的AI模型。For example, the window arrangement inference model M can be a convolutional neural network (CNN), a recurrent neural network (RNN), a deep neural network (DNN), a support vector machine (SVM) or a generative adversarial network (GANs), etc., but is not limited to these and can be any type of AI model.

第3圖為本發明實施例1A之構成例的方塊圖。實施例1A與實施例1相較之下多了優化模組113。在本實施例中,優化模組113亦可藉由一電腦的處理裝置(例如中央處理單元)執行軟體(例如記憶裝置12中之一或多個應用程式)所實現。以下。針對實施例1與實施例1A的不同之處進行說明。FIG. 3 is a block diagram of an example of the structure of the embodiment 1A of the present invention. Compared with the embodiment 1, the embodiment 1A has an optimization module 113. In this embodiment, the optimization module 113 can also be implemented by a processing device (such as a central processing unit) of a computer executing software (such as one or more applications in the memory device 12). The following describes the differences between the embodiment 1 and the embodiment 1A.

在視窗偵測模組111根據視窗編排推論結果重新編排桌面/視窗狀態後,視窗偵測模組111可以持續偵測桌面/視窗狀態是否被變更。在發生以下三種情況的其中之一或多者時,視窗偵測模組111將變更的各桌面及各視窗之資訊作成桌面/視窗變更資訊並傳送給優化模組113,以重新訓練視窗編排推理模型M:使用者關閉視窗、使用者在各桌面之間移動視窗以及視窗路徑開啟失敗。After the window detection module 111 rearranges the desktop/window status according to the window arrangement inference result, the window detection module 111 can continue to detect whether the desktop/window status has been changed. When one or more of the following three situations occur, the window detection module 111 generates desktop/window change information of the changed desktops and windows and transmits it to the optimization module 113 to retrain the window arrangement inference model M: the user closes the window, the user moves the window between the desktops, and the window path opening fails.

在使用者關閉視窗的情況下,優化模組113可以降低視窗編排推論模型M中被關閉視窗之參數(例如程式名稱、網頁網址等)的權重,以降低下次被推論出來的機率。在使用者移動視窗,或視窗路徑開啟失敗的情況下,優化模組113可以更新視窗編排推論模型M中的資料集合。例如,將新的虛擬桌面編號、檔案或網頁的來源路徑等資訊更新到視窗編排推論模型M中。When the user closes the window, the optimization module 113 can reduce the weight of the parameters of the closed window (such as program name, web page URL, etc.) in the window arrangement inference model M to reduce the probability of being inferred next time. When the user moves the window, or the window path fails to open, the optimization module 113 can update the data set in the window arrangement inference model M. For example, the new virtual desktop number, file or web page source path and other information are updated to the window arrangement inference model M.

接下來,參照第4~5圖說明本發明的實施例2。實施例2為視窗編排方法,用以在電腦中進行桌面以及視窗之編排,包括視窗偵測步驟以及視窗編排推論步驟。本實施例中的步驟並非用以限制本發明的視窗編排方法,只要不脫離本發明的精神和範圍,本領域之通常知識者可以對上述步驟進行變更。舉例而言,可以省略部分步驟、重新排列各步驟的順序,或者新增其他步驟。Next, Embodiment 2 of the present invention is described with reference to FIGS. 4-5. Embodiment 2 is a window arrangement method for arranging a desktop and windows in a computer, including a window detection step and a window arrangement inference step. The steps in this embodiment are not intended to limit the window arrangement method of the present invention. As long as it does not deviate from the spirit and scope of the present invention, a person skilled in the art can make changes to the above steps. For example, some steps can be omitted, the order of the steps can be rearranged, or other steps can be added.

實施例2之視窗編排方法中的各步驟可以透過處理裝置實現。處理裝置實現視窗編排方法中之各步驟所執行的處理為視窗編排程式產品。Each step in the window layout method of Embodiment 2 can be implemented by a processing device. The processing performed by the processing device to implement each step in the window layout method is a window layout program product.

第4圖為本發明實施例2的流程圖。Figure 4 is a flow chart of Embodiment 2 of the present invention.

首先,處理裝置開始偵測作業系統中的桌面/視窗狀態(步驟S1)。桌面/視窗狀態為在作業系統中目前的桌面之數量以及在各桌面中顯示的視窗。例如處理裝置可以透過文字與物件辨識之AI模型辨識作業系統中的桌面以及視窗,藉此取得桌面/視窗狀態。或者,處理裝置可以透過作業系統的應用程式介面請求作業系統回傳與桌面/視窗狀態有關的資訊。例如,請求作業系統回傳目前各桌面與各虛擬桌面中開啟的視窗,以及各視窗之位置、尺寸等,作為桌面/視窗狀態。First, the processing device starts to detect the desktop/window status in the operating system (step S1). The desktop/window status is the number of desktops currently in the operating system and the windows displayed in each desktop. For example, the processing device can identify the desktops and windows in the operating system through an AI model of text and object recognition, thereby obtaining the desktop/window status. Alternatively, the processing device can request the operating system to return information related to the desktop/window status through the operating system's application programming interface. For example, request the operating system to return the windows currently opened in each desktop and each virtual desktop, as well as the position and size of each window, as the desktop/window status.

處理裝置取得桌面/視窗狀態後,判斷桌面/視窗狀態是否符合視窗編排啟動條件(步驟S2)。當桌面/視窗狀態不符合視窗編排啟動條件時,回到步驟S1繼續偵測桌面/視窗狀態。當桌面/視窗狀態符合視窗編排啟動條件時,前往步驟S3。在一實施例中,視窗編排啟動條件被設計為使用者佈置工作環境之桌面及視窗時通常會出現的桌面/視窗狀態,例如為僅有一個虛擬桌面且該虛擬桌面中只有一個視窗程式,或其中一個桌面或虛擬桌面中有複數視窗重疊。After the processing device obtains the desktop/window status, it determines whether the desktop/window status meets the window arrangement activation condition (step S2). When the desktop/window status does not meet the window arrangement activation condition, return to step S1 to continue detecting the desktop/window status. When the desktop/window status meets the window arrangement activation condition, go to step S3. In one embodiment, the window arrangement activation condition is designed to be the desktop/window status that usually appears when the user arranges the desktop and windows of the working environment, for example, there is only one virtual desktop and there is only one window program in the virtual desktop, or there are multiple windows overlapping in one of the desktops or virtual desktops.

當桌面/視窗狀態符合視窗編排啟動條件時,處理裝置將有關桌面/視窗狀態的資訊輸入視窗編排推論模型M(步驟S3)。例如,將透過物件辨識AI模組辨識到的視窗名稱或網址輸入視窗編排推論模型M中。或者,將透過作業系統的應用程式介面取得之有關桌面/視窗狀態的資訊輸入到視窗編排推論模型M中。When the desktop/window status meets the window arrangement activation condition, the processing device inputs the information about the desktop/window status into the window arrangement inference model M (step S3). For example, the window name or URL identified by the object recognition AI module is input into the window arrangement inference model M. Alternatively, the information about the desktop/window status obtained through the application program interface of the operating system is input into the window arrangement inference model M.

接下來,處理裝置取得視窗編排推論模型M輸出的視窗編排推論結果(步驟S4)。Next, the processing device obtains the window arrangement inference result output by the window arrangement inference model M (step S4).

處理裝置取得視窗編排推論模型M輸出的視窗編排推論結果後,根據視窗編排推論結果重新編排桌面/視窗狀態(步驟S5)。After the processing device obtains the window arrangement inference result output by the window arrangement inference model M, it rearranges the desktop/window status according to the window arrangement inference result (step S5).

第5圖為本發明實施例2之重新編排桌面/視窗狀態之一例的流程圖。在本實施例中,視窗編排推論結果包括桌面編號、各桌面中的程式路徑以及各桌面中的焦點視窗。Figure 5 is a flow chart of an example of rearranging the desktop/window state of embodiment 2 of the present invention. In this embodiment, the window arrangement inference result includes the desktop number, the program path in each desktop, and the focus window in each desktop.

首先,處理裝置取得視窗編排推論模型M輸出的視窗編排推論結果(步驟S4)後,取得螢幕解析度的高與寬值(步驟S51)。在本實施例中,螢幕解析度例如為1920×1080像素。First, the processing device obtains the window arrangement inference result output by the window arrangement inference model M (step S4), and then obtains the height and width of the screen resolution (step S51). In this embodiment, the screen resolution is, for example, 1920×1080 pixels.

接下來,處理裝置取得各桌面中的視窗個數(步驟S52),並將螢幕解析度的高與寬值除以視窗個數,以計算各視窗的尺寸(步驟S53)。Next, the processing device obtains the number of windows in each desktop (step S52), and divides the height and width of the screen resolution by the number of windows to calculate the size of each window (step S53).

接下來,處理裝置在各桌面中開啟對應的視窗,使各視窗並排,並將焦點視窗置中(步驟S54)。Next, the processing device opens the corresponding windows in each desktop, arranges the windows side by side, and places the focus window in the center (step S54).

第5圖所述的重新編排桌面/視窗狀態的方法僅為一例。可以依據需要變更重新編排桌面/視窗狀態的方法。舉例而言,可以在視窗編排推理模型M中記錄使用者安排的視窗尺寸,在開啟視窗時採用使用者先前安排的視窗尺寸。或者,可以使視窗編排推論模型M算出各視窗的權重,並根據視窗權重安排視窗的位置等。The method of rearranging the desktop/window state described in FIG. 5 is only an example. The method of rearranging the desktop/window state can be changed as needed. For example, the window size arranged by the user can be recorded in the window arrangement inference model M, and the window size previously arranged by the user can be used when the window is opened. Alternatively, the window arrangement inference model M can be used to calculate the weight of each window, and the position of the window can be arranged according to the window weight.

第6圖為本發明實施例2A之優化步驟的流程圖。實施例2A與實施例2相較之下多了優化步驟。以下。針對實施例2與實施例2A的不同之處進行說明。FIG. 6 is a flow chart of the optimization step of Example 2A of the present invention. Compared with Example 2, Example 2A has an additional optimization step. The differences between Example 2 and Example 2A are described below.

在步驟S5中重新編排桌面/視窗狀態後,處理裝置可以持續偵測桌面/視窗狀態是否被變更(步驟S6)。After rearranging the desktop/window status in step S5, the processing device may continue to detect whether the desktop/window status has been changed (step S6).

在發生以下三種情況的其中之一時,處理裝置將變更的各桌面及各視窗之資訊作成桌面/視窗變更資訊,並根據桌面/視窗變更資訊重新訓練視窗編排推論模型M(步驟S7):使用者關閉視窗、使用者在各桌面之間移動視窗以及視窗路徑開啟失敗。When one of the following three situations occurs, the processing device generates desktop/window change information for the changed desktops and windows, and retrains the window arrangement inference model M according to the desktop/window change information (step S7): the user closes the window, the user moves the window between desktops, and the window path opening fails.

在使用者關閉視窗的情況下,處理裝置降低視窗編排推論模型M中被關閉視窗之參數(例如程式名稱、網頁網址等)的權重,以降低下次被推論出來的機率。在使用者移動視窗,或視窗路徑開啟失敗的情況下,可以更新視窗編排推論模型M中的資料集合。例如,將新的虛擬桌面編號、檔案或網頁的來源路徑等資訊更新到視窗編排推論模型M中。When the user closes the window, the processing device reduces the weight of the parameters of the closed window (such as program name, web page URL, etc.) in the window arrangement inference model M to reduce the probability of being inferred next time. When the user moves the window, or the window path fails to open, the data set in the window arrangement inference model M can be updated. For example, the new virtual desktop number, file or web page source path and other information are updated to the window arrangement inference model M.

若桌面/視窗狀態沒有被變更,則重複步驟S6,持續進行偵測。If the desktop/window status has not been changed, repeat step S6 to continue the detection.

雖然分別說明了複數實施例,上述實施例也可以組合實施。或者,也可以在複數實施例中,部分實施其中一者。或者,也可以部分地組合複數實施例。另外,可以依據需要部份地變更記載於上述複數實施例的構成以及步驟。Although a plurality of embodiments are described separately, the above embodiments may be implemented in combination. Alternatively, one of the plurality of embodiments may be partially implemented. Alternatively, the plurality of embodiments may be partially combined. In addition, the configurations and steps recorded in the above plurality of embodiments may be partially changed as needed.

本發明之方法,或特定型態或其部份,可以以程式碼的型態包含於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之裝置或系統。本發明之方法、系統與裝置也可以以程式碼型態透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之裝置或系統。當在一般用途處理器實作時,程式碼結合處理器提供一操作類似於應用特定邏輯電路之獨特裝置。The method of the present invention, or a specific form or part thereof, may be included in a physical medium in the form of program code, such as a floppy disk, an optical disk, a hard disk, or any other machine-readable (such as computer-readable) storage medium, wherein when the program code is loaded and executed by a machine, such as a computer, the machine becomes a device or system for participating in the present invention. The method, system and device of the present invention may also be transmitted in the form of program code through some transmission media, such as wires or cables, optical fibers, or any transmission form, wherein when the program code is received, loaded and executed by a machine, such as a computer, the machine becomes a device or system for participating in the present invention. When implemented on a general-purpose processor, the program code combines with the processor to provide a unique device that operates similarly to application-specific logic circuits.

以上說明之各實施型態,是為了使本發明容易理解而記載,上述記載並非用以限制本發明。因此,上述各實施型態所揭露之各元件,目的為包含屬於本發明之技術範圍內之所有設計變更或均等物。The above-described embodiments are recorded to make the present invention easy to understand, and are not intended to limit the present invention. Therefore, the components disclosed in the above-described embodiments are intended to include all design changes or equivalents within the technical scope of the present invention.

1:視窗編排系統1: Window layout system

11:處理裝置11: Processing device

12:記憶裝置12: Memory device

111:視窗偵測模組111:Window Detection Module

112:視窗編排推論模組112:Window layout inference module

113:優化模組113: Optimization module

T1:桌面T1: Desktop

VT1:虛擬桌面VT1: Virtual Desktop

T1W1、T1W2、T1W3、VT1W1:視窗T1W1, T1W2, T1W3, VT1W1: Window

T1HW1、T1HW2、T1HW3、VT1HW1:縮小視窗T1HW1, T1HW2, T1HW3, VT1HW1: Reduce the window

S1~S7:流程圖步驟S1~S7: Flowchart steps

S51~S54: 流程圖步驟S51~S54: Flowchart steps

第1圖為本發明實施例1之構成例的方塊圖。 第2圖為桌面/視窗狀態的示意圖。 第3圖為本發明實施例1A之構成例的方塊圖。 第4圖為本發明實施例2的流程圖。 第5圖為本發明實施例2之重新編排桌面/視窗狀態之一例的流程圖。 第6圖為本發明實施例2A之優化步驟的流程圖。 Figure 1 is a block diagram of a configuration example of embodiment 1 of the present invention. Figure 2 is a schematic diagram of a desktop/window state. Figure 3 is a block diagram of a configuration example of embodiment 1A of the present invention. Figure 4 is a flow chart of embodiment 2 of the present invention. Figure 5 is a flow chart of an example of rearranging the desktop/window state of embodiment 2 of the present invention. Figure 6 is a flow chart of the optimization step of embodiment 2A of the present invention.

S1~S5:流程圖步驟 S1~S5: Flowchart steps

Claims (10)

一種視窗編排系統,包括:一記憶裝置,用以儲存一應用程式;以及一處理裝置,執行該應用程式以實現一視窗偵測模組以及一視窗編排推論模組;其中:該視窗偵測模組,偵測一作業系統中的桌面/視窗狀態是否符合一視窗編排啟動條件,該桌面/視窗狀態包括該作業系統中的桌面之數量以及各該桌面中的視窗之位置或尺寸;該視窗編排推論模組,在該桌面/視窗狀態符合該視窗編排啟動條件時,將關於該桌面/視窗狀態的資訊輸入該視窗編排推論模型並輸出一視窗編排推論結果,並將該視窗編排推論結果回傳給該視窗偵測模組以編排該桌面/視窗狀態。 A window arrangement system includes: a memory device for storing an application program; and a processing device for executing the application program to implement a window detection module and a window arrangement inference module; wherein: the window detection module detects whether the desktop/window state in an operating system meets a window arrangement activation condition, and the desktop/window state includes the number of desktops in the operating system and the position or size of the windows in each of the desktops; the window arrangement inference module inputs information about the desktop/window state into the window arrangement inference model and outputs a window arrangement inference result when the desktop/window state meets the window arrangement activation condition, and returns the window arrangement inference result to the window detection module to arrange the desktop/window state. 如請求項1之視窗編排系統,其中該視窗偵測模組在編排該桌面/視窗狀態後,偵測一桌面/視窗變更資訊,並將該桌面/視窗變更資訊傳送給一優化模組;該優化模組根據該桌面/視窗變更資訊重新訓練該視窗編排推論模型。 A window arrangement system as claimed in claim 1, wherein the window detection module detects desktop/window change information after arranging the desktop/window state, and transmits the desktop/window change information to an optimization module; the optimization module retrains the window arrangement inference model according to the desktop/window change information. 如請求項2之視窗編排系統,其中該視窗編排推論結果包括以下中至少一者:新增虛擬桌面清單、新增視窗路徑清單、新增網頁網址清單以及虛擬桌面編號,並且該桌面/視窗變更資訊包括以下資訊中的至少一者:開啟失敗視窗資訊、關閉視窗資訊、新 增視窗資訊、關閉虛擬桌面資訊以及新增虛擬桌面資訊。 A window arrangement system as claimed in claim 2, wherein the window arrangement inference result includes at least one of the following: a list of newly added virtual desktops, a list of newly added window paths, a list of newly added web page URLs, and a virtual desktop number, and the desktop/window change information includes at least one of the following information: information on opening failed windows, information on closing windows, information on newly added windows, information on closing virtual desktops, and information on newly added virtual desktops. 如請求項3之視窗編排系統,其中該視窗編排啟動條件為以下兩者其中之一:該作業系統中的各該桌面中僅包含一個虛擬桌面且該虛擬桌面中只有一個視窗程式,或者該作業系統中的各該桌面中的任一桌面中有複數視窗重疊。 A window arrangement system as claimed in claim 3, wherein the window arrangement activation condition is one of the following two: each of the desktops in the operating system contains only one virtual desktop and there is only one window program in the virtual desktop, or there are multiple windows overlapping in any of the desktops in the operating system. 一種視窗編排方法,包括:偵測一作業系統中的桌面/視窗狀態是否符合一視窗編排啟動條件,該桌面/視窗狀態包括該作業系統中的桌面之數量以及各該桌面中的視窗之位置或尺寸;在該桌面/視窗狀態符合該視窗編排啟動條件時,將關於該桌面/視窗狀態的一資訊輸入視窗編排推論模型並輸出一視窗編排推論結果,並根據該視窗編排推論結果編排該桌面/視窗狀態。 A window arrangement method includes: detecting whether a desktop/window state in an operating system meets a window arrangement activation condition, wherein the desktop/window state includes the number of desktops in the operating system and the position or size of the windows in each desktop; when the desktop/window state meets the window arrangement activation condition, inputting information about the desktop/window state into a window arrangement inference model and outputting a window arrangement inference result, and arranging the desktop/window state according to the window arrangement inference result. 如請求項5之視窗編排方法,其中在編排該桌面/視窗狀態後,偵測一桌面/視窗變更資訊,並根據該桌面/視窗變更資訊重新訓練該視窗編排推論模型。 As in claim 5, the window arrangement method, wherein after the desktop/window state is arranged, a desktop/window change information is detected, and the window arrangement inference model is retrained according to the desktop/window change information. 如請求項6之視窗編排方法,其中該視窗編排推論結果包括以下中至少一者:新增虛擬桌面清單、新增視窗路徑清單、新增網頁網址清單以及虛擬桌面編號,且該桌面/視窗變更資訊包括以下資訊中的至少一者:開啟失敗視窗資訊、關閉視窗資訊、新增視窗資訊、關閉虛擬桌面資訊以及新增虛擬桌面資訊。 The window arrangement method of claim 6, wherein the window arrangement inference result includes at least one of the following: a list of newly added virtual desktops, a list of newly added window paths, a list of newly added web page URLs, and a virtual desktop number, and the desktop/window change information includes at least one of the following information: information on opening a failed window, information on closing a window, information on adding a new window, information on closing a virtual desktop, and information on adding a new virtual desktop. 如請求項7之視窗編排方法,其中該視窗編排啟動 條件為以下兩者其中之一:該作業系統中的各該桌面中僅包含一個虛擬桌面且該虛擬桌面中只有一個視窗程式,或者該作業系統中的各該桌面中的任一桌面中有複數視窗重疊。 As in claim 7, the window arrangement method, wherein the window arrangement activation condition is one of the following two: each of the desktops in the operating system contains only one virtual desktop and there is only one window program in the virtual desktop, or there are multiple windows overlapping in any of the desktops in the operating system. 一種視窗編排程式產品,用以在電腦中執行以下處理:一視窗偵測處理,偵測一作業系統中的一桌面/視窗狀態是否符合一視窗編排啟動條件,該桌面/視窗狀態包括該作業系統中的桌面之數量以及各該桌面中的視窗之位置或尺寸,並接收一視窗編排推論結果;一視窗編排推論處理,在該桌面/視窗狀態符合該視窗編排啟動條件時,將關於該桌面/視窗狀態的資訊輸入該視窗編排推論模型並輸出該視窗編排推論結果,並根據該視窗編排推論結果編排該桌面/視窗狀態。 A window arrangement program product is used to perform the following processing in a computer: a window detection process, detecting whether a desktop/window state in an operating system meets a window arrangement activation condition, the desktop/window state includes the number of desktops in the operating system and the position or size of the windows in each desktop, and receiving a window arrangement inference result; a window arrangement inference process, when the desktop/window state meets the window arrangement activation condition, inputting information about the desktop/window state into the window arrangement inference model and outputting the window arrangement inference result, and arranging the desktop/window state according to the window arrangement inference result. 如請求項9之視窗編排程式產品,更包括:一優化處理;其中該視窗偵測處理在編排該桌面/視窗狀態後,偵測一桌面/視窗變更資訊;該優化處理根據該桌面/視窗變更資訊重新訓練該視窗編排推論模型。 The window arrangement program product of claim 9 further includes: an optimization process; wherein the window detection process detects a desktop/window change information after arranging the desktop/window state; the optimization process retrains the window arrangement inference model according to the desktop/window change information.
TW111150776A 2022-12-30 Windows arrangement system, windows arrangement method and windows arrangement program TWI844216B (en)

Publications (2)

Publication Number Publication Date
TWI844216B true TWI844216B (en) 2024-06-01
TW202427160A TW202427160A (en) 2024-07-01

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220187958A1 (en) 2020-12-15 2022-06-16 Microsoft Technology Licensing, Llc Automated on-screen windows arrangements

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220187958A1 (en) 2020-12-15 2022-06-16 Microsoft Technology Licensing, Llc Automated on-screen windows arrangements

Similar Documents

Publication Publication Date Title
US11790158B1 (en) System and method for using a dynamic webpage editor
US10120788B2 (en) Cloud connected automated testing in multiple operating environments using multiple parallel test threads
US9887873B2 (en) Custom rendering of web pages based on web page requests
CN109074272B (en) Notification presentation for performing actions associated with user interaction elements
US8381094B1 (en) Incremental visual comparison of web browser screens
JP2509439B2 (en) Icon conversion device and icon conversion method
US9038185B2 (en) Execution of multiple execution paths
WO2019139725A1 (en) Feature usage prediction using shell application feature telemetry
WO2018209465A1 (en) Webpage access control method and gateway device
US20240127083A1 (en) Systems and methods for knowledge-based reasoning of an autonomous system
TWI844216B (en) Windows arrangement system, windows arrangement method and windows arrangement program
US20180089284A1 (en) Ranking courses for a presentation
US10303752B2 (en) Transferring a web content display from one container to another container while maintaining state
KR102371487B1 (en) Method and apparatus for learning based on data including nominal data
US11620171B2 (en) Systems and methods for generating schema notifications
US11216148B1 (en) Systems and methods for responsive container visualizations
RU2711103C2 (en) Method and server for predicting query-completion suggestion for partial user-entered query
US11645445B2 (en) Systems and methods for dynamic document viewing
TW201926017A (en) Electronic device and web page management method thereof
US20210248206A1 (en) Systems and methods for generating data retrieval steps
US11900110B2 (en) Increasing user interaction with deep learning agent
US20240176578A1 (en) Audio output method, device, and electronic device
US20180144304A1 (en) Contextual recommendation of member profiles
US20220327134A1 (en) Method and system for determining rank positions of content elements by a ranking system
US20230360058A1 (en) Applying a machine learning model to generate a ranked list of candidate actions for addressing an incident