|
|
|
from pyOpenRPA.Tools import CrossOS
|
|
|
|
if CrossOS.IS_WINDOWS_BOOL: import win32clipboard #CrossOS
|
|
|
|
if CrossOS.IS_LINUX_BOOL: import pyclip #CrossOS
|
|
|
|
import keyboard # keyboard functions
|
|
|
|
import time # Some operations need wait
|
|
|
|
import random # random number for test
|
|
|
|
gWaitTextInClipboardSec = 1 # Second for wait text will be set in clipboard (for get operations)
|
|
|
|
# set clipboard data
|
|
|
|
def TextSet(inTextStr):
|
|
|
|
if CrossOS.IS_WINDOWS_BOOL:
|
|
|
|
win32clipboard.OpenClipboard()
|
|
|
|
win32clipboard.EmptyClipboard()
|
|
|
|
win32clipboard.SetClipboardText(inTextStr)
|
|
|
|
win32clipboard.CloseClipboard()
|
|
|
|
if CrossOS.IS_LINUX_BOOL:
|
|
|
|
pyclip.copy(inTextStr) # copy data to the clipboard
|
|
|
|
# get clipboard data
|
|
|
|
def TextGet(inWaitTextInClipboardSec = gWaitTextInClipboardSec):
|
|
|
|
time.sleep(inWaitTextInClipboardSec) # Wait for clipboard will save
|
|
|
|
if CrossOS.IS_WINDOWS_BOOL:
|
|
|
|
win32clipboard.OpenClipboard()
|
|
|
|
data = win32clipboard.GetClipboardData()
|
|
|
|
win32clipboard.CloseClipboard()
|
|
|
|
return data
|
|
|
|
if CrossOS.IS_LINUX_BOOL:
|
|
|
|
lResult = pyclip.paste(text=True)
|
|
|
|
return lResult
|
|
|
|
# Test in has text cursor and ready to apply
|
|
|
|
def InputIsFocused():
|
|
|
|
keyboard.press_and_release("ctrl+a")
|
|
|
|
keyboard.press_and_release("backspace") # remove old text
|
|
|
|
lTextForTest = str(random.randrange(100,99999))
|
|
|
|
keyboard.write(lTextForTest)
|
|
|
|
keyboard.press_and_release("ctrl+a")
|
|
|
|
keyboard.press_and_release("ctrl+c")
|
|
|
|
time.sleep(2)
|
|
|
|
keyboard.press_and_release("backspace") # remove old text
|
|
|
|
lClipboardText = TextGet()
|
|
|
|
lResult = lClipboardText == lTextForTest
|
|
|
|
return lResult
|
|
|
|
# Check if cmd is opened
|
|
|
|
def CMDIsOpen():
|
|
|
|
lTextForTest = str(random.randrange(100,99999))
|
|
|
|
keyboard.write(lTextForTest+" |clip")
|
|
|
|
keyboard.press_and_release("enter")
|
|
|
|
time.sleep(2)
|
|
|
|
lClipboardText = TextGet()
|
|
|
|
lResult = lClipboardText == lTextForTest
|
|
|
|
return lResult
|