C#创建快捷方式的问题

Cloveaf 2012-04-19 11:34:20
WinForm需要创建快捷方式,方法网上的代码很多,就不说的。
现在的问题是,在英文的系统下,如果快捷方式指向的targetpath包含中文,快捷方式就不能正确创建。请问有什么方法可以解决?
...全文
361 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
test2050 2012-04-19
  • 打赏
  • 举报
回复
这种问题一般是避开。能不用中文就不用中文。
你可以试试把字符串encode下试试。(我没试过呵呵)
Cloveaf 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
install shield是用脚本,windows create shortcut应该是直接操作的注册表,和你用的api coding是不一样的
[/Quote]

您知道install shield用的什么脚本么?我想如果有办法给目标文件发一个“创建快捷方式”的命令也不错。
Cloveaf 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
换成utf8编码
[/Quote]

能具体说怎么做么?我已经在代码里尝试了各种编码格式了,没用。不知道转换的方法对不对。
lvmeng0206 2012-04-19
  • 打赏
  • 举报
回复
install shield是用脚本,windows create shortcut应该是直接操作的注册表,和你用的api coding是不一样的
liyifei123 2012-04-19
  • 打赏
  • 举报
回复
换成utf8编码
Cloveaf 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
其他程序创建你是指写code的方式吗? 还是用install shield或windows自带的create shortcut
[/Quote]

windows自带的发送到桌面那个也可以啊。
Cloveaf 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
其他程序创建你是指写code的方式吗? 还是用install shield或windows自带的create shortcut
[/Quote]

应该是install shield。就一般的程序安装完后在桌面间隔快捷方式之类的。
lvmeng0206 2012-04-19
  • 打赏
  • 举报
回复
其他程序创建你是指写code的方式吗? 还是用install shield或windows自带的create shortcut
lvmeng0206 2012-04-19
  • 打赏
  • 举报
回复
显示正常是因为有语言包
Cloveaf 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
这个问题其实解决起来很简单,在英文操作系统里他指向的targetpath包含中文,用代码创建中文路径的快捷方式肯定会显示出乱码的,这个问题不是你代码的原因,而是他系统环境的原因,因为英文操作系统默认的system language是不支持中文的,他只要修改他本机的系统语言就可以了,如果不修改想他在装其他的中文版的软件也会出现乱码情况

具体修改方法如下 :

1,Control Panel……
[/Quote]

而且其他程序创建的快捷方式都没什么问题
Cloveaf 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
这个问题其实解决起来很简单,在英文操作系统里他指向的targetpath包含中文,用代码创建中文路径的快捷方式肯定会显示出乱码的,这个问题不是你代码的原因,而是他系统环境的原因,因为英文操作系统默认的system language是不支持中文的,他只要修改他本机的系统语言就可以了,如果不修改想他在装其他的中文版的软件也会出现乱码情况

具体修改方法如下 :

1,Control Panel……
[/Quote]

可是为什么显示是正常的呢?
lvmeng0206 2012-04-19
  • 打赏
  • 举报
回复
这个问题其实解决起来很简单,在英文操作系统里他指向的targetpath包含中文,用代码创建中文路径的快捷方式肯定会显示出乱码的,这个问题不是你代码的原因,而是他系统环境的原因,因为英文操作系统默认的system language是不支持中文的,他只要修改他本机的系统语言就可以了,如果不修改想他在装其他的中文版的软件也会出现乱码情况

具体修改方法如下 :

1,Control Panel\Clock, Language, and Region\Change display language\Formats table\current fomart 下选Chinese
(simplified
,PRC)
2,Control Panel\Clock, Language, and Region\Change display language\Location table\current location下选China
(simplified
,PRC)

3,Control Panel\Clock, Language, and Region\Change display language\Administrative table\Change sysytem location\在弹出的对话框中选China
(simplified
,PRC)

修改后重启电脑,问题 就会解决
Cloveaf 2012-04-19
  • 打赏
  • 举报
回复
有人遇到过这个问题吗?
Cloveaf 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
这种问题一般是避开。能不用中文就不用中文。
你可以试试把字符串encode下试试。(我没试过呵呵)
[/Quote]

用户非得用中文路径,我们也没办法。
encode试过了,出来之后是问号。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