小编R.V*_*tor的帖子

如何在控制台应用程序中处理按键事件

我想创建一个控制台应用程序,它将显示在控制台屏幕上按下的键,我到目前为止制作了这段代码:

    static void Main(string[] args)
    {
        // this is absolutely wrong, but I hope you get what I mean
        PreviewKeyDownEventArgs += new PreviewKeyDownEventArgs(keylogger);
    }

    private void keylogger(KeyEventArgs e)
    {
        Console.Write(e.KeyCode);
    }
Run Code Online (Sandbox Code Playgroud)

我想知道,我应该在main中输入什么,以便我可以调用该事件?

c# event-handling keyboard-events keylogger

26
推荐指数
2
解决办法
6万
查看次数

StringBuilder和字节转换

我有以下代码:

StringBuilder data = new StringBuilder();
for (int i = 0; i < bytes1; i++)
{ 
    data.Append("a"); 
}
byte[] buffer = Encoding.ASCII.GetBytes(data);
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

cannot convert from 'System.Text.StringBuilder' to 'char[]'
The best overloaded method match for 'System.Text.Encoding.GetBytes(char[])'
has some invalid arguments
Run Code Online (Sandbox Code Playgroud)

c# stringbuilder encoding byte

23
推荐指数
4
解决办法
5万
查看次数

C#:键盘钩

我不知道这个问题有更好的标题,但我会说明我的问题.

我正在开发类似MP3播放器的应用程序,它使用多媒体键来播放/暂停,停止歌曲,我实际上使它工作但是FormApplication必须在顶部[聚焦]

protected override void WndProc(ref Message msg)
{
    if (msg.Msg == 0x319)   // WM_APPCOMMAND message
    {
        // extract cmd from LPARAM (as GET_APPCOMMAND_LPARAM macro does)
        int cmd = (int)((uint)msg.LParam >> 16 & ~0xf000);
        switch (cmd)
        {
            case 13:  // APPCOMMAND_MEDIA_STOP constant
                MessageBox.Show("Stop");
                break;
            case 14:  // APPCOMMAND_MEDIA_PLAY_PAUSE
                MessageBox.Show("Play/Pause");
                break;
            case 11:  // APPCOMMAND_MEDIA_NEXTTRACK
                MessageBox.Show("Next");
                break;
            case 12:  // APPCOMMAND_MEDIA_PREVIOUSTRACK
                MessageBox.Show("Previous");
                break;
            default:  
                break;
        }
    }
    base.WndProc(ref msg);
}


private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    Message m = new …
Run Code Online (Sandbox Code Playgroud)

c# keyboard-shortcuts keyboard-hook media-player

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

C#:预期的方法名称

我有这个方法来计算某个文件夹中的文件:

    private void countfiles(string path)
    {
        if (path != "")
        {
            DirectoryInfo dir = new DirectoryInfo(path);

            foreach (FileInfo filesindires in dir.GetFiles())
            {
                if (filesindires.FullName != Application.ExecutablePath)
                {
                    num_files++;
                    Thread.Sleep(1);
                }
            }

            foreach (DirectoryInfo dirsinfolder in dir.GetDirectories())
            {
                countfiles(dirsinfolder.FullName);
            }
        }           
    }
Run Code Online (Sandbox Code Playgroud)

当用户点击计数按钮时我想制作一个线程,所以程序不会挂起.

Thread count = new Thread(new ThreadStart(countfiles(@"E:/test")));
Run Code Online (Sandbox Code Playgroud)

但是我甚至在调试之前就得到了这个错误

Method Name Expected
Run Code Online (Sandbox Code Playgroud)

我不明白; 这个错误需要我什么?

最后非常感谢您的帮助.

c# methods multithreading

5
推荐指数
2
解决办法
2万
查看次数

C#:Xml.Load(文件)的close方法

我编写了一些使用XmlDocument对象加载XML文档的代码,以便计算它的节点.这是方法:

XmlDocument xml = new XmlDocument();
xml.Load(textBox1.Text);
XmlNodeList nodes = xml.SelectNodes("//File");
foreach (XmlNode node in nodes)
{
    number_of_childs++;
}
Run Code Online (Sandbox Code Playgroud)

