마다 사용자가 응답해야 내 wxPython에 응용 프로그램은 CTRL-C, 기본적으로 내가 알고 싶은 등 다른 창에서 응용 프로그램 프레임/보이지만 초점을 흐리게 상단//을 최소한에있는 경우에 상관없이 안타 그 사용자는 CTRL-C 조합을 사용하여 무언가를 클립 보드에 복사했습니다 - 클립 보드에서 다른 변경 사항 (마우스 r- 클릭 + "복사"는 무시되어야 함)이 클립 보드에 복사 된 데이터를 사용하는 것보다. 그게 내가 pyHook을 사용하고 있고 모든 것이 괜찮은 것 같아서 ... "OnKeyboardEvent"내의 모든 코드는 CTRL-C가 "actuall job"(클립 보드에 복사하는 것)을 수행하기 전에 실행되는 것 같아서, 내가 친절 할 때마다 "한 단계 뒤로"의 :CTRL-C를 잡기 wxPython을 클립 보드 데이터를 조작
어떻게됩니까 :
import wx
import pyHook
import win32clipboard
class TextFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, 'Frame', size=(300, 100))
panel = wx.Panel(self, -1)
self.basicText = wx.TextCtrl(panel, -1, "", size=(175, -1))
self.basicText.SetValue("Press CTRL-C")
hm = pyHook.HookManager()
hm.KeyDown = self.OnKeyboardEvent
hm.HookKeyboard()
def OnKeyboardEvent(self,event):
if event.Ascii == 3:
win32clipboard.OpenClipboard()
clipboarditem = win32clipboard.GetClipboardData()
win32clipboard.CloseClipboard()
print clipboarditem
self.basicText.SetValue(clipboarditem)
app = wx.PySimpleApp()
frame = TextFrame()
frame.Show()
app.MainLoop()
:
1. user hits CTRL-C
2. my "OnKeyboardEvent" code is executed
3. data is being copied to the clipboard (CTRL-C does its job)
내가 2 전 3 할 ... :) 어쨌든
필요, 여기에 코드입니다
두 번째로 위의 코드가 잘못되었습니다 ... "OnKeyboardEvent"절차의 끝에서 "print clipboarditem"을 참조하십시오? 나는 그것을 다음 명령을 삭제하는 경우 - 작동을 멈 춥니 다 "self.basicText.SetValue (clipboarditem)"를하고 있습니다 나를 위해이 불고 마음은
line 23, in OnKeyboardEvent
self.basicText.SetValue(clipboarditem)
File "C:\Python27\lib\site-packages\wx-3.0-msw\wx\_core.py", line 13075, in SetValue
return _core_.TextEntryBase_SetValue(*args, **kwargs)
TypeError: an integer is required
는 :
하지만 사용 후 "복사"를 마우스 오른쪽 클릭을 사용하는 경우 (또한 콜백 다른
True
내가 예외 메시지를 많이 얻을 돌려 고정)? 어떻게 감지 할 수 있니? –나는 "클립 보드에서 CTRL-C의 변화"만에 intrested 해요 - 모든 – ttT
wx.python가 자신의 클립 보드 기능을 가지고에서 마우스 사본이 감지되지 않습니다 : https://wxpython.org/docs/api/wx.Clipboard- class.html –