макрос vba excel для использования adb

я пытаюсь создать макрос, который позволяет мне делать скриншоты, видео и получать их через adb. с помощью оболочки + строки я могу делать почти все, но я не могу остановить запись. команда остановки записи - 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

person imxdble    schedule 25.06.2020    source источник
comment
что общего у этого вопроса с языком C. зачем спамить теги   -  person 0___________    schedule 25.06.2020
comment
мой тег был ctrl+c, извините!!   -  person imxdble    schedule 25.06.2020


Ответы (2)


Вам нужно активировать окно adb с помощью AppActivate перед отправкой control-c. См. https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/appactivate-statement для получения подробной информации.

Хорошо, держите окно открытым при использовании оболочки: / cmd открывается при запуске скрипта R из VBA

person Tarik    schedule 25.06.2020
comment
Я попытался активировать приглашение DOS, и это не сработало. также попытался вручную остановить его из подсказки с помощью Ctrl + C, но это не то же окно, где -shell adb shell screenrecord /sdcard/test.mp4 начинает запись, и это не сработало. - person imxdble; 25.06.2020
comment
Как вы активировали приглашение DOS? Вручную? - person Tarik; 25.06.2020
comment
я не активировал его, оболочка отправляла команды прямо в приглашение, не показывая окно - person imxdble; 25.06.2020
comment
Ок, при запуске процесса adb появляется какое-нибудь окно? Как вы обычно его останавливаете? - person Tarik; 25.06.2020
comment
извините, теперь я понимаю, что я делал ... я использую adb через подсказку, но пишу оболочку adb и т. д. я говорю напрямую с adb. поэтому мне нужно активировать adb и использовать sendkeys. подскажите как активировать окно? активировать и ? - person imxdble; 25.06.2020

это работает

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
person imxdble    schedule 25.06.2020