Articles of .net

如何使初始forms最初不可见或隐藏

如何使初始forms最初不可见或隐藏 我有一个2表单的GUI项目和表单必须分开显示。 即当表格1显示时,所有其他表格必须隐藏。 我可以隐藏所有其他表单,但是我无法隐藏启动表单,以至于我的应用程序在系统托盘中的图标。 例如,防火墙/防病毒和即时消息传递应用程序可以这样做,以便在后台运行,并且仍然可以从系统托盘访问用户。

在Wix中,如何避免在部署registry项时在目标系统上创build物理文件夹?

我有几个相关的Windowsregistry项,我想打包在一个MSI内,所以1)有一个卸载过程,和2)这些registry项已应用到给定的计算机的事实由一个添加/删除程序条目。 问题是我可以让Wix#做到这一点,但我只能得到微星build立,如果所有的registry项都在一个“Dir”块内,这实际上创build一个物理文件夹,我不不要在目标系统上。 作为一个临时的解决方法,我使用了Dir块,指定了一个虚拟的“Temp”文件夹。 安装程序确实创build了我不想要的文件夹; 我想要的只是应用registry项。 WiX文档描述了其基础结构TargetDir,主要是告诉安装程序在目标系统上执行其操作。 见http://wixtoolset.org/documentation/manual/v3/howtos/files_and_registry/write_a_registry_entry.html 在那个原生的WiX XML例子中,似乎在目标系统上不会创build多余的文件夹。 只有所需的registry项将被应用。 我可以使用什么Wix#语法构造来应用registry项,但又不必在目标系统上创build实际的文件夹? 到目前为止,我所见过的所有Wix#示例似乎都有在目标系统上创build实际文件夹的副作用,无论您是否想要。 我知道我可以这样做,通过采取registry项的.reg文件,收集到.wxs文件与热,然后build立到蜡烛和光msi。 我真的想把这个保留在C#/ Wix#世界中。 C#是我的组织中熟知的技能; WiX不那么如此。 (承认Wix#是build立在WiXfunction的基础之上的,对WiX和Windows Installer的理解是必不可less的;这是一个舒适区域,能够使用C#而不是XML,而不是完全合乎逻辑的事情。)目前,我们手动执行了许多这些types的registry设置任务,没有跟踪,也没有简单可靠的卸载。 /// <summary> /// Configure the Event Log on a Windows (server) to have MyApplication Log settings and record an entry for it in Programs and Features. /// Note that this program creates the Windows Installer MSI […]

无法写入registry项,获取UnauthorizedAccessException

我有一个Windows服务,尝试写入LOCAL_MACHINE中的registry项 该键是作为Windows安装程序包的一部分创build的,用于控制Windows服务和一个独立的控制窗口。 控制窗口可以读取和写入registry项,但是我无法写入registry项,即使我给予本地服务的完全权限。 这是抛出exception的代码: private void updateLocalRegistryVersion(Double newVersion) { RegistryKey rk = Registry.LocalMachine; RegistryKey sk = rk.OpenSubKey(@"Software\CompanyName\Monitoring\Values"); sk.SetValue("scriptversion", newVersion.ToString()); } 有什么build议么?

File.Copy()从networking共享到另一个共享在同一台机器上通过networking复制文件?

如果我的.NET客户端使用System.IO.File.Copy将文件从\ server1 \ share1 \ file1.txt复制到\ sever1 \ share2 \ file2.txt ,文件的数据会被读取到客户端,然后写回到服务器? 如果是的话,有什么办法的.NET客户端可以将服务器上的文件复制到同一台服务器上的另一个位置,而不会绕过文件? 如果目的地份额与源份额相同,是否有所作为?

从.NET的Windows服务启动一个进程

我正尝试从.NET Windows服务启动控制台应用程序。 该服务正在Windows 2008服务器上运行。 我使用Process.Start来运行控制台应用程序,它运行(我可以在任务pipe理器中看到它),但我从来没有得到进程id,并且调用Process.Start只是挂起。 如果我从Windows 7机器上运行相同的服务,则进程运行,并且我得到进程Id没有问题。 我很困惑 ..

如何比较两个不同的文本文件

在有两个文本文件的情况下: FileA.txt test 1234 testing FileB.txt test 5667 pond 并且FileA.txt中的所有事件都将从FileB.txt中移除,并输出到FileC.txt中 所以FileC.txt会读取: 5667 pond

如何安装同一个windows服务的多个实例

我创build了一个windows系列 它从Webconfiguration文件获取服务的名称。 我使用下面的链接从webconfig获取价值。 http://www.codeproject.com/KB/dotnet/MultipleInstNetWinService.aspx 为了安装我的Windows服务,我只需单击图标并再次安装,我更改configuration文件中的值,并rebulid我的应用程序。 再次我尝试安装,它显示错误,如指定的服务已经存在。 如何安装同一个Windows服务的多个实例? 谢谢,Pooja

静态类必须从对象(C#)派生

我在C#有一个问题,输出状态: Error 1 Static class 'WindowsFormsApplication1.Hello2' cannot derive from type 'System.Windows.Forms.Form'. Static classes must derive from object. 我怎么能纠正这个? namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Hello2.calculate(); } } public class Hello : Form { public string test { get; set; […]

沙盒AppDomain中的线程安全性

我有一个应用程序域来托pipe不受信任的代码/程序集。 我用安全属性解决了所有安全问题,效果很好。 不受信任的代码在专用线程上运行。 CLR是2.0。 这就是我AppDomainShell AppDomainSeed ,壳牌运行在主域,种子是信任的代理/助手在不受信任的域。 我有兴趣限制创build新线程和改变优先级 。 目前我的不受信任的程序集可以通过创build10k个线程来设置ThreadPriority.Highest或终止操作系统。 有SecurityPermissionFlag.ControlThread,但可以防止像Abort()这样的高级操作。 我在看Thread类的实现,对于那些简单的操作,C#API没有声明性的安全性,其余的实现是本地的。 我想我可以使用一些Win32函数来禁止在操作系统级别。 但是操作系统如何识别不可信任的线程/代码/程序集呢? SetThreadPrincipal() ? 有什么CLR的API可以被滥用? 我更喜欢解决scheme,而不需要安装和便携式单声道: – / hmmm。 任何其他的想法欢迎。 谢谢!

In-Proc SxS在托pipe代码中打开shell扩展?

该build议曾经是“不要在托pipe代码中编写进程中的shell扩展”。 但是对于.NET Framework 4和并行进程,应该解决在托pipe代码中编写shell扩展的主要原因。 就这样说,我有三个问题。 现在可以在托pipe代码中编写shell扩展了吗? 如果在托pipe代码中编写shell扩展可能存在哪些问题? 在非托pipe代码中编写shell扩展的原因是什么?