我有一个用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()
功能的"刷新"按钮)
我最近使用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或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)
有点像int i = 1000000000b
?这很有趣,但遗憾的是没有C编译器接受该值.
我在实现一个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_category
project_id
94
表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 BY
或DISTINCT
不久前我发现了RSA加密/解密,我有一些经验.目前我正在用C#开发一个应用程序,它必须向我的服务器发送一些敏感信息.我可以在C#程序中本地加密该信息,将其发送到服务器,然后解密(使用PHP脚本)吗?这足以确保除了服务器和客户端之外没有人能看到原始信息吗?
编辑:客户端(C#app)不必解密任何信息,因此私钥只会存储在远程网络服务器上(当然是服务器端).
我在读取二进制文件并将其字节转换为十六进制表示时遇到一些问题.
到目前为止我尝试过的:
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) 有没有办法host:port
使用正则表达式和PHP 检查有效的组合?
正则表达式必须确保:
host
是一个有效的IP(包含4个1-3位数字,由3个点分隔,数字范围为1-255):
port
是0到65535之间的有效数字有效组合的示例:
95.241.1.5:5423
2.8.5.2:65532
无效组合的示例:
1. 2345 .12.1:5441
15.852.32.455:151896841
65.112.15.32:48 控制
我试图用我自己的字符替换这个字符串中的一些罗马尼亚字符,但它并没有真正起作用.
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
.
预期的结果是:Înc1 nu s-a pornit acas1
.
实际上,我得到: Inca nu s-a pornit acasa
注意:在Advanced Save Options
,我选择了以下编码:Unicode (UTF-8 with signature) - Codepage 65001
sometext = sometext.Replace("?", "1");
工作正常.谢谢大家!也许这是一个虚拟问题,但由于我不是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)
编辑:感谢大家,我的赞成.我得到了我想要的东西.
假设在一个简单的窗体中有一个指向www.google.com的Webbrowser控件.有没有办法看到webbrowser发出了哪些其他请求(例如,请求的图像列表,javascript文件,css文件和所有这些东西)?
我想知道除了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,它只按照请求工作(刷新时无法访问).
我有以下代码,它捕获一些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)