从Android Studio运行我的应用程序时,我可以强制模拟器到顶部吗?

问题描述 投票:1回答:2

这是一个非常小的不便,但是当我开始从Android Studio运行我的应用程序时,我希望Android模拟器能够突然出现。

我知道模拟器中的“Always on Top”设置,但是当我处理代码时,我必须最小化模拟器。运行我的应用程序不会还原模拟器。

android-studio android-emulator
2个回答
2
投票

以下@Ves接受的答案确实有效,但改变了批处理文件,因为它对我来说不起作用,这是我如何基于另一个答案https://superuser.com/questions/647216/startup-program-bring-to-foreground编辑批处理文件BringProcessToFront.ps1。

if ( $args ){
   $processName = $args[0]
}
else{
   $processName = "qemu-system-i386"
}

Add-Type @"
  using System;
  using System.Runtime.InteropServices;
  public class Tricks {
     [DllImport("user32.dll")]
     [return: MarshalAs(UnmanagedType.Bool)]
     public static extern bool SetForegroundWindow(IntPtr hWnd);
  }
"@
sleep -sec 1
$h = (Get-Process $processName).MainWindowHandle
[void] [Tricks]::SetForegroundWindow($h)

然后我从接受的答案中按照其余步骤进行操作。


1
投票

为我的问题创建了一个解决方案 - 我正在开发Windows 10。

  1. 创建PowerShell批处理文件BringProcessToFront.ps1(*注意您的模拟器可能有不同的名称,如qemu-system-x86_64 *) if ( $args ){ $processName = $args[0] } else{ $processName = "qemu-system-i386" } $sig = '[DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);' Add-Type -MemberDefinition $sig -name NativeMethods -namespace Win32 $hwnd = @(Get-Process $processName)[0].MainWindowHandle [Win32.NativeMethods]::ShowWindowAsync($hwnd, 4)
  2. 确保您可以从命令行实际运行此脚本。默认安全性不允许您运行脚本,作为管理员,您需要使用Set-Execution允许它们如果一切正常(并且模拟器正在运行)它将弹出到前面。 powershell -command C:\users\username\BringProcessToFront.ps1
  3. 在Android Studio中创建一个新的外部工具“BringEmulatorToFront” Run>Edit Configuraions Expand Android App and select app Before launch: (Hit the green + sign to add a new external tool) In the "External Tools Dialog" hit the green + to create a new tool) Name: BringEmulatorToFront Description: Launch PowerShell to make sure Emulator is visible Program: powershell Arguments: -command C:\users\username\BringProcessToFront.ps1 Working directory: C:\users\username *IMPORTANT* Uncheck the Advanced options Synchronize files and Open console (If you leave Open console checked your run will not terminate cleanly)
  4. 运行你的应用程序,观看模拟器弹出到前面!

0
投票

我一直试图这样做一段时间......我想这是无法做到的。

我通过购买另一台显示器并将模拟器推到另一台显示器来解决了这个问题。


0
投票

如果你有足够的屏幕空间,那么一种解决方法就是将模拟器设置为始终位于顶部:

From the emulator go to: Extended Controls -> Settings -> Emulator always on top
© www.soinside.com 2019 - 2024. All rights reserved.