我一直在做编程,但现在我面临挑战.我正在进行一个项目,我必须为我的用户在C#中创建一个API.基本过程是我有一个C#代码,我正在读取XML文件并获取标签之间的属性和值.我实现了这一点,现在我必须为相同的功能创建可消耗的API.有什么方法可以学习创建API吗?
基本上我对如何继续使用API一无所知.任何形式的例子对我都有好处.
可能我的问题是在托盘栏中打开的这个多个图标的副本 .在我的winforms应用程序中,一旦表单关闭,我将在系统托盘中显示应用程序,即应用程序在关闭表单后不退出,但在应用程序的系统托盘上的右键单击上下文菜单上单击"关闭"时退出.
但是当我继续使用该应用程序时,我注意到系统托盘中还有更多的通知图标.但是一旦我将鼠标悬停在它们上面,它们就会消失,除了应用程序运行的那个.我已经尝试了各种方法来消除多个图标,但我无法这样做.
下面是我的代码最小化到系统托盘
public void MinimizeToTray()
{
try
{
this.WindowState = FormWindowState.Minimized;
TrayIcon.Visible = true;
TrayIcon.ShowBalloonTip(1000);
ShowInTaskbar = false;
//this.Activate();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
在表单加载我添加了此代码
private void LoadTrayMenu()
{
TrayMenu.Items.Add("Reminder");
TrayMenu.Items.Add("Close");
TrayMenu.Items[0].Click += new EventHandler(this.Reminder_Click);
TrayMenu.Items[1].Click += new System.EventHandler(this.Dispose_Click);
TrayIcon.ContextMenuStrip = TrayMenu;
}
Run Code Online (Sandbox Code Playgroud)
处置事件如下
private void Dispose_Click(object Sender, EventArgs e)
{
TrayIcon.Visible = false;
TrayIcon.Icon = null;
TrayIcon.Dispose();
this.Dispose();
}
Run Code Online (Sandbox Code Playgroud)
在鼠标点击图标我写了以下代码
private void TrayIcon_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == …Run Code Online (Sandbox Code Playgroud) 我正在做一个项目,我必须从.txt文件中读取数据,然后使用查询将每行插入表中.
现在例如文本文件的内容将是
11111
1111x
22222
2222x
33333
3333X
等等.
现在你可以看到备用行几乎是重复的,所以我想删除备用行,以便可用数据变为
11111
22222
33333
然后处理我的其余代码.
有什么方法可以做到吗?
到目前为止,我一直在使用数组列表来获取此信息
using (StreamReader sr = new StreamReader(Server.MapPath("03122013114450.txt"), true))
{
string txtValues = sr.ReadToEnd();
string[] txtValuesArray1 = Regex.Split(txtValues, "\r\n");
ArrayList array = new ArrayList();
foreach (string value in txtValuesArray1)
{
array.Add(value);
}
for (int i = 0; i < array.Count; i++)
{
if (array.Count % 2 != 0)
array.RemoveAt(i + 2);
else
array.RemoveAt(i + 1);
}
}
Run Code Online (Sandbox Code Playgroud)
基本思想是从文本文件的arraylist索引中删除备用行.
我在过去的几个月里一直使用ClamAV创建一个防病毒应用程序,应用程序运行正常.
我有另一个软件可以检测机器中安装的安全,间谍软件和防火墙.在运行扫描时,它会检测已安装在我的计算机上的ESAT Smart Security 8.0,而我的防病毒软件不在列表中.在进行一些研究时,我发现这一块代码检测到机器中存在防病毒.
ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher(@"\\MyMachineName\root\SecurityCenter2", "SELECT * FROM AntivirusProduct");
ManagementObjectCollection objectCollection = managementObjectSearcher.Get();
string DisplayName = String.Empty;
if (managementObjectSearcher.Get().Count > 0)
{
foreach (ManagementObject managementObject in managementObjectSearcher.Get())
{
DisplayName = managementObject["displayName"].ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
现在我确实相信,为了使我的应用程序看起来像一个防病毒软件,我必须在SecurityCenter2或WMI中输入一些条目.我尝试了以下代码来实现它
public static void RegisterAsAntivirus()
{
string computer = Environment.MachineName;
string wmipath = @"\\" + computer + @"\root\SecurityCenter2";
ManagementScope oScope = new ManagementScope(wmipath);
oScope.Connect();
ManagementPath oPath = new ManagementPath("AntivirusProduct");
ObjectGetOptions oGetOp = new ObjectGetOptions();
ManagementClass oProcess = new ManagementClass(oScope, oPath, oGetOp);
PropertyDataCollection …Run Code Online (Sandbox Code Playgroud) 我最近使用C#创建了一个Windows应用程序项目.我已经完成了所有的编码.现在我必须部署该项目.所以,我使用菜单中的visual studio的SETUP PROJECT创建了项目的SETUP.它工作正常,我没有任何问题.但是在部署poroject之后得到的一般设置是MSi,它看起来非常简单.
但我需要知道的是,有没有办法创建自定义设置?我想说的是,我想在安装程序中为我的项目添加徽标.在某些事情上,比如在安装过程中,wizzard应该询问用户名和密码以及更多这样的东西.例如:如果您正在安装像Visual Studio或其他软件这样的软件,那么安装wizzard非常吸引人并且外观和感觉都很好.同样,我想获得我的项目的设置.
我不知道如何实现这一目标.
我尝试使用visual studio项目的安装程序类,我不确定它是否适合我,所以不要浪费时间我只是想在这里问它?
我认为可能很少有第三方工具来实现这一目标.我尝试了InnoSetup 5.2,但我必须手动编写程序,类似于pascal.
我也听说过这个名为InstallShield的工具,但它的成本和我正在寻找一个免费的替代品.
是否有任何第三方工具或软件用于创建Visual Studio项目的SETUP.或者我有什么方法可以获得我的定制设置?
我试图创建一个类似Seats.io的交互式座位布局。但是,我不需要确切的功能,而只需要几件事,例如:
在对Jquery以及raphaeljs进行了大量研究之后,我决定开始使用raphaeljs。我对矢量图形完全陌生。所以很明显,我可能会缺少一些东西。我按照这个小提琴画了一条直线。我还创建了另一个脚本以在窗口上的任意位置绘制圆圈(圆圈将表示座位),以下是脚本
window.onload = function () {
var height = $(document).outerHeight(true);
var width = $(document).width();
var radius = 10;
var paper = Raphael(0, 0, width, height);
var i = 0;
$(document).click(function (e) {
i = i + 1;
var x = e.pageX;
var y = e.pageY;
var seat = paper.circle(x, y, radius)
.attr({stroke: "none", fill: "#f00", opacity: .4})
.data("i", i);
seat.mouseover(function () {
this.attr("opacity", 1);
});
seat.mouseout(function () {
this.attr("opacity", .4); …Run Code Online (Sandbox Code Playgroud)