标签: capture

如何在elisp中捕获shell命令的标准输出?

我想在Emacs中运行shell命令并将完整输出捕获到变量.有没有办法做到这一点?例如,我想能够设置hello-string"hello"以下方式:

(setq hello-string (capture-stdout-of-shell-command "/bin/echo hello"))
Run Code Online (Sandbox Code Playgroud)

该函数是否capture-stdout-of-shell-command存在,如果存在,它的真实名称是什么?

emacs elisp stdout capture

37
推荐指数
2
解决办法
9734
查看次数

如何捕获ls或find命令的输出以将所有文件名存储在数组中?

需要一次处理一个当前目录中的文件.我正在寻找一种方法来获取ls或输出find结果值作为数组的元素.这样我就可以根据需要操作数组元素.

arrays bash ls find capture

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

32
推荐指数
3
解决办法
2万
查看次数

Android VpnService捕获数据包不会捕获数据包

我现在一直在寻找我的答案几个小时,我无法弄明白.请帮忙.

我想要做的是使用Android中的VpnService来获取网络数据包,如应用程序tPacketCapture

我开始使用谷歌的ToyVpn示例代码并对其进行修改,因此我不会将数据发送到服务器.但是,我不确定这是否正确.

我的configure方法在调用establish()之前使用binder.addAddress()的wlan ip地址.我正在使用nexus 7并使用"adb shell netcfg | grep wlan0"来获取地址:

wlan0 UP 192.168.0.6/24 0x00001043 10:bf:48:bf:5f:9d

并在我的方法中添加它:

    private void configure() throws Exception {
    // If the old interface has exactly the same parameters, use it!
    if (mInterface != null) {
        Log.i(TAG, "Using the previous interface");
        return;
    }

    // Configure a builder while parsing the parameters.
    Builder builder = new Builder();
    builder.setMtu(1500);
    builder.addAddress("192.168.0.6", 24);

    try {
        mInterface.close();
    } catch (Exception e) {
        // ignore
    }

    mInterface = builder.establish();
}
Run Code Online (Sandbox Code Playgroud)

在调用之后,我调用我修改的run方法来传递String而不是InetSocketAddress,这并不重要,因为我没有在任何地方使用它: …

android capture packet

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

如何在easymock中模拟一个返回其中一个参数的方法?

public Object doSomething(Object o);我想嘲笑.它应该只返回它的参数.我试过了:

Capture<Object> copyCaptcher = new Capture<Object>();
expect(mock.doSomething(capture(copyCaptcher)))
        .andReturn(copyCatcher.getValue());
Run Code Online (Sandbox Code Playgroud)

但是没有成功,我只得到一个AssertionError java.lang.AssertionError: Nothing captured yet.有任何想法吗?

java easymock mocking capture

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

某些设备(不是EXIF)捕获Android相机无法解释的旋转

我正在做的事情似乎应该很简单,但在我阅读了每一个可能的Stackoverflow答案之后我仍然迷失了,我可以找到并搜索我能找到的每篇文章.

我正在使用预览SurfaceView并从我在AndroidManifest.xml中为screenOrientation ="landscape"设置的活动中捕获图像.

我按照示例相机应用程序代码进行操作,直到我在运行1.5的一些摩托罗拉设备上尝试我的应用程序之前一直工作.

我让OrientationEventListener运行正常,我使用反射来查看是否设置旋转:

final int latchedOrientation = roundOrientation(mLastOrientation + 90);

Parameters parameters = preview.camera.getParameters();

JPLog.d("Setting camera rotation = %d", latchedOrientation);
try {
    // if >= 2.0
    Method method = Camera.Parameters.class.getMethod("setRotation",
        int.class);

    if(method != null) {
        method.invoke(parameters, latchedOrientation);
    }

} catch(Throwable t) {
    // if < 2.0
    parameters.set("rotation", latchedOrientation);
}

preview.camera.setParameters(parameters);
Run Code Online (Sandbox Code Playgroud)

NexusOne(OS 2.2) - 效果很好.latchedOrientation = 0,图片OK在EXIF标题中没有任何旋转.

T-Mobile G1(OS 1.6) - 也很棒.latchedOrientation = 0,图片确定.

摩托罗拉Backflip(OS 1.5) - 图像旋转.latchedOrientation = 0,图片中没有EXIF旋转.

