小编use*_*981的帖子

透明窗口图层是点击式的,始终位于顶部

这是我尝试实现的一些代码.其目的是创建一个透明,全屏,无边框,点击并始终位于其他窗口之上的表单层.然后,它允许您使用directx在其顶部绘制,否则保持透明.

不起作用的部分是点击部分和directx渲染.当我运行它时,我基本上在所有其他窗口前面都有一个看不见的力场,并且必须使用alt-tab到Visual Studio快速按下ALT F5并结束调试(所以至少总是在顶部和透明度工作).我一直想弄清楚为什么那些部件不起作用,但我的新手c#技能让我失望.希望有人能发现原因并提供修改.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Globalization;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;
using System.Threading;


namespace MinimapSpy
{
public partial class Form1 : Form
{

    private Margins marg;

    //this is used to specify the boundaries of the transparent area
    internal struct Margins
    {
        public int Left, Right, Top, Bottom;
    }

    [DllImport("user32.dll", SetLastError = true)]

    private static extern UInt32 GetWindowLong(IntPtr hWnd, int nIndex);

    [DllImport("user32.dll")]

    static extern …
Run Code Online (Sandbox Code Playgroud)

.net c# winforms

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

如何将字节数组转换为int数组?

如何将字节数组转换为int数组?我有一个包含144个项目的字节数组,由于我的经验不足,我尝试过的方法效率很低.我很抱歉,如果以前已经回答过,但我无法在任何地方找到一个好的答案.

c# arrays

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

如何使用fork()来守护独立于其父进程的子进程?

可能重复:
在Linux中,如何在关闭SSH客户端后阻止后台进程停止

我有一个C程序,我可以通过终端访问和交互(通常来自Linux机器上的SSH).我一直试图找到问题的解决方案,在我关闭终端/注销后,流程以它结束(程序基本上要求一些选项然后进行业务,不需要进一步的交互,所以我想拥有它在我注销SSH之后继续运行).

在Linux中有一些方法可以避免这种情况,例如"屏幕",但我想用C编程,而不依赖于屏幕等已安装的软件包 - 即使这意味着重新发明轮子.

到目前为止,我理解fork()成为守护进程的标准琐碎方法,所以任何人都可以帮助我完成允许上述过程发生的代码吗?

在父母内部:

