标签: taskkill

强制关闭后音频继续播放

首先,感谢您对这个伟大的网站,我通过搜索这里回答的问题找到了大量的信息.但是我有一个问题,我只发现了一个(没有答案).

我正在编写一个应用程序,它使用AudioTrack通过耳机插孔循环运行时生成的正弦波(以控制其他电子设备).它以定时间隔(使用Handler.postDelayed)执行此操作,并且它工作正常 - 除非您碰巧强制关闭应用程序.在这种情况下,即使在应用程序本身已经过去之后,正弦波仍在继续播放,而字面上我唯一能做的就是重启手机.

如果应用程序正确关闭,即使它崩溃,声音就会停止.

我试过了:

  • 创建一个onDestroy()方法来停止和释放AudioTrack实例,但不幸的是,它甚至都没有被调用.
  • 为声音循环使用更大的音频缓冲区(希望小缓冲区大小导致错误); 没有不同.
  • 再次启动我的应用程序:现在我有两个正常的正弦波!
  • 完全卸载(!)应用程序:正弦波仍然在那里困扰着我的坟墓.
  • 将手机置于静音模式:没有区别.(我不希望这发生在我的用户身上.)
  • 将媒体音量一直调低,等待15分钟以上:没有区别.
  • 将采样率更改为11,22或44.1 kHz:无差异.
  • 一次又一次地开始和杀死应用程序:我实际上可以通过这种方式让8种不同的不朽正弦波相互干扰.实际上非常酷.:P

我知道在Android上使用任务杀手并不"健康",但很多人仍然这样做,而且我不希望我的用户的手机变成不可阻挡的噪音发生器,以防我的应用程序碰巧挂起并让它的屁股发出声响.

以下是生成正弦波的代码:

int bufSize = (int)(11025.0 / 60.0); // the number of samples needed for a seamless loop at 60Hz
AT = new AudioTrack(AudioManager.STREAM_MUSIC, 11025, AudioFormat.CHANNEL_CONFIGURATION_MONO,
    AudioFormat.ENCODING_PCM_8BIT, bufSize, AudioTrack.MODE_STATIC);

byte buffer[] = new byte[bufSize];

float angle = 0.0f;
for (int i=0; i < bufSize; i++){
    buffer[i] = (byte)(Math.sin(angle) * 255);
    angle += (float)(2*Math.PI) * 60 / 11025;
}

