3
我編寫了一個小程序來跟蹤我的剪貼板活動並使用反應香蕉和System.Clipboard將其打印到終端。從剪貼板中讀取權限被拒絕
module Main where
import Reactive.Banana
import Reactive.Banana.Frameworks
import System.Clipboard
import Data.Maybe(fromJust)
main :: IO()
main = do
sources <- (,) <$> newAddHandler <*> newAddHandler
network <- setupNetwork sources
actuate network
s <- getClipboardString
loop s sources
loop s (epop, epush) = do
c <- getClipboardString
if s /= c then
snd epush [fromJust c]
else
loop s (epop, epush)
setupNetwork (epop, epush) = compile $ do
ePop <- fromAddHandler $ fst epop
ePush <- fromAddHandler $ fst epush
bStack <- accumB [""] $ (++) <$> ePush
eStack <- changes bStack
reactimate' $ fmap print <$> eStack
當我運行它時,我移動到另一個窗口(如chrome)並複製一些文本。當我這樣做時,我得到Main.hs: CloseClipboard: invalid argument (Thread does not have a clipboard open.)
。我在Windows上運行這個。 任何幫助將是偉大的!
乾杯
適用於Windows 10 64bit,stackage 1.3.2,ghci 8.0.1。 ''直接在ghci工作中做getClipboardString'嗎? –
是的,當我在ghci中使用剪貼板功能時,一切都按預期工作。我會比較今天晚些時候的版本,看看它是不是原因, –
@ja。你能給我你在終端上輸入的命令嗎?我的版本與您的版本相同,但仍然無效。 –