我面临的问题是,在导入大文件时,需要700MB的RAM.如果我然后尝试对文件执行某些操作,或者甚至从中读取以在a中显示其数据ListView,则应用程序需要2GB的RAM.所以,我想知道,有没有一种方法可以关闭XmlDocument并释放内存,释放RAM.它就像是忘记从内存中删除其内容.

c# xml memory xmldocument memory-management

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

C#:FTP上传缓冲区大小

我已经去了FTP上传功能,但有一些我想问的问题是缓冲区大小,我把它设置为20KB是什么意思,如果我增加/减少它会有什么不同吗?

    private void Upload(string filename)
    {
        FileInfo fi = new FileInfo(filename);

        FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create("ftp://" + textBox1.Text + "/" + Path.GetFileName(filename));
        ftp.Credentials = new NetworkCredential(textBox2.Text, textBox3.Text);
        ftp.Method = WebRequestMethods.Ftp.UploadFile;
        ftp.UseBinary = true;
        ftp.KeepAlive = false;
        ftp.ContentLength = fi.Length;

        // The buffer size is set to 20kb
        int buffLength = 20480;
        byte[] buff = new byte[buffLength];
        int contentLen;

        //int totalReadBytesCount = 0;

        FileStream fs = fi.OpenRead();

        try
        {
            // Stream to which the file to be upload is written
            Stream strm …
Run Code Online (Sandbox Code Playgroud)

c# ftp io upload buffer

4
推荐指数
1
解决办法
5542
查看次数

C#:方法类型之间的差异

可能重复:
Public,Private,Protected和Nothing之间有什么区别?

我有一个问题:这些方法类型有什么区别?

Static , Public , Internal , Protected , const , void
Run Code Online (Sandbox Code Playgroud)

对不起,我的问题对于专业人士来说可能看起来很尴尬,但我真的想了解它们的区别,顺便说一下我搜索和阅读有关它们的文章,但它们都很大而且没有很好地描述,我只需要一个很好的例子,我可以制作决定每次我做一个函数,因为我总是从私有空开始........

c# methods static-methods public-method

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

在没有SQL Server的情况下创建C#应用程序

我刚开始使用SQL,现在我需要为我的C#应用​​程序创建一个数据库,它将保存用户名和密码.把它想象成密码提醒.

无论如何,我认为我需要做的是:我需要创建一个SQL数据库,该数据库将仅用于保存数据.它不应该在计算机上安装SQL Server.

我在网上搜索但没有结果,所有这些都需要使用SQL Server,请你能给我这样做的步骤,或者任何资源和非常感谢.

c# sql database ado.net sqlclient

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

连接远程mysql数据库,收到错误"无法连接到任何指定的MySQL主机"

我正在创建一个连接到远程mysql数据库的应用程序到一些cpanel帐户.我在cpanel帐户上创建了数据库,并为其定义了用户名和密码.我正在使用MysqlConnector.到目前为止,我已经编写了以下代码:

using MySql.Data.MySqlClient;
        MySqlConnection c = new MySqlConnection("SERVER = 64.191.12.54; DATABASE = alyataco_test4application; User ID = xxxxxxxx; PASSWORD = xxxxxxxx");
        c.Open();
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误:

MySql.Data.MySqlClient.MySqlException: Unable to connect to any of the specified MySQL hosts.
Run Code Online (Sandbox Code Playgroud)

我还看到使用Visual C#连接到远程MySQL数据库,但也没有帮助

c# mysql database mysql-connector

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

如何休眠应用程序?

我的问题似乎太奇怪,但我想到了Windows休眠的事情,我想知道是否有办法休眠特定的进程或应用程序.即:当Windows从正常关闭/重启启动时,它将正常加载所有启动程序,但除此之外,它将在关闭计算机之前加载具有其先前状态的特定程序.

我有关于保留内存位置并在计算机启动时将其检索回来,但是在Windows环境中是否有任何应用程序可以执行此操作?

windows operating-system process

2
推荐指数
1
解决办法
1485
查看次数