Motorola CLIQ(OS 1.5) - 图像旋转.latchedOrientation = 0,图片中没有EXIF旋转.

这些摩托罗拉设备发生了什么变化?我认为我的问题是摩托罗拉相机驱动程序没有旋转图像,所以找到了Android的Sanselan EXIF阅读课,并准备自己旋转它们.有趣的是,有EXIF标题但没有旋转元素. …

camera android rotation capture orientation

29
推荐指数
2
解决办法
3万
查看次数

如何告诉lambda函数捕获副本而不是C#中的引用?

我一直在学习C#,我正在努力理解lambdas.在下面的示例中,它打印出10次.

class Program
{
    delegate void Action();
    static void Main(string[] args)
    {
        List<Action> actions = new List<Action>();

        for (int i = 0; i < 10; ++i )
            actions.Add(()=>Console.WriteLine(i));

        foreach (Action a in actions)
            a();
    }
}
Run Code Online (Sandbox Code Playgroud)

显然,lambda后面生成的类正在存储一个引用int i变量的引用或指针,并且每次循环迭代时都会为同一个引用分配一个新值.有没有办法强制lamda获取副本,比如C++ 0x语法

[&](){ ... } // Capture by reference
Run Code Online (Sandbox Code Playgroud)

[=](){ ... } // Capture copies
Run Code Online (Sandbox Code Playgroud)

c# lambda loops capture

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

C#试图捕获表单上的KeyDown事件

我正在创建一个小游戏,游戏被打印到Windows窗体上的面板上.现在我想捕获keydown事件以查看它是否已被按下的箭头键,但问题是我似乎无法捕获它.

让我解释一下,在表格上我有4个按钮和各种其他控件,如果用户例如按下其中一个按钮(触发游戏事件),那么按钮有焦点,我无法用箭头键捕捉动作.

我试过类似的东西

private void KeyDown(KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Left)
        {
            game.MovePlayer(DonutWarsLibrary.GameObjects.Direction.E);
            game.DrawObjects(panel1.CreateGraphics());
        }
        else if (e.KeyCode == Keys.Right)
        {
            game.MovePlayer(DonutWarsLibrary.GameObjects.Direction.W);
            game.DrawObjects(panel1.CreateGraphics());
        }
        else if (e.KeyCode == Keys.Up)
        {
            game.MovePlayer(DonutWarsLibrary.GameObjects.Direction.N);
            game.DrawObjects(panel1.CreateGraphics());
        }
        else if (e.KeyCode == Keys.Down)
        {
            game.MovePlayer(DonutWarsLibrary.GameObjects.Direction.S);
            game.DrawObjects(panel1.CreateGraphics());
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后当按下表单按键事件时,我使用了这个

private void MainForm_KeyDown(object sender, KeyEventArgs e)
    {
        KeyDown(e);
    }
Run Code Online (Sandbox Code Playgroud)

我还为Windows窗体上的按钮和各种其他控件添加了keydown,但我没有收到任何回复.我在函数内部设置了一个断点,看它是否被调用,但该断点永远不会触发?

有任何想法吗?

最优化的是具有触发的通用KeyDown事件(无论当前具有什么焦点的控件),然后调用KeyDown方法.

c# capture keydown winforms

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

捕获tcpdump中的传入流量

在tcpdump中,如何捕获发往我机器的所有传入IP流量?我不关心我的本地交通.

我应该说:

tcpdump ip dst $MyIpAddress and not src net $myIpAddress/$myNetworkBytes
Run Code Online (Sandbox Code Playgroud)

......或者我错过了什么?

packet-capture traffic tcpdump capture packet

25
推荐指数
3
解决办法
6万
查看次数

如何从ALREADY正在运行的进程中捕获stdout

我有一个正在运行的cron工作,它将持续一段时间,我想查看它的stdout.我不知道这个过程是由cron启动的重要性,但我想我会提到它.这是在OSX上,所以,我无法访问像.../proc/[pid]/...,或truss,或strace这样的东西.使用IO重定向(例如script > output & tail -f output)执行的建议是不可接受的,因为此过程已经1)已经运行,并且2)无法通过重定向停止/重新启动.如果有一些通用解决方案适用于各种Unices,那将是理想的,但具体而言我现在正试图在Mac上实现这一点.

macos cron stdout process capture

23
推荐指数
3
解决办法
2万
查看次数