 main()
{

//Do interactive stuff

signal(SIGCHLD, SIG_IGN); //stops the parent waiting for the child process to end

if(fork())
 exit(0);
// and now the program continues in the child process
Run Code Online (Sandbox Code Playgroud)

我现在可以注销关闭原始shell的SSH了......孩子继续工作!

在孩子内:

//Continue with processing data/whatever the program does (no input/output to terminal required)
exit(0);
Run Code Online (Sandbox Code Playgroud)

c fork

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

grep:/ proc/sysrq-trigger:输入/输出错误

我正在搜索文件系统并使用grep.我看到一切正常,直到出现此错误:

Grep: /proc/sysrq-trigger: Input/output error
Run Code Online (Sandbox Code Playgroud)

我已经在网上的各个地方找到了信息,其他地方遇到了同样的问题,但是没有任何地方可行的.我尝试了2>/dev/null,它压制了错误,但没有"跳过文件",这实际上是我希望它会做的.相反,它只是停止进程(这是一个利用grep的find/sed进程).我认为有一种方法可以使用grep指定要排除的文件,但我希望可能有更强大和更优雅的解决方案.

linux grep

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

是否可以从终端运行程序并在关闭终端后继续运行?

我写了一个程序,我通过SSH连接到盒子后运行.它有一些用户交互,例如在提示后选择选项,通常我等待它执行的进程在注销之前完成关闭终端并结束程序.但是现在这个过程非常冗长,我不想在登录时等待,所以我怎么能在C中实现这个解决方法呢?

c linux

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

循环遍历数组问题的内容

我使用int数组来保存一长串整数.对于这个数组的每个元素,我想检查它是否为1,如果是,那么只做与1相关的东西,否则如果它是2,则执行与2相关的其他内容,依此类推存储在数组中的每个值.我想出了下面的代码,但它没有按预期工作,有什么我想念的吗?发生的事情是只考虑数组的第一个值.

int[] variable1 = MyClass1.ArrayWorkings();
foreach (int i in variable1)
{ 
    if (variable1[i] == 1)
    {
        // arbitrary stuff
    }
    else if (variable1[i] ==2)
    {
        //arbitrary stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

c#

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

使这个Readprocessmemory代码更有效率

介绍

目前我正在使用某人的类来读取内存中的字节(通过指针).到目前为止我的代码完美无缺,我真的不想改变类的设置方式(如果可行)(因为它可以工作),但希望可以对类和我的代码进行一些小的调整以使其高效.

我目前取得的成就:

  • 从内存中的指针地址开始,在该地址读取一个字节,将数据添加到数组,将原始地址加1,这样我们现在可以读取下一个地址(例如,原始地址是24004,一旦存储了字节,增量1和下一个要读取的地址变为24005).

  • 读取下一个地址(24005)处的字节,将其添加到同一个数组,将该地址加1(读取后面的数据变为24006).

  • 等等,进行固定次数的迭代(大约10,000次).

问题:

一次接一次地对readprocessmemory进行10,000次调用会导致系统延迟20秒,同时还会影响其业务.

我希望能实现的目标:

仅执行一次Readprocessmemory,指定要读取的10,000字节数据(而不是一次只进行10,000次迭代),将其保存到数组中,格式与之前使用的单个字节相同(我知道相反数组{0}(1)(2)..等等..我现在只有数组{0},所以我想我需要一种有效的方法将这个非常大的数字分成10,000个数字(在另一个数组中) ))存储在每个地址的数据是整数.因此对于5个地址:数组{12345}变为{1} {2} {3} {4} {5}.例如,1 2 3 4或5也可以是1 200 40 43或20.

理想情况下,如果我可以挥动我的新手魔杖,它会看起来像这样(下面的课程和我到目前为止的课程):

迭代码:

 private void label1_Click(object sender, EventArgs e)
    {
        int[] valuesSeperated[200];
        List<byte> PreArray = new List<byte>();
        Process[] test = Process.GetProcessesByName("MyProcess"); //Get process handle 
        int baseAddress = test[0].MainModule.BaseAddress.ToInt32(); //Get base address
        byte ReadX  = MyClass.ReadPointerByte("MyProcess", BaseAddress, new int[] { 0xc, 0x0, 0x2 }); //call memory reading function (including memory offsets)
        PreArray.Add(ReadX);
                byte[] PreArrayToInt = PreArray.ToArray();
                int[] MYConvertedBytes = PreArray ToInt.Select(x …
Run Code Online (Sandbox Code Playgroud)

c#

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

方法没有重载,需要0参数?

我有:

 public static int[] ArrayWorkings()
Run Code Online (Sandbox Code Playgroud)

我可以从任何地方使用MyClass.ArrayWorkings()快乐地调用它.但我希望通过需要一个参数来构建一些额外的功能,例如:

 public static int[] ArrayWorkings(int variable)
Run Code Online (Sandbox Code Playgroud)

我得到错误没有重载的方法ArrayWorkings,需要0参数.为什么是这样?

c#

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

一起使用 find、grep 和 sed

我试图找到所有出现的具有指定字符串的文件,然后清除所有这些文件的内容。因此,其中包含“stringtofind”的文件随后将是一个空文件。

为此,我尝试了以下操作,但出现错误:

出现以下错误: find: missing argument to `-exec'

 find / -maxdepth 1 -xdev -type f -exec grep -i "stringtofind" -l -exec sed -i '/./d'
Run Code Online (Sandbox Code Playgroud)

使用以下我得到错误:

grep: /nis

/tset.any

/test2.file

/测试.txt

: 没有这样的文件或目录 sed: 没有输入文件

find / -maxdepth 1 -xdev -type f -print | xargs -0 grep -i "stringtofind" -l | xargs sed -i '/./d'
Run Code Online (Sandbox Code Playgroud)

linux grep sed find

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

php.ini不允许我使用disable_functions

我把它放在php.ini文件中:

disable_functions="popen,exec,system,passthru,proc_open,shell_exec,show_source,phpinfo"
Run Code Online (Sandbox Code Playgroud)

但是我仍然可以调用它们(经过测试的exec和shell_exec.我已经多次重启网络服务器了.

(在windows下).

php windows apache

3
推荐指数
1
解决办法
6044
查看次数

标签 统计

c# ×5

linux ×3

c ×2

grep ×2

.net ×1

apache ×1

arrays ×1

find ×1

fork ×1

php ×1

sed ×1

windows ×1

winforms ×1