Articles of .net

如何获得一个Windows服务的命令行参数?

我正在寻找一种方法来找出任何 Windows服务的命令行参数。 对于非服务进程,可以在Windows任务pipe理器中find命令行参数,也可以通过使用WMI以编程方式find这个post 。 不幸的是,这两个解决scheme不适用于由ServiceController.Start(String [] args)方法启动的Windows服务。 即使传入了一些参数,它们也只能显示命令行中的可执行文件path。 有人可以解释两种情况(服务与非服务stream程)之间的区别吗? 有没有办法找出Windows服务的参数? 更新: 我也尝试创build一个简单的服务,只logging任何命令行参数到事件日志。 我用"sc.exe start <my service> <arg1>"启动它,并确认<arg1>已写入事件日志。 但是,没有任何解决scheme为我工作。 我所看到的仍然只是可执行文件的path。 我的操作系统版本是Windows Server 2008 R2 SP1 x64企业版。

HTTPWebResponse原始响应,使用reflection

HTTPWebResponse暴露Headers的属性,是否有可能得到像使用套接字 ,头和内容组合使用reflection的 原始响应 ,我认为必须有一种方法。 我可以使用套接字,但需要做很多工作,如代理支持,https,进展事件等等…列表很长,我一直强烈build议使用HTTPWebRequest,只有问题是我需要原始标题与响应,我试图下载的网站发送一个很长很奇怪的cookie,这不是由HTTPWebRequest,WebClient处理。 WordPress的博客,不能够使用WebClientlogin任何WordPress博客,但与套接字手动cookie处理它的作品完美,可能是WebClient中的错误。 1)只需要原始的标题,这将做的伎俩。 2)也是文章链接 文章说HTTPWebRequest有一个问题, 只有一个线程正在下载,而其他人一直在等待 ,如果这是真的,然后套接字更好? 文章说: 这段代码运行良好,但是它有一个非常严重的问题,因为WebRequest类函数GetResponse将对所有其他进程的访问locking,所以WebRequest将检索到的响应告诉closures,就像在前面代码的最后一行一样。 所以我注意到,总是只有一个线程正在下载,而其他人正在等待GetResponse。 为了解决这个严重的问题,我使用Socket实现了我的两个类MyWebRequest和MyWebResponse。

WPF RibbonWindow + Ribbon =标题外屏?

我正在试用Ribbon控制与RibbonWindow结合使用,但是即使在微不足道的实验中也是如此。 创build了新的WPF应用程序 将代码更改为MSDN中的示例 添加了对System.Windows.Controls.Ribbon引用,并删除了ribbon:前缀(为什么示例过时?)。 增加了两个图标(16×16和32×32)。 执行了应用程序,看到了这个(记事本供参考): 我已经可以看到很多问题了: 边界很小。 一个正常的窗口有一个大的边框,WPF Ribbon应用程序很小。 标题高度也较小。 边框模糊。 当一个正常的窗口被聚焦时,它的边界是黑色的。 WPF应用程序的边框是灰色的(黑色可以在angular落看到;有东西是在边界上绘制的)。 应用程序图标放错了位置。 它粘在左上angular。 应用程序标题错位。 它粘在顶部。 让我们把工具栏移到底部。 现在我们看到这个: button在工具栏之外。 最后,让我们最大化的窗口: 一半的标题消失在屏幕之外(技术上,窗口在屏幕的外侧每边8像素,但其他应用程序不会被这个混淆)。 我正在使用Windows 7,Aero,单个显示器,没有什么特别的。 我害怕在Windows 8上testing应用程序… 有什么机会解决这个问题?

什么是Windows或.Net的DVD刻录组件?

我想添加DVD刻录function到我的.Net应用程序(在Windows Server 2003上运行),有没有好的组件可用? 我已经使用了Nero随附的NeroCOM sdk,但是他们不再支持最新版本的Nero中的sdk。 我了解到,微软已经为Windows XP / 2003创build了一个IMAPI2升级,在CodeProject上有一个示例项目 ,但没有自己使用它,我不能说它是多么容易/可靠使用。 我并不担心将audio/video刻录到DVD,因为这仅用于文件备份。

当.net程序由于未捕获的exception而退出时,在操作系统级别会发生什么情况?

实际问题: 当一个程序从一个未被捕获的exception崩溃时,在Windows中会发生什么? 有没有一个DLL函数,我可以挂钩,logging一些关于崩溃的基本信息? 语境: 我正在计划编写一个程序,收集有关在本地PC上崩溃的任何应用程序的一些非常基本的信息。 我希望我可以执行一个简单的方法来logging关于崩溃的一些信息,类似于Visual Studio生成对话框的方式,让你在崩溃时debugging一个程序。

WIA 2.0双面扫描

自Vista以来,Windows随附WIA 2.0(wiaaut.dll)。 根据以下知识库文章和我在各种论坛上的许多调查结果,使用WIA 2.0不再可能进行双面扫描。 然而,文章提到使用原生WIA 2.0,什么可以使双面扫描成为可能。 ( https://support.microsoft.com/en-us/kb/2709992 ) 根据WIA 2.0文档( https://msdn.microsoft.com/en-us/library/windows/desktop/ms630196(v=vs.85).aspx ),可以进行双面扫描,但使用新的WIA_IPS_DOCUMENT_HANDLING_SELECT(3088 )财产。 我的问题是: 我不知道如何使用原生的WIA,我怀疑使用C#时,它是不可能的。 我找不到一种方法来设置新的WIA_IPS_DOCUMENT_HANDLING_SELECT属性,因为该属性不存在于我的wiaDevice属性中。 根据WiaDef.h,其属性ID仍然是3088,唯一可能的值是0x400(1024)。 如果有人可以帮助我(我想很多人),这将是非常感谢! 问候, M.

获取Windows产品密钥,域名,用户名等详细信息

如何获得操作系统详细信息,如操作系统Serial Number (操作系统产品密钥), User Domain Name , User Name和PC Full Name ? 什么是最好的方式和最佳的方式来获得它?

用WMI调用解决“拒绝访问”exception

对于WMI请求执行时,出现“拒绝访问”消息的exception。 某些WMI请求似乎要求比其他更高的安全权限。 最终我的目标是监视系统和日志中的进程启动。 不pipe有没有更好的方法,它现在成为了让这个WMI方法起作用的牺牲品。 我已经尝试过使用C#.Net进行安全工具 – > WMI编程的代码,但仍然收到exception。 如果您复制在博客条目中find的代码,您可以重现我的问题。 关于类似主题的另一篇文章可以在链接文本中find,但是再次尝试一下代码,你会看到相同的安全exception。 我如何允许我的代码执行这些WMI请求? 我在一个新的C#命令行项目中运行Windows 7 Pro和VS 2010。 编辑:select“以pipe理员身份运行”VS2010实例,然后执行代码工程。 如何自动执行此操作,以便用户不必手动提升权限?

如何访问Windows中的特殊目录?

什么是C#语法来检索Windows上的用户的桌面,文档文件夹和其他系统文件夹?

如何访问一个窗口?

我试图访问一个特定的窗口使用它的句柄(即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 […]