小编Jon*_*ury的帖子

安装程序问题:"程序文件"或"程序文件(x86)"?

我正在安装一个100%托管代码的.NET(C#)应用程序.安装程序(InnoSetup)总是希望将应用程序安装到Vista x64中的"Program Files(x86)"文件夹中,我假设这是因为安装程序本身只有32位.(如果我错了请纠正我)以下是我的问题:

  1. 是否在x86文件夹中以我不知道的幕后方式影响我的应用程序?
  2. 我假设我的应用程序仍然作为一个真正的x64应用程序运行,尽管在x86文件夹中 - 这是正确的吗?
  3. 让安装程序将应用程序放在"Program Files"文件夹中会有什么好处吗?

谢谢!

installer 64-bit x86

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

RegEx匹配HTML标记并提取文本

我有一串这样的测试:

<customtag>hey</customtag>
Run Code Online (Sandbox Code Playgroud)

我想使用RegEx修改"customtag"标签之间的文本,使其看起来像这样:

<customtag>hey, this is changed!</customtag>
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用MatchEvaluator来修改文本,但我不确定要使用正确的RegEx语法.任何帮助将非常感激.

c# regex

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

将GB2312转换为UTF-8

我有一个文本文件,其中包含当前以GB2312(简体中文)编码的本地化语言字符串,但我的所有其他语言文件都是UTF-8.我发现使用这个文件非常困难,因为我的文本编辑器都不能正常使用它并继续破坏它.有没有工具可以将其转换为UTF-8,这样做有什么缺点吗?将它保留为GB2312并使用不同的编辑器(如果是这样,你能推荐一个)会更好吗?

更新:我正在使用Windows XP(英文安装).

更新#2:我尝试使用Notepad ++和Notepad2编辑GB2312文件,但两者都无法读取文件并破坏它们.

unicode utf-8 gb2312

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

Bitmap与OnPaintBackground中的TextRenderer.DrawText

如果我使用OnPaintBackground中提供的Graphics对象使用TextRenderer.DrawText(),我的文本看起来很完美.如果我创建自己的Bitmap并使用从我的Bitmap获得的Graphics对象,我的文本看起来很糟糕.看起来它使用黑色对文本进行抗锯齿处理,而不是位图的背景颜色.如果我使用Graphics.DrawString(),我可以避免这个问题,但这种方法有可怕的字距调整问题.我该怎么办?如何使用Bitmap的内容正确地将TextRenderer.DrawText()转换为反别名?

看起来很糟糕:

Bitmap bmp = new Bitmap(100, 100, PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(bmp))
{
g.Clear(Color.Red);
TextFormatFlags tf = TextFormatFlags.Left;
TextRenderer.DrawText(g, @"C:\Development\Testing\blag", font, clip, Color.White, Color.Transparent, tf);
}
Run Code Online (Sandbox Code Playgroud)

看起来不错,但我想将其渲染到位图上,而不是渲染到控件的表面上:

protected override void OnPaintBackground(PaintEventArgs e)
{
e.Graphics.Clear(Color.Red);
TextFormatFlags tf = TextFormatFlags.Left;
TextRenderer.DrawText(e.Graphics, @"C:\Development\Testing\blag", font, clip, Color.White, Color.Transparent, tf);
}
Run Code Online (Sandbox Code Playgroud)

有什么不同?

c# textrenderer

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

如果C#中的语句简化

我有一行代码如下:

if (obj is byte || obj is int || obj is long || obj is decimal || obj is double || obj is float)
Run Code Online (Sandbox Code Playgroud)

是否有可能写出比这更优雅的东西?就像是:

if (obj is byte, int, long)
Run Code Online (Sandbox Code Playgroud)

我知道我的例子是不可能的,但有没有办法让这个看起来"更干净"?

c# if-statement

7
推荐指数
3
解决办法
963
查看次数

UTF-8是否可以读/写亚洲语言?

我通过Web表单(UTF-8)接受用户输入,将其保存到MySQL DB(使用UTF-8字符集)并稍后生成文本文件(编码为UTF-8).我想知道是否有任何机会使用UTF-8而不是像UCS-2这样的文本损坏?在这种情况下,UTF-8是否足够好?

c# unicode utf-8

7
推荐指数
2
解决办法
1673
查看次数

检索Delphi窗口句柄

我试图从外部应用程序获取Delphi应用程序的窗口句柄.我可以看到创建了一些窗口(TApplication,TFrmMain和其他几个),我知道TApplication是"控制器",但从未见过.但是,我能读一下真实窗口的值是什么吗?我知道它是TFrmMain(对于这个特定的应用程序),但它是否有可能以某种方式实现这一点?信息是存储在窗口属性中还是其他地方?谢谢!

delphi winapi

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

如何在枚举中使用不安全的值?

我需要在我的C#应用​​程序中使用这个枚举,但它不会让我使用这些值.当我将类型指定为uint时,我可以使用-1值,当我指定int时,我不能使用最后2个值.有没有办法在这里使用unchecked关键字来允许我定义所有这些值?这些值来自外部源,因此我无法更改它们.

internal enum MyValues : int
{
    value1 = -1,
    value2 = 0,
    value3 = 0x80000000,
    value4 = 0xFFFFFFFF
}
Run Code Online (Sandbox Code Playgroud)

c# enums interop unsafe

7
推荐指数
2
解决办法
1185
查看次数

带有VisualStyles的OwnerDraw ComboBox

我有一个ComboBox,我设置了DrawMode = DrawMode.OwnerDrawFixed.然后我处理OnDrawItem事件,一切都很完美.但是,它看起来与标准的ComboBox非常不同,因为我似乎没有使用VisualStyles渲染.我是否需要做一些事情来专门为我的所有者绘制控件启用VisualStyle渲染?我在我的控制下尝试过SetWindowTheme,但我不确定要发送什么样的主题类.任何帮助将非常感激.谢谢!

c# combobox winforms

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

在查询中使用MySQL变量

我试图使用这个MySQL查询:

SET @a:=0; UPDATE tbl SET sortId=@a:=@a+1 ORDER BY sortId;
Run Code Online (Sandbox Code Playgroud)

不幸的是我收到了这个错误:
"参数'@a'必须定义"

是否可以将命令批处理为1个查询,或者我是否需要为此创建存储过程?

mysql

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