TRIGGER->触发器收集器-> RUN SCREENSHOT
TRIGGER
import socket
s = socket.socket()
port = 12344
s.connect(('10.35.145.133', port))
s.close()
TRIGGER COLLECTOR
import os
import socket
if __name__ == '__main__':
os.system("cmd.exe /c python E:\\C\\screenshot.py") #........I say this is called "A"
s = socket.socket()
port = 12344
s.bind(('', port))
s.listen(1)
print("Listening")
while True:
try:
c, addr = s.accept()
print("Accept")
# CMD run
os.system("cmd.exe /c python E:\\C\\screenshot.py") #........And this is called "B"
c.close()
except BaseException:
pass
s.close()
运行屏幕
from PIL import ImageGrab
im= ImageGrab.grab()
im.save("image.png", "PNG")
我的模型包括:
1。触发
点击服务器上的按钮后,Trigger
将运行并触发Trigger Collector
。
2。触发收集器
此脚本将在客户端上运行,并将等待服务器触发此脚本。
3。运行屏幕截图
此脚本将由Trigger Collector
触发并获取屏幕截图。
问题:
请参阅我的Trigger Collector
的代码,我已将os.system()
命名为“ A”和“ B”
我需要在“ B”而不是“ A”发送屏幕截图,但这似乎不起作用。
(我之所以将“ A”和“ B”放在首位,是因为我想知道问题所在,因为即使我知道“ A”和“ B”的位置也很重要,我知道这是socket
问题)
那么当我在“ B”上运行脚本时如何获得“正确的”屏幕截图? 提醒:“ A”只是一个调试过程。
我拥有的当前解决方案:
我在“ A”创建了一个线程,并在“ B”
触发器启动时保存图像。 (此解决方案将需要
将Trigger Collector
和Run Screenshot
合并到一个脚本中)
此技术的缺点:这会占用很多资源,因为即使我不这样做,我也会始终拍摄屏幕截图 需要
编辑:响应我自己的解决方案,实际上我可以使用信号量使其同步运行,而不浪费任何资源:)我认为这应该结束这种情况。
注意:如果你们中的一些人可以提供帮助并且我的解释不够清楚,请随时问我,谢谢:)