我搜索了网络和各种论坛,但是我找不到一件事,如果持续监控打开的程序,然后关闭另一个程序(不是被监控的程序),如果被监控的程序发生了什么.
例如,假设已经打开了一个记事本窗口,然后用户或其他程序打开一个Windows资源管理器窗口.我想知道如何关闭记事本窗口而不与Windows资源管理器窗口交互(除了意识到它确实打开),以及如果用户关闭Windows资源管理器窗口,关闭记事本窗口.
提前致谢!:d
我正在使用Visual Studio 2012 C++,我想设置两个具有彼此相同的唯一指针的向量.
using namespace std;
vector<unique_ptr<Unit>> unitVector;
vector<unique_ptr<Unit>> nonDeadUnits;
.... (stuff added to unitVector) ....
for (auto unit = unitVector.begin(); unit != unitVector.end(); ++unit) {
if ((*unit)->health > 0) {
nonDeadUnits.push_back(*unit);
}
}
unitVector.clear();
unitVector = nonDeadUnits; // error here (see below error code)
Run Code Online (Sandbox Code Playgroud)
我想删除所有生命值小于0的单位,但是如果我尝试直接从向量中删除它们,我会尝试访问我不应该访问的内存,从而终止程序.这就是为什么我选择这样做的原因.唯一的问题是unique_ptr不允许我想要的复制类型.这是错误:
error C2248: 'std::unique_ptr<_Ty>::operator =' : cannot access private member declared in class 'std::unique_ptr<_Ty>' c:\program files (x86)\microsoft visual studio 11.0\vc\include\xutility 2089
Run Code Online (Sandbox Code Playgroud)
我想有unique_ptr,因为向量在稍后的for循环中调用子类方法,它有助于覆盖.那么如何将矢量设置为彼此相等或者有更好的方法呢?
我对 elisp 比较陌生,我不知道如何表达我的问题以在 Google 上找到答案
我想定义一个函数:
我尝试过的是
(defun test ()
(switch-to-buffer-other-window "*test*")
(erase-buffer)
(insert "hello from *test*")
(kill-this-buffer))
(test)
Run Code Online (Sandbox Code Playgroud)
但这并没有按照我想要的方式工作。
为了清楚起见,下面是我希望该函数执行的操作的图像分解:
初始设置
函数test被执行
焦点保留在初始缓冲区上,然后指定的缓冲区*test*获得焦点并q按下键盘
窗口配置现在没有*test*,焦点返回到初始缓冲区
我计划使用此函数将我的个人键绑定打印到缓冲区中*test*,这样我就不必打开我的.emacs来查看它们
c++ ×2
elisp ×1
emacs ×1
function ×1
monitoring ×1
unique-ptr ×1
vector ×1
winapi ×1
windows ×1