我们有一个使用Visual Studio内置的ClickOnce部署工具部署的生产应用程序.我正在编写一个批处理文件来卸载应用程序:
rundll32.exe dfshim.dll,ShArpMaintain AppName.application, Culture=neutral,
PublicKeyToken=XXXXXX, processorArchitecture=x86
Run Code Online (Sandbox Code Playgroud)
批处理文件工作,并调用应用程序的卸载.但是,我想要默默地这样做.我试过/Q /q /S /s /Silent
但没有快乐.
我怎样才能做到这一点?
我没有要隐藏的批处理文件窗口.只有ClickOnce窗口.
我有以下功能:
private void TakeOverAllScreens()
{
int i = 0;
foreach (Screen s in Screen.AllScreens)
{
if (s != Screen.PrimaryScreen)
{
i++;
Process.Start(Application.ExecutablePath, "Screen|" + s.Bounds.X + "|" + s.Bounds.Y + "|" + i);
}
}
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它为PC上的每个屏幕创建了一个单独的应用程序实例.
如何创建一个关闭所有这些函数的退出函数?该函数需要在应用程序的任何实例上工作,而不仅仅是我的"主"实例.
我最近转到了vb.net中c#.net的编码
在c#中我可以击中///
任何类/方法,Visual Studio会自动为我生成xml注释主体.
例
/// <summary>
///
/// </summary>
/// <param name="bar"></param>
void foo(string bar)
{
}
Run Code Online (Sandbox Code Playgroud)
如何在我的vb.net项目中获得相同的行为
我已经尝试'''
进入或空间但它什么也没做.我在两个项目中都使用相同的IDE
可能重复:
什么是C#使用块,为什么要使用它?
我的问题:使用using(a){do something with a}
更好的方式而不是宣布'a'并以这种方式使用它.即:更安全,更快,......
请参阅示例以获得澄清.
例1 :(不使用)
StreamWriter sw;
string line;
sw = new StreamWriter("D:\\NewCon.xml");
sw.WriteLine("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>");
sw.WriteLine("<config>");
for (int i = 0; i >=36; i++)
{
line = "";
line = "<" + xmlnodes[i] + ">";
line += vals[i];
line += "</" + xmlnodes[i] + ">";
sw.WriteLine(line);
}
sw.WriteLine("</config>");
sw.Close();
sw.Dispose();
Run Code Online (Sandbox Code Playgroud)
例2 :(使用时)
string line;
using (sw = new StreamWriter("D:\\NewCon.xml"))
{
sw.WriteLine("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>");
sw.WriteLine("<config>");
for (int i = 0; i >= …
Run Code Online (Sandbox Code Playgroud) 我的方法:
if (File.Exists( @"C:\config.xml"))
{
System.Xml.XmlDocument xd = new System.Xml.XmlDocument();
xd.Load( @"C:\config.xml");
System.Xml.XmlElement root = xd.DocumentElement;
System.Xml.XmlNodeList nl = root.SelectNodes("/config");
foreach (System.Xml.XmlNode xnode in nl)
{
string name = xnode.Name;
string value = xnode.InnerText;
string nv = name + "|" + value;
Send(nv);
}
Run Code Online (Sandbox Code Playgroud)
我的Xml Doc
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<config>
<bla>D</bla>
<def>300</def>
<ttOUT>34000</ttOUT>
<num>3800</num>
<pw>help</pw>
<err>1</err>
....and so on
</config>
Run Code Online (Sandbox Code Playgroud)
现在我的方法返回前2个,没有别的.我究竟做错了什么...
我有以下代码
private DataTable GetServices(string[] serviceNames)
{
DataTable dt = new DataTable("Services");
dt.Columns.Add("MachineName", typeof(string));
dt.Columns.Add("ServiceName", typeof(string));
dt.Columns.Add("ServiceStatus", typeof(string));
ServiceController[] services = ServiceController.GetServices();
foreach (ServiceController scTemp in services)
{
if (serviceNames.Contains(scTemp.DisplayName))
{
dt.Rows.Add(scTemp.MachineName, scTemp.DisplayName, scTemp.Status);
}
}
return dt;
}
Run Code Online (Sandbox Code Playgroud)
它返回以下内容
MachineName,ServiceName,ServiceStatus
。,Adobe Flash Player更新服务,已停止
。,应用程序体验,正在运行
。,Application Layer Gateway服务,已停止
。,Application Host Helper服务,正在运行。
scTemp.MachineName
返回一个 .
如何获取返回真实计算机名称的信息?
我有一个方法可以禁用窗口上的所有butttons.但我似乎无法获得Button类型以匹配Resource集合
我正在使用带有ac#代码隐藏的Expression Blend 3
void DisableButtons()
{
for(int i = 0; i>= this.Resources.Count -1; i ++)
{
if (this.Resources[i].GetType() == typeof(Button))
{
Button btn = (Button)this.Resources[i];
btn.IsEnabled = false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
更新
谢谢你的回答!确定循环正在运行,但我的代码不正确.
this.Resources
好像不包括我的按钮!这可能是一个混合的东西?
是的.我最终手动完成了.因为我很仓促,并没有一个简单的简单解决方案.感谢所有的输入!
我的页面中包含以下代码行。
<div class="master-page">
Run Code Online (Sandbox Code Playgroud)
VS 2013然后用2条警告标记它
CSS看起来像这样
div.master-page
{
padding: 10px;
}
div.master-page div.master-page
{
position: relative;
margin: -20px;
}
Run Code Online (Sandbox Code Playgroud)
这是错误的图片
如何解决警告?