Articles of .net

C# – 捕获Windows应用程序输出

我的应用程序启动“C:\ Windows \ System32 \ Msra.Exe”来控制域计算机。 有没有一种方法可以捕获这个msra.Exe显示的错误消息。 (即从msra.exe的内部错误消息,而不是从我的应用程序。)该应用程序本身是一个Windows窗体应用程序。 任何帮助表示赞赏。 启动MSRA的代码在下面…这只是完整应用程序的一小部分。 string msra = "C:\\Windows\\System32\\runas.exe"; string domainname = "**********"; string domaincontroller = "*************"; if (File.Exists(msra) == false) { System.Windows.Forms.MessageBox.Show("Runas.exe not found.\n\rPlease contact your internal IT support.", "Fatal Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } else { try { Process p = new Process(); p.StartInfo.UseShellExecute = true; p.StartInfo.WindowStyle = ProcessWindowStyle.Normal; […]

是否可以使用.Net框架以编程方式logging对Windows共享(SMB共享)的访问?

只是想知道是否有可能找出谁已经从Windows共享(使用.NET的理想,但本地Win32会做的)读取文件? 我试图做的是创build一个像Windows共享awstats ,所以我可以看到谁正在访问什么,哪些是最stream行的文件。 我对变化不感兴趣 – 我只想logging访问(随着时间)与IP /主机名和什么文件。

实施Explorer ContextMenu并将多个文件传递给一个程序实例

情况 我有一个通过CLI接受多个文件的第三方GUI应用程序,例如: MyProgram.exe "file1" "file2" 然后,所有文件一次加载到应用程序的同一个实例中。 为了优化我的时间,我想通过右键单击Windows资源pipe理器中的某些文件来加载多个文件(例如: select5个文件>右键单击>select“在MyProgram中打开”命令 ) 我知道如何创build所需的registry项,以在特定文件types的上下文菜单中添加该命令,这不是问题。 问题 这第三方程序没有任何驱动程序,shell扩展或方法,可以从上下文菜单中捕获多个文件,所以而不是如果我从资源pipe理器中select2个文件,每个文件打开一个单独的程序实例,我没有开发驱动程序的想法,所以一个驱动程序不是我要找的。 焦点 我愿意提出build议,也许这不是有效的方法,但似乎是最简单的方法: 我的想法是开发一个迷你的CLI应用程序来捕获这些多个文件(可能基于Windows消息或在没有活动,我不知道这就是为什么我问),将这些文件/参数写入一个文本文件,然后join所有参数在一行中调用我的第三方程序与这些参数一次加载在这个程序的单个实例的所有文件。 换句话说,只需一个简单的加载程序就可以在select多个文件的同时从上下文菜单中使用它来在第三方应用程序中同时打开所有文件。 题 首先,我想知道是否存在一个已知的术语来命名这个应用程序的东西,它能够在同一个实例中加载多个文件,从资源pipe理器中select文件,然后select上下文菜单。 我想研究这个术语。 在VB.NET / C#控制台应用程序中,哪个可能是最有效的方法来完成这个任务? (不是司机) 如何开始发展呢? 来自已知页面的任何现有的源代码示例,如codeproject …?

如何在MS Windows上加载GTK Sharp主题

我正在MS Windows上使用Xamarin Studio 5.4编写一个GTK Sharp(v2.12)应用程序。 安装的Mono版本是3.2.3(但我使用.Net工具链进行编译,因为Xamarin不允许我使用Mono工具链进行编译)。 这种情况是,当我从Xamarin工作室运行应用程序或使用单声道,那么我有一个相对漂亮的外观和感觉,但是当我运行应用程序使用.Net(双击可执行文件),那么外观和感觉是可怕。 我试图欺骗应用程序来加载一个体面的主题…但是,当我从.Net(但是当我使用单声道然后很容易看到更改)它什么都不做。 这是我试过的代码,但不起作用(我有一个GTK主题rc文件的本地副本): // It works on Mono, but not on .Net Gtk.Rc.Parse("Resources/GTK/windows-theme.gtkrc"); 我也试着做: // This does not work at all (on MS Windows) Gtk.Settings.Default.ThemeName = "MS-Windows"; 但即使使用单声道引擎,这也不会改变任何事情。 这是应用程序看起来如何使用单声道: 以及它如何运行在.net引擎下: 感谢您的关注 :) 。

我如何移动粘贴/贴紧wpf窗口

当我移动一个“主”窗口时,我想移动两个或更多的粘性窗口 我想要做这样的事情 private void MainWindow_PreviewMouseMove(object sender, MouseEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed) { this.DragMove(); foreach (var window in App.Current.Windows.OfType<Window>()) { window.Move(); // move it } } } 我想用这个解决scheme来捕捉窗口 用于WPF的捕捉/粘滞/磁性窗口http://programminghacks.net/2009/10/19/download-snapping-sticky-magnetic-windows-for-wpf/ 但是我怎样才能移动它? 编辑 在Gustavo Cavalcanti的回复之后,我提了几个想法。 这是我的问题的粗略解决scheme。 using System.Windows; using System.Windows.Data; namespace DragMoveForms { /// <summary> /// Interaction logic for Window1.xaml /// </summary> public partial class Window1 […]

从一个Windows服务打开一个对话窗口

我已经在C#中创build了一个Windows服务应用程序,以特定的时间间隔popup一个对话窗口。 在Visual Studio中debugging时,它运行良好。 然后我创build了一个安装设置。 但是安装完服务之后不会popup对话窗口。 这将是什么原因,我该如何解决?

C# – 未处理的exception – path中的非法字符

我只是在testing一些代码,虽然当调用StartRemoveDuplicate(当它被编译时)抛出一个Exception时,抱怨非法字符: 我的代码如下: class Program { static void Main(string[] args) { foreach (string exename in System.IO.File.ReadAllLines("test.txt")) { Process.Start("test.exe", "\"" + exename + "\"").WaitForExit(); } StartRemoveDuplicate(); } private static void RemoveDuplicate(string sourceFilePath, string destinationFilePath) { var readLines = File.ReadAllLines(sourceFilePath, Encoding.Default); File.WriteAllLines(destinationFilePath, readLines.Distinct().ToArray(), Encoding.Default); } private static void StartRemoveDuplicate() { RemoveDuplicate("C:\test.txt", "C:\test2.txt"); } }

如何将项目添加到窗口的上下文菜单中

我创build了一个虚拟打印机的c#应用程序,但现在我正在寻找启动我的应用程序,而右键单击任何.pdf文件或任何.doc文件 总之我想在窗口的上下文菜单中添加项目,但仅限于.pdf文件和.doc文件。 请告诉我如何实现它。 提前致谢。

了解Windows通用应用程序(UWP)中的扩展执行会话

我努力得到扩展的执行会话为我的Windows通用应用程序工作。 我试图达到的是以下情况。 用户希望通过蓝牙将手机与设备连接。 目前,无论何时屏幕closures或来电或用户最小化应用程序,连接失败,我们重新启动它恢复。 我想为这个正在进行的连接启用扩展执行,这样应用程序即使在最小化(挂起)时也能继续工作。 我想我需要的ExtendedExecutionReason.Unspecified ,因为它应该允许我的应用程序运行长达10分钟的暂停状态(这是绰绰有余我的目的)。 但是,连接总是似乎挂起失败(当我尝试改变我的应用程序的状态从debugging器使用VS的应用程序生命周期下拉列表中,我得到撤销ExtendedExecutionRevokedReason.SystemPolicy )。 我已经启用了我的应用程序的所有电池和后台权限,但仍然不好。 我的代码大致如下: … (on begin connection) ClearExtendedExcecution(); DisplayRequest dr = new DisplayRequest(); var newSession = new ExtendedExecutionSession { Reason = ExtendedExecutionReason.Unspecified, Description = "Pair device" }; newSession.Revoked += SessionRevoked; ExtendedExecutionResult result = await newSession.RequestExtensionAsync(); dr.RequestActive(); try { switch (result) { case ExtendedExecutionResult.Allowed: m_extendedExecutionSession = newSession; // […]

在C#和Perl之间进行通信

我正在寻找一种可靠的C#和Perl之间的通信方式,我已经尝试过SOAP :: Lite – 虽然我个人不喜欢,还有其他方法可以实现吗?