【问题标题】:vba excel macro to use adbvba excel宏使用adb
【发布时间】:2020-06-25 19:30:52
【问题描述】:

我正在尝试创建一个允许我截取屏幕截图、视频并通过 adb 检索它们的宏。 使用 shell + line 我几乎可以做所有事情,但我无法停止录制。 停止录制命令是ctrl+c,但是通过sendkeys发送是不行的。

Private Sub CommandButton2_Click()
    If ComboBox1.Value = "data, ora e titolo" Then
        nomevideo = Format(Now, "dd-mm-yy_hh-mm-ss_") & "_" & TextBox2.Value & ".mp4"
    ElseIf ComboBox1.Value = "data e titolo" Then
        nomevideo = Format(Now, "dd-mm-yy_") & TextBox2.Value & ".mp4"
    Else
        nomevideo = Format(Now, "dd-mm-yy_hh-mm-ss") & ".mp4"
    End If
    video = "adb shell screenrecord /sdcard/" & nomevideo
    Debug.Print video & "registra video"
    Shell video
    CommandButton13.Visible = True
End Sub

Private Sub CommandButton5_Click()
    SendKeys "^c"
    Debug.Print "stop video"
End Sub

【问题讨论】:

  • 这个问题与 C 语言有什么共同点。你为什么垃圾标签
  • 我的标签是ctrl+c,对不起!!

标签: excel vba adb ctrl


【解决方案1】:

您需要在发送 control-c 之前使用 AppActivate 激活 adb 的窗口。详情请见https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/appactivate-statement

好的,使用shell时保持窗口打开:keep Shell / cmd open when launching R script from VBA

【讨论】:

  • 我尝试激活dos提示,但没有成功。还尝试使用 ctrl+c 从提示中手动停止它,但它与 -shell "adb shell screenrecord /sdcard/test.mp4" 开始录制的窗口不同,它不起作用
  • 您是如何激活 DOS 提示符的?手动?
  • 我没激活,shell直接发命令提示,不显示窗口
  • 好的,启动adb进程时,有没有出现任何窗口?你通常是如何阻止它的?
  • 对不起,我现在明白我在做什么了......我通过提示使用 adb,但写“shell”adb 等。我直接与 adb 交谈。所以我需要激活 adb 并使用 sendkeys。你能告诉我如何激活窗口吗? appactivate 和 ?​​span>
【解决方案2】:

这行得通

Dim programma As Long, newhour, newminute, newsecond, waittime As Variant
   programma = Shell("C:\Windows\system32\cmd.exe", vbNormalFocus)
AppActivate programma
   newhour = Hour(Now())
   newminute = Minute(Now())
   newsecond = Second(Now()) + 1
   waittime = TimeSerial(newhour, newminute, newsecond)
Application.Wait waittime
Application.SendKeys ("adb shell screenrecord /sdcard/gigio.mp4~"), True
AppActivate programma
   newhour = Hour(Now())
   newminute = Minute(Now())
   newsecond = Second(Now()) + 1
   waittime = TimeSerial(newhour, newminute, newsecond)
Application.Wait waittime
Application.SendKeys ("^c"), True

【讨论】:

    猜你喜欢
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多