Tag: 句柄

获取给定进程句柄的运行进程

如果我已经知道句柄,有人可以告诉我如何使用进程类在c#中捕获正在运行的进程吗? Id而不是也不必枚举getrunning流程方法。 如果可能的话,pInvoke是可以的。

强制创建控件的句柄

我目前正在创建一个静音打印模块。 我正在使用的当前控件是,它确保已经创建了控件句柄( IsHandleCreated )。 我做了一切来欺骗这一点,没有运气。 您是否有想法如何创建控件的句柄而不在屏幕上显示任何内容?

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 = […]

删除某人打开文件的目录

我试图以编程方式删除和替换应用程序的内容,“应用程序A”,使用“安装程序”程序,这只是一个自定义WPF .exe应用程序,我们称之为“应用程序B”。 (我的问题涉及“App B”中的代码。) GUI设置(不是特别重要) 应用程序B有一个GUI,用户可以在其中选择计算机名称以复制App A。 管理员使用文件选择器通过单击“App A.exe”来填充本地计算机上的源目录路径。 还有用于用户名和密码的文本框,因此管理员可以为将要提供App A的目标文件服务器输入其凭据 – 代码模拟用户以防止权限问题。 “复制”按钮启动例程。 杀死应用程序A,文件进程和执行文件删除 复制例程首先杀死域中所有计算机上的“App A.exe”进程,以及explorer.exe,以防它们打开App A的资源管理器文件夹。 显然这将在下class后完成,但有些人可能仍然打开机器并在回家之前锁上他们的机器。 这真的是我想要解决的问题的基础。 在复制更新的文件之前,我们要删除整个旧目录。 为了删除目录(及其子目录),必须删除其中的每个文件。 但是说他们从App A的文件夹中打开了一个文件。 代码在删除任何文件之前找到任何锁定进程(使用Eric J.的答案, 如何找出哪个进程使用.NET锁定文件? ),它会在任何计算机上杀死该进程。继续前进。 如果是本地的,它只使用: public static void localProcessKill(string processName) { foreach (Process p in Process.GetProcessesByName(processName)) { p.Kill(); } } 如果是远程的,它使用WMI: public static void remoteProcessKill(string computerName, string fullUserName, string pword, string […]

返回窗口句柄的名称/标题

我无法解决这个问题。 我收到一个错误: The name ‘hWnd’ does not exist in the current context 这听起来很容易,可能是……对于提出如此明显的问题感到抱歉。 这是我的代码: public static IntPtr WinGetHandle(string wName) { foreach (Process pList in Process.GetProcesses()) { if (pList.MainWindowTitle.Contains(wName)) { IntPtr hWnd = pList.MainWindowHandle; } } return hWnd; } 我尝试了许多不同的方式,每个都失败了。 提前致谢。

UI Thread .Invoke()导致句柄泄漏?

在什么情况下,在使用委托和.InvokeRequired时,从非UI线程更新UI控件可能会导致进程的句柄不断增加? 例如: public delegate void DelegateUIUpdate(); private void UIUpdate() { if (someControl.InvokeRequired) { someControl.Invoke(new DelegateUIUpdate(UIUpdate)); return; } // do something with someControl } 当在循环或定时器间隔中调用此方法时,程序的句柄会不断增加。 编辑: 如果以上内容被注释掉并修改如下: public delegate void DelegateUIUpdate(); private void UIUpdate() { //if (someControl.InvokeRequired) //{ // someControl.Invoke(new DelegateUIUpdate(UIUpdate)); // return; //} CheckForIllegalCrossThreadCalls = false; // do something with someControl } …然后句柄停止递增,当然我不想允许跨线程调用。 编辑2: 这是一个显示句柄增加的示例: […]

C#编译错误:“在创建窗口句柄之前,无法在控件上调用Invoke或BeginInvoke。”

我刚刚发布了一个关于如何让代理人在另一个表单上更新文本框的问题。 正当我以为我有使用Invoke的答案时…这种情况发生了。 这是我的代码: 主要表格代码: using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.IO; using System.Data.OleDb; using System.Collections.Specialized; using System.Text; using System.Threading; delegate void logAdd(string message); namespace LCR_ShepherdStaffupdater_1._0 { public partial class Main : Form { public Main() { InitializeComponent(); } public void add(string message) { this.Log.Items.Add(message); } public void logAdd(string […]

获取应用程序的窗口句柄

我正在构建一个应用程序给另一个应用程序mainWindowhandle它收集有关窗口状态的信息。 我收集有关子窗口的信息没有问题,但我无法访问应用程序的其他打开窗口甚至菜单。 有没有办法获取应用程序的所有窗口句柄?