小编Vik*_*war的帖子

如何在C#中创建APi?

我一直在做编程,但现在我面临挑战.我正在进行一个项目,我必须为我的用户在C#中创建一个API.基本过程是我有一个C#代码,我正在读取XML文件并获取标签之间的属性和值.我实现了这一点,现在我必须为相同的功能创建可消耗的API.有什么方法可以学习创建API吗?

基本上我对如何继续使用API​​一无所知.任何形式的例子对我都有好处.

.net c# api

20
推荐指数
3
解决办法
6万
查看次数

Winforms系统托盘中的多个通知图标

可能我的问题是在托盘栏中打开的这个多个图标的副本 .在我的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)

.net c# notifyicon winforms

6
推荐指数
1
解决办法
4745
查看次数

使用c#从文本文件中删除备用行

我正在做一个项目,我必须从.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索引中删除备用行.

c# asp.net

5
推荐指数
1
解决办法
854
查看次数

如何使用c#在WMI中将Winforms应用程序注册为防病毒?

我在过去的几个月里一直使用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# wmi securitycenter winforms

5
推荐指数
0
解决办法
66
查看次数

如何为.Net应用程序创建自定义安装过程?

我最近使用C#创建了一个Windows应用程序项目.我已经完成了所有的编码.现在我必须部署该项目.所以,我使用菜单中的visual studio的SETUP PROJECT创建了项目的SETUP.它工作正常,我没有任何问题.但是在部署poroject之后得到的一般设置是MSi,它看起来非常简单.

但我需要知道的是,有没有办法创建自定义设置?我想说的是,我想在安装程序中为我的项目添加徽标.在某些事情上,比如在安装过程中,wizzard应该询问用户名和密码以及更多这样的东西.例如:如果您正在安装像Visual Studio或其他软件这样的软件,那么安装wizzard非常吸引人并且外观和感觉都很好.同样,我想获得我的项目的设置.

我不知道如何实现这一目标.

我尝试使用visual studio项目的安装程序类,我不确定它是否适合我,所以不要浪费时间我只是想在这里问它?

我认为可能很少有第三方工具来实现这一目标.我尝试了InnoSetup 5.2,但我必须手动编写程序,类似于pascal.

我也听说过这个名为InstallShield的工具,但它的成本和我正在寻找一个免费的替代品.

是否有任何第三方工具或软件用于创建Visual Studio项目的SETUP.或者我有什么方法可以获得我的定制设置?

c# installer setup-project winforms

3
推荐指数
1
解决办法
1万
查看次数

如何在Raphael JS中将一个元素放置在另一个元素中?

我试图创建一个类似Seats.io的交互式座位布局。但是,我不需要确切的功能,而只需要几件事,例如:

  1. 在屏幕上的任意位置绘制座位
  2. 绘制从一个点到另一个的座位列表
  3. 从一个鼠标单击点绘制到另一个位置时,将鼠标悬停在圆圈上

在对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)

javascript jquery svg raphael

0
推荐指数
1
解决办法
308
查看次数