gpt4 book ai didi

swift - 如何模拟从 Mac App 到其他应用程序的鼠标点击

转载 作者:IT王子 更新时间:2023-10-29 05:11:22 24 4
gpt4 key购买 nike

我正在尝试从 macos 应用程序模拟鼠标点击 iphone 模拟器,因为我正在使用 CGEvents 。

iPhone模拟器的进程id是33554

let point = CGPoint(x: 500  , y:300)
let eventMouseDown = CGEvent(mouseEventSource: nil, mouseType: .leftMouseDown, mouseCursorPosition: point, mouseButton: .left)
let eventMouseUp = CGEvent(mouseEventSource: nil, mouseType: .leftMouseUp, mouseCursorPosition: point, mouseButton: .left)
eventMouseDown?.postToPid(33554)
eventMouseUp?.postToPid(33554)

我还注意到,当 ios 模拟器窗口聚焦时,它会模拟鼠标点击,并且仅适用于此工具栏,但不适用于模拟器,例如,如果我将 CGPoint 更改为 (0,30),它将点击模拟器选项

enter image description here

但是当我给 CGPoints 来点击 iOS 模拟器中的应用程序时它不起作用 enter image description here

但是,我可以使用 将键盘事件发布到模拟器

let keyboardDown = CGEvent(keyboardEventSource: nil, virtualKey: 6, keyDown: true)
let keyboardUp = CGEvent(keyboardEventSource: nil, virtualKey: 6, keyDown: false)
keyboardDown?.postToPid(33554)
keyboardUp?.postToPid(33554)

最佳答案

首先,如果您查看 postToPid,则根本没有文档

PostToPID

所以甚至不确定它是否应该工作,如果是,那么什么时候和什么时候不工作。但是您可以使用以下代码将事件直接发布到屏幕

//
// main.swift
// mouseplay
//
// Created by Tarun Lalwani on 22/05/18.
// Copyright © 2018 Tarun Lalwani. All rights reserved.
//

import Foundation

let source = CGEventSource.init(stateID: .hidSystemState)
let position = CGPoint(x: 75, y: 100)
let eventDown = CGEvent(mouseEventSource: source, mouseType: .leftMouseDown, mouseCursorPosition: position , mouseButton: .left)
let eventUp = CGEvent(mouseEventSource: source, mouseType: .leftMouseUp, mouseCursorPosition: position , mouseButton: .left)


eventDown?.post(tap: .cghidEventTap)

//eventDown?.postToPid(71028)
usleep(500_000)
//eventUp?.postToPid(71028)
eventUp?.post(tap: .cghidEventTap)

print("Hello, World!")

你也可以看到它在工作

Run demo

关于swift - 如何模拟从 Mac App 到其他应用程序的鼠标点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41908620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com