小编Dev*_*oot的帖子

每隔X秒执行指定的功能

我有一个用C#编写的Windows窗体应用程序.无论何时打印机在线,以下功能都会检查:

public void isonline()
{
    PrinterSettings settings = new PrinterSettings();
    if (CheckPrinter(settings.PrinterName) == "offline")
    {
        pictureBox1.Image = pictureBox1.ErrorImage;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果打印机处于脱机状态,则更新映像.现在,我怎么能isonline()每2秒执行一次这个功能,所以当我拔下打印机时,表格(pictureBox1)上显示的图像变成另一个,而不重新启动应用程序或进行手动检查?(例如,按下运行该isonline()功能的"刷新"按钮)

.net c# winforms

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

为什么编译器版本出现在我的ELF可执行文件中?

我最近使用gcc在Debian Linux下编译了一个简单的hello world C程序:

gcc -mtune=native -march=native -m32 -s -Wunused -O2 -o hello hello.c
Run Code Online (Sandbox Code Playgroud)

文件大小为2980字节.我在十六进制编辑器中打开它,我看到以下几行:

GCC: (Debian 4.4.5-8) 4.4.5 GCC: (Debian 4.4.5-10) 4.4.5 .shstrtab .interp .note.ABI-tag .note.gnu.build-id .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .text .fini .rodata .eh_frame .ctors .dtors .jcr .dynamic .got .got.plt data.data .bss .comment
Run Code Online (Sandbox Code Playgroud)

他们真的需要吗?无法减少可执行文件的大小?

c linux gcc elf

14
推荐指数
3
解决办法
5733
查看次数

C表示基数2中的int

可能重复:
我可以在C或C++中使用二进制文字吗?

我正在学习C,我最近发现我们可以用不同的方式表示整数,如:

(假设i"人类可读"的值为512.)以下是表示:

十进制:

int i = 512; 
Run Code Online (Sandbox Code Playgroud)

八:

int i = 01000;
Run Code Online (Sandbox Code Playgroud)

十六进制:

int i = 0x200;
Run Code Online (Sandbox Code Playgroud)

在基数2(或二进制表示)中,5121000000000.怎么用C写这个?

有点像int i = 1000000000b?这很有趣,但遗憾的是没有C编译器接受该值.

c binary integer representation

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

MySQL LEFT JOIN重复结果

我在实现一个project可以属于多个模块的模块时遇到问题categories.示例:project"PHP Programmer"所属分类:Programming,PHP.

假设以下查询(选择属于类别1,3,11的项目):

SELECT projects.* FROM projects 
    LEFT JOIN pojects_category on projects.id = pojects_category.project_id 
    WHERE pojects_category.category_id IN (1,3,11) and projects.id='94'`
Run Code Online (Sandbox Code Playgroud)

我得到一个相同的项目返回两次,因为表中有2个匹配=project_categoryproject_id94

projects_category模式:

CREATE TABLE IF NOT EXISTS `pojects_category` (
  `project_id` int(10) NOT NULL,
  `category_id` int(10) NOT NULL,
  KEY `category_id` (`category_id`),
  KEY `project_id` (`project_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


INSERT INTO `pojects_category` (`project_id`, `category_id`) VALUES
(94, 3),
(94, 1);
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

解决方案:使用GROUP BYDISTINCT

mysql sql left-join

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

在这种情况下,是否足够安全/可以使用RSA加密?

不久前我发现了RSA加密/解密,我有一些经验.目前我正在用C#开发一个应用程序,它必须向我的服务器发送一些敏感信息.我可以在C#程序中本地加密该信息,将其发送到服务器,然后解密(使用PHP脚本)吗?这足以确保除了服务器和客户端之外没有人能看到原始信息吗?

编辑:客户端(C#app)不必解密任何信息,因此私钥只会存储在远程网络服务器上(当然是服务器端).

php c# rsa

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

C++读取二进制文件并转换为十六进制

我在读取二进制文件并将其字节转换为十六进制表示时遇到一些问题.

到目前为止我尝试过的:

ifstream::pos_type size;
char * memblock;

ifstream file (toread, ios::in|ios::binary|ios::ate);
  if (file.is_open())
  {
    size = file.tellg();
    memblock = new char [size];
    file.seekg (0, ios::beg);
    file.read (memblock, size);
    file.close();

    cout << "the complete file content is in memory" << endl;

std::string tohexed = ToHex(memblock, true);


    std::cout << tohexed << std::endl;

   }
Run Code Online (Sandbox Code Playgroud)

转换为十六进制:

string ToHex(const string& s, bool upper_case)
{
    ostringstream ret;

    for (string::size_type i = 0; i < s.length(); ++i)
        ret << std::hex << std::setfill('0') << std::setw(2) << (upper_case ? …
Run Code Online (Sandbox Code Playgroud)

c++ hex binary-data

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

检查有效的主机:端口组合

有没有办法host:port使用正则表达式和PHP 检查有效的组合?

正则表达式必须确保:

  • host 是一个有效的IP(包含4个1-3位数字,由3个点分隔,数字范围为1-255)
  • 有一个分隔符 :
  • port 是0到65535之间的有效数字
  • 别的什么都不允许

有效组合的示例:

  1. 95.241.1.5:5423

  2. 2.8.5.2:65532

无效组合的示例:

  1. 1. 2345 .12.1:5441

  2. 15.852.32.455:151896841

  3. 65.112.15.32:48 控制

php regex

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

C#String.Replace和UTF-8字符

我试图用我自己的字符替换这个字符串中的一些罗马尼亚字符,但它并没有真正起作用.

static void Main(string[] args)
{
    string sometext = "Înc? nu s-a pornit acas?";
    sometext.Replace("?", "1");

    Console.WriteLine(sometext);
    Console.ReadKey(true);
}
Run Code Online (Sandbox Code Playgroud)

这将输出原始sometext而不做任何更改.但是,既不替换也不替换最终结果Inca nu s-a pornit acasa.变音符号被替换为与ISO-8859-1它们对应的字符.Î成为I,?成为a.

Sumarry:

预期的结果是:Înc1 nu s-a pornit acas1.

实际上,我得到: Inca nu s-a pornit acasa

注意:在Advanced Save Options,我选择了以下编码:Unicode (UTF-8 with signature) - Codepage 65001

实际上,字符串是不可变的,String.Replace返回一个字符串,所以sometext = sometext.Replace("?", "1");工作正常.谢谢大家!

c# string unicode utf-8

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

减小功能大小

也许这是一个虚拟问题,但由于我不是C#专家,我认为使用较少的代码行可以更好地编写这个函数.

这里是:

    public void chgnav(string wt, string nav)
    {
        if (wt == "enable")
        {
            if (nav == "prev")
            {
                pictureBox7.Visible = true;
                pictureBox9.Visible = false;
            }
            else
            {
                pictureBox8.Visible = true;
                pictureBox10.Visible = false;
            }
        }
        else
        {
            if (nav == "prev")
            {
                pictureBox7.Visible = false;
                pictureBox9.Visible = true;
            }
            else
            {
                pictureBox8.Visible = false;
                pictureBox10.Visible = true;
            }

        }
    }
Run Code Online (Sandbox Code Playgroud)

编辑:感谢大家,我的赞成.我得到了我想要的东西.

c# optimization size-reduction

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

C#捕获webbrowser发出的http请求

假设在一个简单的窗体中有一个指向www.google.com的Webbrowser控件.有没有办法看到webbrowser发出了哪些其他请求(例如,请求的图像列表,javascript文件,css文件和所有这些东西)?

c# browser httprequest

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

运行为CGI的PHP的APC(可变缓存)替代方案

我想知道除了APC缓存之外,PHP还有其他简单易用的缓存机制,它可以在运行CGI的情况下正常工作.

配置命令
'./configure' '--prefix=/usr/local/php5' '--enable-force-cgi-redirect' '--enable-fastcgi' '--with-config-file-path=/usr/local/etc/php5/cgi' '--with-curl=/usr/local/lib' '--with-gd' '--with-gettext' '--with-jpeg-dir=/usr/local/lib' '--with-freetype-dir=/usr/local/lib' '--with-kerberos' '--with-openssl' '--with-mcrypt' '--with-mhash' '--with-mysql=/usr' '--with-mysqli=/usr/bin/mysql_config' '--with-pcre-regex=/usr/local' '--with-pdo-mysql=/usr' '--with-pear' '--with-png-dir=/usr/local/lib' '--with-zlib' '--with-zlib-dir=/usr/local/lib' '--enable-zip' '--enable-gd-native-ttf' '--with-iconv=/usr/local' '--enable-bcmath' '--enable-calendar' '--enable-ftp' '--enable-magic-quotes' '--enable-sockets' '--enable-mbstring'

服务器API CGI/FastCGI

我正在寻找的是一个简单的内存缓存系统,它允许我存储变量,设置TTL,然后从内存中检索它们.我不是在寻找操作码缓存.

注意:我无法切换到PHP CLI或其他SAPI.我也尝试在这个环境中安装APC,它只按照请求工作(刷新时无法访问).

php caching apc

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

在没有管理员帐户的情况下捕获原始套接字(SOCK_RAW)

我有以下代码,它捕获一些TCP数据包.但它要求程序以管理员身份运行.如何修改此代码,以便即使使用非管理员帐户,该程序也能正常工作?

    public void startSniffer()
    {
        bContinueCapturing = true;

        mainSocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);

        mainSocket.Bind(new IPEndPoint(IPAddress.Parse(Properties.Settings.Default.IPaddr), 0));
        mainSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, true);

        byte[] byTrue = new byte[4] { 1, 0, 0, 0 };
        byte[] byOut = new byte[4] { 1, 0, 0, 0 }; 


        mainSocket.IOControl(IOControlCode.ReceiveAll, byTrue, byOut);

        mainSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None, new AsyncCallback(OnReceive), null);

    }

    public void OnReceive(IAsyncResult ar)
    {
        int nReceived = mainSocket.EndReceive(ar);

        ParseData(byteData, nReceived);

        if (bContinueCapturing)
        {
            byteData = new byte[4096];

            mainSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None, new AsyncCallback(OnReceive), null);
        }

    }
Run Code Online (Sandbox Code Playgroud)

c# winsock

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