Articles of 句柄

如何枚举过程的句柄?

有什么办法如何枚举窗口给定的PID进程,并获得他所有打开的句柄(locking的文件等)的列表? 编辑:我不在乎语言。 如果是在.NET中,我会很高兴,如果在WinApi(C)中,它不会受到伤害。 如果在别的地方,我想我可以重写它:-)

wxPython不会closures与父窗口句柄的框架

我有一个Python程序,从另一个程序通过COM获取窗口句柄(把Python程序看作是一个插件)我把这个窗口设置为主Python框架的父窗口,所以如果另一个程序最小化,python框架也会。 问题是,当我退出,并尝试closures或销毁主框架,frame.close永远不会完成它的执行(虽然它消失),另一个程序拒绝closures,除非杀死与TaskManager。 这里大概是我们采取的步骤: if we are started directly, launch other program if not, we are called from the other program, do nothing enter main function: create new wx.App set other program as frame parent: Get handle via COM create a parent using wx.Window_FromHWND create new frame with handle as parent show frame enter main loop […]

SWT没有更多的句柄

Windows XP对每个进程限制10000个用户句柄,每个桌面会话总共限制32000个。 但是,当我运行4或5 SWT过程,每个消耗不超过2000个用户句柄,SWT没有更多句柄exception将被抛出。 有谁知道为什么?

为什么在redirect输出时调整控制台缓冲区会引发无效句柄exception?

在将输出redirect到文件时,调整C#控制台应用程序中的Console.BufferWidth会引发exception。 我们来看一个例子test1.exe: static void Main(string[] args) { Console.BufferWidth = 240; Console.WriteLine("output1\noutput2"); } 标准输出很好: test1.exe output1 output2 redirect到文件引发exception: test1.exe > file.txt Unhandled Exception: System.IO.IOException: The handle is invalid. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.__Error.WinIOError() at System.Console.SetBufferSize(Int32 width, Int32 height) at System.Console.set_BufferWidth(Int32 value) at test1.Program.Main(String[] args) in \\wopr\falken\test1\Program.cs:line 13 很容易忽略使用try … catch,但有一些我一般不理解的文件句柄或句柄。 为什么句柄无效?

64位应用程序上的Windows HANDLE的范围是什么?

在WinAPI上, HANDLEtypes被定义为void* ,因此在64位应用程序中, HANDLE值可以从0到18446744073709551615 。 但是,在实践中是这样吗? 任何文件是否规定了这种HANDLE的整体范围? 例如,如果想把这个HANDLE作为int32_t存储在一个完全正常的32位应用程序中,但是在64位应用程序中,这个疑惑将会持续下去。

如何通过windbg处理文件path?

如何从windbg / kd在内核模式下处理文件path?

.NET中的窗口句柄可以改变它的值吗?

在.NET进程的生命周期中,执行System.Windows.Forms.Form的句柄,可以说Application.Run(form)使用的主表单实际上改变了它的值,也就是说,如果使用不同的进程,例如IntPtr handle = User32.FindWindow(null, "Name") ,是否有一种情况下,该处理可能会失效.NET运行时? 编辑 我需要知道句柄,因为我想为IPC使用SendMessage和WM_COPYDATA等。

如何访问一个窗口?

我试图访问一个特定的窗口使用它的句柄(即System.IntPtr值): // Getting the process of Visual Studio program var process = Process.GetProcessesByName("devenv")[0]; // Showing the handle we've got, we've no problem MessageBox.Show(this, process.MainWindowHandle.ToString()); // Attempting to get the main window object by its handle var wnd = NativeWindow.FromHandle(process.MainWindowHandle); // always fails if (wnd == null) MessageBox.Show("Failed"); else MessageBox.Show(wnd.ToString(), "Yeeeeees!!"); 我也尝试访问另一个演示.net winforms应用程序的主窗口,我已经做了这个目的,(即我运行演示应用程序,并尝试访问它的主窗口通过此应用程序),也失败了,虽然两者演示和这个应用程序是.NET应用程序。 但是,这个成功: var process2 […]

我必须CloseHandle()在线程句柄?

_beginthreadex返回一个线程的句柄: m_hStreamStatsThread = (HANDLE) _beginthreadex( NULL, 0, StreamStatsThread, this, 0, NULL ); 例如,如果您需要引用像TerminateThread(..)这样的调用中的线程,则可以使用此句柄。 根据_beginthreadex上的MSDN页面 ,_beginthreadex不会总是返回一个有效的句柄 – 例如错误时也可能返回-1L 当线程正常完成时,我必须在线程句柄上调用CloseHandle,还是只能将其值设置为NULL / INVALID_HANDLE_VALUE?

Windows句柄如果控件设置为可见= false(.NET)

快速的问题,在.NET中的控件有处理(hWnd),如果他们被设置为不可见? 马龙