if (AT.write(buffer, 0, bufSize) != bufSize){ …
Run Code Online (Sandbox Code Playgroud)

audio android taskkill

7
推荐指数
1
解决办法
1783
查看次数

taskkill 关闭进程安全吗?

我希望能够使用 .bat 文件关闭远程计算机上的进程。例如:taskkill /im Myapp.exe

使用 taskkill 是关闭应用程序的合适方法吗?例如,单击工具栏上的“X”?

它是否给应用程序时间来运行所有关闭方法/析构函数?或者它是否会导致它突然结束,丢失在关闭之前没有机会写入的任何数据?

batch-file taskkill

6
推荐指数
1
解决办法
3423
查看次数

ActivityManager.killBackgroundProcesses与"强制停止"不同

我正在我的应用程序中试验ActivityManager.killBackgroundProcesses,并注意到一些有趣的东西.我希望stackoverflow上的某个人可以对此有所了解.

因此,如果我启动一个应用程序,例如youtube,我首先会看到视频页面列表,然后单击menu-> Settings,我将获得设置页面.现在,如果我单击主页按钮,这将把youtube放到后台.到现在为止还挺好.现在,如果我运行ActivityManager.killBackgroundProcesses来杀死youtube应用程序(或者我使用高级任务杀手我相信使用相同的API),当我再次启动youtube时,我会看到设置页面,而不是默认的视频页面列表.

但是如果不是做ActivityManager.killBackgroundProcesses,我去系统设置 - >管理应用程序 - > Youtube->强制停止,当我再次启动youtube时,我得到视频页面列表,而不是设置页面.

因此,似乎ActivityManager.killBackgroundProcesses与强制停止不同,因为它仍然会记住它在放到后台之前所处的最后一个任务/页面,而强制停止会给你一个新的开始.

有人对此有很好的解释吗?在我的代码中是否可以执行"强制停止"以重新启动应用程序?

非常感谢!

android task taskkill setting

6
推荐指数
1
解决办法
3797
查看次数

Linux相当于taskkill

有人可以帮我用这个命令的Linux等价物:

taskkill /F /IM myStupidProcess.exe /T
Run Code Online (Sandbox Code Playgroud)

谢谢!

linux taskkill

6
推荐指数
1
解决办法
9710
查看次数

从任务列表传递PID并使用任务列表终止进程

我试图让Windows进程匹配某些特定条件,例如它们就像"123456.exe"并试图用tasklist杀死它们.我试图这样做:

FOR /F "usebackq tokens=2 skip=2" %i IN (`tasklist |findstr /r "[0-9].exe") DO taskkill /PID %i
Run Code Online (Sandbox Code Playgroud)

这是不对的,我不知道为什么....谁能给我一个提示?Thanx提前!

windows batch-file tasklist taskkill

5
推荐指数
1
解决办法
1万
查看次数

无法从GitBash运行TASKKILL

我正在尝试在我的.bashrc中创建一个函数以在gitbash中运行.我正在尝试运行的命令是:

cmd '/C TASKKILL /fi "WINDOWTITLE eq  Windows Task Manager"'
Run Code Online (Sandbox Code Playgroud)

我将更改"Windows任务管理器"位,但只是为了显示我正在尝试的内容.当我通过Windows cmd运行它时,命令(TASKKILL/fi"WINDOWTITLE eq Windows任务管理器")工作正常,但是当我从gitbash运行时,我收到以下错误消息:

ERROR: Invalid argument/option - 'eq'.
Type "TASKKILL /?" for usage.
Run Code Online (Sandbox Code Playgroud)

正如我所说,它在cmd中运行良好,所以我认为它与引号有关.我也试过以下,但也失败了:

cmd "/C TASKKILL /fi \"WINDOWTITLE eq  Windows Task Manager\""
Run Code Online (Sandbox Code Playgroud)

可以将命令放在.bat文件中并运行它(cmd"/ C pathtofile/script.bat")并且这样可行,但我更愿意直接从.bashrc运行它,如果可能的话.

windows taskkill git-bash

5
推荐指数
1
解决办法
2117
查看次数

如何从批处理文件中打开和关闭Internet Explorer?

我有一个批处理文件,必须启动Internet Explorer并打开www.google.com.当整个页面加载完成时,它应该终止IE进程,即关闭该系统中IE的所有实例.我的批处理文件有以下两行.

iexplore.exe "www.google.com"
taskkill /IM iexplore.exe /F
Run Code Online (Sandbox Code Playgroud)

但是在加载后它没有关闭IE实例.

如果我有单独的taskkill/IM iexplore.exe/F单独的批处理文件.此批处理文件关闭IE实例.

First Batch文件出了什么问题.

PS批处理文件位于程序文件的Internet Explorer文件夹中.

internet-explorer cmd batch-file taskkill kill-process

5
推荐指数
1
解决办法
4万
查看次数

使用Inno Setup中的"taskkill/f/im"在(重新)安装之前杀死进程

我安装了一个服务/守护进程,需要在卸载和重新安装之前将其杀死.

我已经找到了如何进行卸载:

[UninstallRun]
Filename: "taskkill"; Parameters: "/im ""My Service.exe"" /f"; Flags: runhidden
Run Code Online (Sandbox Code Playgroud)

[Run]但是,该部分在安装后运行,因此我无法使用它.taskkill在安装之前使用该方法杀死进程的最佳方法是什么?

请注意,我特别想杀死这个过程.使用IPC的更复杂的解决方案在我的情况下没有任何好处,我只想taskkill在安装特定文件之前执行.

inno-setup taskkill

5
推荐指数
2
解决办法
8825
查看次数

在Windows上正常终止命令行应用程序

我正在创建一个命令行应用程序,它产生一个进程(由用户定义的命令,通常是一个HTTP服务器),当应用程序的工作完成时,我想让进程知道它应该终止.

在UNIX中,我可以通过发送SIGTERM来做到这一点,如果进程没有结束,那么我可以通过SIGKILL残酷杀死它.

在Windows中,我很难找到SIGTERM场景的替代方案.我学到了taskkill /PID XXXX(没有/f!),但是

  1. 我没有找到关于taskkill /PID XXXX幕后内容的信息,因此我无法测试它.我找不到如何处理taskkill /PID XXXX进程端的任何发送.
  2. 它似乎不适用于命令cmd.exe.我尝试在一个中运行一个简单的服务器进程cmd.exe,获取其PID并在另一个窗口中运行taskkill /PID XXXX它,但taskkill拒绝这样做:ERROR: The process with PID XXXX could not be terminated. Reason: This process can only be terminated forcefully (with /F option).

所以我的问题是:如何通知Windows中的命令行进程它应该终止而不强行终止它?如何在待终止进程方面接收和处理此类消息?

windows process taskkill

5
推荐指数
1
解决办法
2141
查看次数

除了当前从批处理运行的cmd.exe之外,如何杀死所有cmd.exe?

过去几天我一直在编写一个脚本,我觉得这很容易,但似乎没有,我明白为什么.我的问题是如何解决它.

我需要解释的批处理脚本:

我有一个在cmd.exe中运行的脚本,它执行一些操作,例如将大量文件从一个位置移动到另一个位置.让我们来称呼它 movefile.cmd.这个脚本有效,但有时会停止(非常罕见 - 不要进入原因和脚本).这个脚本总是运行很重要,所以我的想法是创建一个退出cmd.exe然后每小时左右重新打开脚本的批处理.让我们调用这个脚本restartcmd.bat

听起来非常简单,因为我能做到这一点:

@echo off

:loop

start c:\script\movefile.cmd 

Timeout /nobreak /t 3600

Taskkill cmd.exe

goto loop
Run Code Online (Sandbox Code Playgroud)

但显然这不起作用,因为我的新脚本也在cmd.exe中运行,所以它也会杀死这个过程.

我尝试过的:

所以我制作了cmd.exe的副本并将其重命名为dontkillthis.exe.我运行dontkillthis.exe,然后从dontkillthis.exe打开restardcmd.bat - 这非常有效!但是我需要能够完成我的脚本而不是这样做.为什么?因为它应该尽可能简单,我希望我的restartcmd.bat在我的启动文件夹中.

我一直在寻找获取cmd.exe的确切进程ID并关闭它的想法,以便我的dontkillthis.exe将保留,但我似乎无法指出它.试过这里写的所有内容如何杀死除了当前正在运行的批处理文件之外的所有批处理文件,但我无法让它工作.

我不确定我是否感到困惑,或者实际上是否有点困难.

我真的很感激这里的一些帮助.

最好的祝福

MO

windows cmd batch-file taskkill

4
推荐指数
1
解决办法
1万
查看次数