标签: handle

如何在.NET中获取当前窗口句柄计数和窗口句柄限制?

我想在C#中获取当前窗口句柄数和系统范围的窗口句柄限制.我该怎么做?

.net window handle

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

这是什么意思:"子进程可以继承句柄"?

根据SDK,有一些Win32对象可以"继承"给定进程创建的子进程.(事件,互斥体,管道......)

这究竟意味着什么?

比方说,我有一个名为事件对象,以创建CreateEvent,一个时间bInheritHandle == true,和其他时间== false.

现在我开始一个子进程.这两个事件句柄如何影响子进程?它们在哪些情况下有所不同?

windows winapi handle

10
推荐指数
2
解决办法
5420
查看次数

获取运行流程给定流程处理

如果我已经知道句柄,有人可以告诉我如何使用进程类在c#中捕获正在运行的进程吗?

我宁愿也不必枚举getrunning流程方法.如果可能的话,pInvoke是可以的.

c# process handle

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

强制创建控件的句柄

我目前正在创建一个静音打印模块.我正在使用的当前控件是,它确保已经创建了控件句柄(IsHandleCreated).我做了一切来欺骗这一点,没有运气.

您是否有想法如何创建控件的句柄而不在屏幕上显示任何内容?

c# controls handle

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

如何检查MATLAB句柄是否有效?

我使用它的句柄操作绘图上的数据:

x = 1:10; y = sin(x);
h1 = line(x,y);
Run Code Online (Sandbox Code Playgroud)

但是,如果在脚本实际终止之前图形被关闭,则执行此类操作会返回错误.

>>set(h1,'Color','green') % line is green
??? Error using ==> set
Invalid handle object.
Run Code Online (Sandbox Code Playgroud)

h1在使用它进行任何操作之前,有没有办法检查是否是有效的句柄?

graphics matlab handle

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

强制创建WPF Window的本机Win32句柄

我需要访问我的一些WPF窗口的Win32窗口句柄,以便我可以处理Win32激活消息.我知道我可以使用PresentationSource.FromVisualWindowInteropHelper获取Win32窗口句柄,但是如果尚未创建WPF窗口,我遇到了问题.

如果我使用PresentationSource.FromVisual并且尚未创建窗口,则返回PresentationSourcenull.如果我使用WindowInteropHelper并且尚未创建窗口,则Handle属性为IntPtr.Zero(null).

我打过电话this.Show(),并this.Hide()在窗口上之前,我试图访问手柄.然后我可以拿到手柄,但是窗口上的窗口瞬间闪烁(丑陋!).

有谁知道强制创建WPF窗口的方法?在Windows窗体中,这就像访问Form.Handle属性一样简单.

编辑:我最终选择了Chris Taylor的答案.在这里它是,如果它帮助其他人:

static void InitializeWindow(Window window)
{
    // Get the current values of the properties we are going to change
    double oldWidth = window.Width;
    double oldHeight = window.Height;
    WindowStyle oldWindowStyle = window.WindowStyle;
    bool oldShowInTaskbar = window.ShowInTaskbar;
    bool oldShowActivated = window.ShowActivated;

    // Change the properties to make the window invisible
    window.Width = 0;
    window.Height = 0; …
Run Code Online (Sandbox Code Playgroud)

.net c# wpf winapi handle

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

Windows中的socket和HANDLE有什么区别?

我正在尝试在Windows中运行Linux服务器.

在Linux中,套接字和文件描述符的处理方式相同.某些系统api可用于套接字和文件描述符.

但是,我通过WIN API处理Winsock和HANDLE(文件描述符)的socket.

所以我需要知道一个整数是一个套接字或一个HANDLE.

现在问题是:

在Windows中,socket()和open()的返回值是否相同?

如果它们总是不同,我可以编写自己的socket()和open()来包装系统的一个.并记录系统api的返回值,无论整数是套接字还是HANDLE.

如果它们是相同的,我不知道如何处理它.

sockets windows file-descriptor handle

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

零有效吗?

SafeHandleZeroOrMinusOneIsInvalid.NET Framework中有一个类,还有一个SafeHandleMinusOneIsInvalid类.

为什么是这样?在哪些情况下零是一个有效的句柄?

.net winapi handle

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

指针和句柄之间有什么区别

我不能说我有强大的C++背景,所以这些天我经常听到Handle.我知道Pointer是什么(它存储内存位置的地址就像参考),但我不确定Handle是什么以及这两者之间的区别.如果你能提供一个C#中的示例代码就会很棒.

顺便说一下,我用Google搜索了这个术语,然而很多人给出了不同的解释,所以我觉得我从SO中得到了最好的解释.

编辑:

为其他访客快速提醒:句柄就像是指向资源的参考.它可以指向像指针一样的内存地址,但Handle是更通用的术语,所以它更像是一个伪指针.文件就是一个很好的例子.文件可以具有操作系统可以理解并用于查找文件的ID.因此Handle可以保存此ID(可能是也可能不是内存地址),当我们通过此Handle时,OS可以轻松找到该文件.

有关更多详细信息,请参阅以下答案.

编辑:

这个问题下的所有答案都很棒,很有说服力.我很难选择其中一个来标记它作为答案.

.net clr pointers handle

9
推荐指数
3
解决办法
3924
查看次数

C#SSL服务器模式必须使用具有相应私钥的证书

我将学习如何在C#中处理作为服务器端的HTTPS流量,并且在第一步中我遇到了一些麻烦.

这是一些代码(http://pastebin.com/C4ZYrS8Q):

class Program
{
    static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
    {
        if (sslPolicyErrors == SslPolicyErrors.None) return true;
        Console.WriteLine("Certificate error: {0}", sslPolicyErrors);
        return false;
    }

    static void Main()
    {
        var tcpListener = new TcpListener(IPAddress.Parse("127.0.0.1"), 8080);
        tcpListener.Start();
        var clientAccept = tcpListener.AcceptTcpClient();
        Thread.Sleep(1000);

        if (clientAccept.Available > 0)
        {
            var sslStream = new SslStream(clientAccept.GetStream(), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null);
            var certificate = new X509Certificate("path\server.pfx", "password");
            sslStream.AuthenticateAsServer(certificate);
        }

        Console.ReadLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

不要争辩!:)这只是测试代码,我只想在C#中实现SSL处理的一些基本步骤.

所以......问题发生在这一行:

sslStream.AuthenticateAsServer(certificate);
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

从俄语翻译为: - SSL服务器模式必须使用具有相应私钥的证书.

我想,我的X509证书不正确,但再次检查:

makecert.exe …
Run Code Online (Sandbox Code Playgroud)

c# ssl https handle x509certificate

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