博客 (852)

这不是一篇Vista Sidebar Gadget开发的教程,只是谈谈几则Sidebar Gadget开发中的小技巧。需要Sidebar Gadget开发教程的朋友可以去参考:

技巧一:如何设计不规则的窗体?
经常会有人问,为什么有些Gadget的窗体是不规则的呢?例如系统自带的那个显示内存和CPU占用率的仪表盘。

其实很简单,制作一个透明背景的png格式的图片。然后将该图片设置为你的gadget的背景图就行了。

技巧二:Gadget的大小为多少合适?
如果处于停靠状态,那么宽度为130px;非停靠状态以及Gadget的高度好像没有限制。但是太大了也不好看。

技巧三:如何察看“System.Debug.outputString()”方法输出的调试信息?
这个问题估计是问的最多的人了。。。呵呵。的确,这个方法输出的调试信息是无法直接看到的。或许有很多工具可以查看系统的调试信息,不过我个人比较喜欢的是 DebugView
在您的gadget的Javascript代码中任何地方加上“System.Debug.outputString("some text");”,当代码运行到这里,您就会在Debug View中看到输出的调试信息。如下图所示:


技巧四:如何在Gadget中访问网络上的资源?
很简单,使用Javascript发起XMLHttpRequest请求就行了。如果觉得麻烦不想自己写那么多代码,可以采用JQuery里面封装好的方法来发起get或者post请求。

技巧五:如何让flyout窗体、Setting窗体和gadget窗体互相访问变量或者函数?
从Gadget窗体访问flyout窗体:  System.Gadget.Flyout.document.parentWindow.<id/function/variable>
从Flyout/Settings窗体访问Gadget窗体:System.Gadget.document.parentWindow.<id/function/variable>

5,966
  • Gadget当中如何含有设置界面?即那个类似于小板手似的图标?

其实这个问题的答案很简单,只需要在主界面所关联的Javascript中加入一句:System.Gadget.settingsUI = "settings.htm";即可,该语句中的settings.htm可以取代为其它名字.

  • 如何使Gadget出现Flyout界面?

这个问题如上所示,只需要加一句:System.Gadget.Flyout.file="flyout.htm" 即可,同理,此句中的flyout.htm也可以换成其它的文件名。在需要显示Flyout界面时(比如某个超链接点击事件,或者某个图片控件的双击事件),调用System.Gadget.Flyout.show=true即可,不需要其它设置。当然,你可以在显示时进行一些其它的处理,那么可以调用它的事件函数即System.Gadget.Flyout.onShow(指向一个函数名),其对应的隐藏事件函数为System.Gadget.Flyout.onHide函数

  • 如何得到系统信息?

Sidebar为Javascript扩充了一些API,用于执行外部命令,或者得到系统信息,或者对于Gadget内部本身的调用(如上面的Flyout以及SettingsUI),关于这些API的详细信息,可以参阅:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sidebar/sidebar/reference/refs.asp 得到更加详细的信息。

  • 如何在没有使用ASP.NET AJAX框架的基础上出现局部刷新效果?

更加简单了,使用Microsoft XMLHTTP这个函数的异步调用方式,关于XMLHTTP的更加详细信息,可以参阅相关信息。其中有关于如何实现异步调用的。另外,在调用时,如果遇到IE缓存问题,可以使用setRequestHeader("If-Modified-Since","0")方式解决(感谢Symbio提供信息),而分析XML,可以使用Microsoft XMLDom来进行。

  • 有些Gadget当置放在Sidebar上显示样式是一种,而拖到桌面上会有另外一种显示方式,这是如何实现的?

这个更简单了,查看了下这些Gadget的源代码,可以知道,通过Gadget的System.Gadget.docked的属性可以得到其是否放置在Sidebar上(当为True时,是在Sidebar上),然后再调用JS来对于其CSS特性进行更改即可。

4,294
<?xml version="1.0" encoding="utf-8"?>
<gadget>
<name>时钟</name> <!--定义Gadget名称(1)-->
<namespace>microsoft.windows</namespace> <!--定义Gadget的命名空间,与JS交互-->
<version>1.0.0.0</version> <!--版本信息(2)-->
<author name="Microsoft Corporation"> <!--作者信息(3)-->
<info url="http://go.microsoft.com/fwlink/?LinkId=55696" text="www.gallery.microsoft.com"/> <!--作者网站的链接地址(4)-->
<logo src="logo.png"/><!--作者的Logo信息(5)-->
</author>
<copyright>© 2006</copyright> <!--版权信息(6)-->
<description>查看您所在时区或全球任何城市的时钟。</description> <!--功能描述信息(7)-->
<icons>
<icon height="48" width="48" src="icon.png"/> <!--显示在小工具待选箱时的图标(8)-->
</icons>
<hosts>
<host name="sidebar">
<!--仅支持Sidebar,未来如果大一统了,可能Live.com或者Slideshow都会使用统一的方式-->
<base type="html" apiVersion="1.0.0" src="clock.html"/><!--type仅支持html,未来有可能会支持WPF,WPF/E或者AJAX;src用以指明主界面的HTML源文件-->
<permissions>full</permissions><!--目前仅可以设置Full,请参阅此文-->
<platform minPlatformVersion="1.0"/>
<defaultImage src="drag.png"/><!--在从小工具备选箱用鼠标拖到Sidebar时所显示的图片-->
</host>
</hosts>
</gadget>
6,153

微软下载中心:Microsoft Visual Studio International Pack

Visual Studio International Pack 包含一组类库,该类库扩展了.NET Framework对全球化软件开发的支持。使用该类库提供的类,.NET 开发人员可以更方便的创建支持多文化多语言的软件应用。

概述

Visual Studio International Pack 包含一组类库,该类库扩展了.NET Framework对全球化软件开发的支持。使用该类库提供的类,.NET 开发人员可以更方便的创建支持多文化多语言的软件应用。 该软件包1.0版提供下面七个组件以增强.NET Framework对全球化软件应用开发的支持。

  • East Asia Numeric Formatting Library - 支持将小写的数字字符串格式化成简体中文,繁体中文,日文和韩文的大写数字字符串。
  • Japanese Kana Conversion Library - 支持将日文假名(Kana)转化为另一种日文字符。
  • Japanese Text Alignment Library - 支持日文特有的一种对齐格式。
  • Japanese Yomi Auto-Completion Library - 类库支持感知日文输入法的输入自动完成和一个文本框控制的示例。
  • Korean Auto Complete TextBox Control - 在文本框中支持韩文输入法的智能感知和输入自动完成。
  • Simplified Chinese Pin-Yin Conversion Library - 支持获取简体中文字符的常用属性比如拼音,多音字,同音字,笔画数。
  • Traditional Chinese to Simplified Chinese Conversion Library and Add-In Tool - 支持简繁体中文之间的转换. 该组件还包含一个Visual Studio集成开发环境中的插件(Add-in)支持简繁体中文资源文件之间的转换。

 

说明

1. 请下载Visual Studio International Pack 1.0压缩文件(zip), 解压后可以发现7个MSI安装文件。
2. 运行所需组件的MSI文件安装该组件。
下载后,对于只使用“拼音”功能的,只用安装CHSPinYinConv.msi。
文件安装在X:\Program Files\Microsoft Visual Studio International Pack(Beta)\Simplified Chinese Pin-Yin Conversion Library下。

使用时,需要引用目录下的两个dll文件:ChnCharInfo.dll,ChnCharInfoResource.dll。
其中ChnCharInfo.dll包含应用的类Microsoft.International.Converters.PinYinConverter >  ChineseChar
ChnCharInfoResource.dll只包含数据资源。
ChineseChar类的属性方法

 ChineseCharNew(Char) ChineseChar类的构造函数。
 ChineseCharacter 获取这个汉字字符。
 CompareStrokeNumber(Char) 将给出的字符和实例字符的笔画数进行比较。
 GetCharCount(Int16) 检索具有指定笔画数的字符个数。
 GetChars(String) 获取给定拼音的所有同音字。
 GetChars(Int16) 检索具有指定笔画数的所有字符串。
 GetHomophoneCount(String) 检索具有指定拼音的字符数。
 GetStrokeNumber(Char) 检索指定字符的笔画数。
 HasSound(String) 识别字符是否有指定的读音。
 IsHomophone(Char) 识别给出的字符是否是实例字符的同音字。
 IsHomophone(Char, Char) 识别给出的两个字符是否是同音字。
 IsPolyphone 获取这个字符是否是多音字。
 IsValidChar(Char) 识别给出的字符串是否是一个有效的汉字字符。
 IsValidPinyin(String) 识别给出的拼音是否是一个有效的拼音字符串。
 IsValidStrokeNumber(Int16) 识别给出的笔画数是否是一个有效的笔画数。
 PinyinCount 获取这个字符的拼音个数。
 Pinyins 获取这个字符的拼音。
 StrokeNumber 获取这个字符的笔画数。
示例
以下代码演示了返回给出字符的笔划数。

using Microsoft.International.Converters.PinYinConverter;

class Main
{
    publicvoid Main()
    {
        object chineseChar = new ChineseChar("微");
        Console.WriteLine("stroke number of 微 in Chinese is {0}.", chineseChar.StrokeNumber);
        Console.WriteLine("{0} characters' pinyin is \\'wei1\\'.", chineseChar.GetHomophoneCount("wei1"));
        if ((chineseChar.IsHomophone("微", "薇")))
        {
            Console.WriteLine("微 and 薇 have the same pinyin.");
        }
    }
}

// This code produces the following output.

// stroke number of 微 in Chinese is 13.
// 37 characters' pinyin is 'wei1'.
// 微 and 薇 have the same pinyin.
//
    
它的字集是“简体中文扩展字符集”,象“乫”字就不存在。
它也没有提供注音功能。象“乪”字,它提供了拼音:NANG2,可没提供注音:náng。这我觉得很奇怪了。
现在给它加上注音功能。本想按它的风格写的,不过没验证自己的写法是否正确,还是照自己的代码写算了。
PinyinConverter.Vowels.cs,声母
namespace LzmTW.Converters.PinYinConverter
{
partial class ChineseChar
{
private class Vowels
{
private static ReadOnlyCollection<string> gArray;
static Vowels()
{
string[] mArray = new string[] {"b", "p", "m", "f", "d", "t", "n", "l", "g", "k",
"h", "j", "q", "x", "zh", "ch", "sh", "r", "z", "c",
"s", "y", "w"};
gArray =new ReadOnlyCollection<string>(mArray);
}

public static string Item {
get{
if (pinyin.Length ==1) {
return string.Empty;
}

string mVowel = pinyin.Substring(0, 2).ToLower;

if (gArray.Contains(mVowel))
return mVowel;

mVowel = mVowel.Substring(0, 1);

if (gArray.Contains(mVowel))
return mVowel;

return string.Empty;
}
}
}
}
}
PinyinConverter.Consonants.cs,韵母。不好意思,我不知道用什么英文表示韵母好。
namespace LzmTW.Converters.PinYinConverter
{
partial class ChineseChar
{
private class Consonants
{
private static ConsonantCollection gArray;

public static string Item {
get{
string mLastChar = yunmu.Substring(yunmu.Length -1, 1);
int mTone =-1;
string mConsonant = yunmu;

if (char.IsNumber((char)mLastChar)) {
mTone =int.Parse(mLastChar);
}

if (mTone >0) {
mConsonant = yunmu.Substring(0, yunmu.Length -1);
}


if (gArray.Contains(mConsonant)) {

switch (mTone) {

case0:
return gArray(mConsonant).tone1;

case1:
return gArray(mConsonant).tone2;

case2:
return gArray(mConsonant).tone3;

case3:
return gArray(mConsonant).tone4;

case4:
return gArray(mConsonant).tone5;

default:
return gArray(mConsonant).tone1;

}
}
return string.Empty;
}
}

static Consonants()
{
gArray =new ConsonantCollection();
//i,u,ü,iu 
gArray.Add(ConsonantItem.Create(new string[] {"i", "i", "ī", "í", "ǐ", "ì"}));
gArray.Add(ConsonantItem.Create(new string[] {"u", "u", "ū", "ú", "ǔ", "ù"}));
gArray.Add(ConsonantItem.Create(new string[] {"v", "ü", "ǖ", "ǘ", "ǚ", "ǜ"}));
gArray.Add(ConsonantItem.Create(new string[] {"iu", "iu", "iū", "iú", "iǔ", "iù"}));
//ɑ,iɑ,uɑ 
gArray.Add(ConsonantItem.Create(new string[] {"a", "a", "ā", "á", "ǎ", "à"}));
gArray.Add(ConsonantItem.Create(new string[] {"ia", "ia", "iā", "iá", "iǎ", "ià"}));
gArray.Add(ConsonantItem.Create(new string[] {"ua", "ua", "uā", "uá", "uǎ", "uà"}));
//o,uo 
gArray.Add(ConsonantItem.Create(new string[] {"o", "o", "ō", "ó", "ǒ", "ò"}));
gArray.Add(ConsonantItem.Create(new string[] {"uo", "uo", "uō", "uó", "uǒ", "uò"}));
//e,ie,eü,er,ue,üe 
gArray.Add(ConsonantItem.Create(new string[] {"e", "e", "ē", "é", "ě", "è"}));
gArray.Add(ConsonantItem.Create(new string[] {"ie", "ie", "iē", "ié", "iě", "iè"}));
gArray.Add(ConsonantItem.Create(new string[] {"er", "er", "ēr", "ér", "ěr", "èr"}));
gArray.Add(ConsonantItem.Create(new string[] {"ve", "üe", "ǖe", "ǘe", "ǚe", "ǜe"}));
gArray.Add(ConsonantItem.Create(new string[] {"ue", "üe", "ǖe", "ǘe", "ǚe", "ǜe"}));
//ɑi,uɑi 
gArray.Add(ConsonantItem.Create(new string[] {"ai", "ai", "āi", "ái", "ǎi", "ài"}));
gArray.Add(ConsonantItem.Create(new string[] {"uai", "uai", "uāi", "uái", "uǎi", "uài"}));
//ei,uei(ui) 
gArray.Add(ConsonantItem.Create(new string[] {"ei", "ei", "ēi", "éi", "ěi", "èi"}));
gArray.Add(ConsonantItem.Create(new string[] {"ui", "ui", "uī", "uí", "uǐ", "uì"}));
//ɑo,iɑo 
gArray.Add(ConsonantItem.Create(new string[] {"ao", "ao", "āo", "áo", "ǎo", "ào"}));
gArray.Add(ConsonantItem.Create(new string[] {"iao", "iao", "iāo", "iáo", "iǎo", "iào"}));
//ou,iou 
gArray.Add(ConsonantItem.Create(new string[] {"ou", "ou", "ōu", "óu", "ǒu", "òu"}));

//ɑn,iɑn 
gArray.Add(ConsonantItem.Create(new string[] {"an", "an", "ān", "án", "ǎn", "àn"}));
gArray.Add(ConsonantItem.Create(new string[] {"ian", "ian", "iān", "ián", "iǎn", "iàn"}));
//uɑn,üɑn 
gArray.Add(ConsonantItem.Create(new string[] {"uan", "uan", "uān", "uán", "uǎn", "uàn"}));
//en, uen(un) 
gArray.Add(ConsonantItem.Create(new string[] {"en", "en", "ēn", "én", "ěn", "èn"}));
gArray.Add(ConsonantItem.Create(new string[] {"un", "un", "ūn", "ún", "ǔn", "ùn"}));
//in,ün 
gArray.Add(ConsonantItem.Create(new string[] {"in", "in", "īn", "ín", "ǐn", "ìn"}));
gArray.Add(ConsonantItem.Create(new string[] {"vn", "ün", "ǖn", "ǘn", "ǚn", "ǜn"}));
//ɑnɡ,iɑnɡ,uɑnɡ 
gArray.Add(ConsonantItem.Create(new string[] {"ang", "ang", "āng", "áng", "ǎng", "àng"}));
gArray.Add(ConsonantItem.Create(new string[] {"iang", "iang", "iāng", "iáng", "iǎng", "iàng"}));
gArray.Add(ConsonantItem.Create(new string[] {"uang", "uang", "uāng", "uáng", "uǎng", "uàng"}));
//enɡ,uenɡ 
gArray.Add(ConsonantItem.Create(new string[] {"eng", "eng", "ēng", "éng", "ěng", "èng"}));
//inɡ 
gArray.Add(ConsonantItem.Create(new string[] {"ing", "ing", "īng", "íng", "ǐng", "ìng"}));
//onɡ,ionɡ 
gArray.Add(ConsonantItem.Create(new string[] {"ong", "ong", "ōng", "óng", "ǒng", "òng"}));
gArray.Add(ConsonantItem.Create(new string[] {"iong", "iong", "iōng", "ióng", "iǒng", "iòng"}));

}

private class ConsonantItem
{
public string tone0;
public string tone1;
public string tone2;
public string tone3;
public string tone4;
public string tone5;

public static ConsonantItem Create(string[] array)
{
ConsonantItem tmp =new ConsonantItem();
{
tmp.tone0 = array(0);
tmp.tone1 = array(1);
tmp.tone2 = array(2);
tmp.tone3 = array(3);
tmp.tone4 = array(4);
tmp.tone5 = array(5);
}

return tmp;
}
}

private class ConsonantCollection : KeyedCollection<string, ConsonantItem>
{

protected override string GetKeyForItem(ConsonantItem item)
{
return item.tone0;
}
}
}
}
}
重载它的ChineseChar,加上注音属性。
PinyinConverter.cs
namespace LzmTW.Converters.PinYinConverter
{
public class ChineseChar : Microsoft.International.Converters.PinYinConverter.ChineseChar
{

private Collections.ObjectModel.ReadOnlyCollection<string> gZhuyins;

public ChineseChar(char ch) : base(ch)
{

string[] mZhuyinList =new string[8];
string mPinyin;

for (int i =0; i <= mZhuyinList.Length -1; i++)  {
mPinyin =this.Pinyins(i);

if (!string.IsNullOrEmpty(mPinyin))  {
mZhuyinList(i) = ChineseChar.Zhuyin(mPinyin);
}
}

gZhuyins =new Collections.ObjectModel.ReadOnlyCollection<string>(mZhuyinList);
}

public Collections.ObjectModel.ReadOnlyCollection<string> Zhuyins  {
get { return gZhuyins; }
}

private static string Zhuyin  {
get {
pinyin = pinyin.Trim.ToLower;
string mVowel = Vowels.Item(pinyin);
string mYummu = pinyin;

if (!mVowel.Equals(string.Empty))  {
mYummu = mYummu.Substring(mVowel.Length);
}

string mConsonant = Consonants.Item(mYummu);
return string.Concat(mVowel, mConsonant);
}
}

/**////' <param name="pinyins">如 XIAN1 JIN4</param>
//Private Shared Function GetZhuyins(ByVal pinyins As String) As String
// Dim mList As New List(Of String)

// Dim mPinyin As String
// For Each pinyin As String In pinyins.Split(" "c)
// mPinyin = ChineseChar.Zhuyin(pinyin)

// If mPinyin.Equals(String.Empty) Then Continue For

// mList.Add(mPinyin)
// Next

// Return String.Join(" ", mList.ToArray)
//End Function 

}
}
也示例一下:
private void Button5_Click(object sender, System.EventArgs e)
{
LzmTW.Converters.PinYinConverter.ChineseChar t =new LzmTW.Converters.PinYinConverter.ChineseChar('和');

Console.WriteLine("\"和\"为多音字:");
for (int i =0; i <= t.PinyinCount -1; i++) {
Console.WriteLine("拼音:{0,-5},注音:{1}", t.Pinyins(i), t.Zhuyins(i));
}
}
结果:
"和"为多音字:
拼音:HE2 ,注音:hé
拼音:HE4 ,注音:hè
拼音:HE5 ,注音:he
拼音:HU2 ,注音:hú
拼音:HUO2 ,注音:huó
拼音:HUO4 ,注音:huò
拼音:HUO5 ,注音:huo
参考:http://topic.csdn.net/u/20071201/17/290fe247-7021-429b-905b-17e9a8d1fa52.html
4,969

将 Windows\Temp 目录的权限 Network Service 帐户赋予了完全控制的权限

出错快照:

 

“/”应用程序中的服务器错误。


编译错误

说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误消息: CS0016: Could not write to output file 'c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\138641eb\e8d016c8\App_Web_default.aspx.bb4e7940.re_hlwux.dll' -- '拒绝访问。 '

xoyozo 18 年前
6,277

下载地址:http://www.pluralsight.com/tools.aspx

使用很方便,看图就知道:

7,920

在Vista IIS 7 中用 vs2005 调试 Web 项目核心是要解决以下几个问题:

1、Vista 自身在安全性方面的User Account Control (UAC)

2、安装必须的IIS7 组件。

3、Vista 自带的IIS7 跟 IIS 6 在底层都发生了变化,我们如何让IIS7以兼容IIS6 的方式运行。因为VS2005并不支持IIS7。

下面通过截图方式来说明如何配置上述几点,以保证VS2005可以调试 Vista 操作系统中基于IIS的Web 项目。

一、安装必须的IIS7 组件

IIS7 被分成了很多个组件,默认是不安装的,你需要安装这些组件。

下图对应的功能,可以通过以下步骤打开:
开始 --> 控制面板 --> 程序 --> 打开或关闭 Windows 功能

1、VS2005 并不能识别 IIS7 ,要让它识别IIS7, 就需要安装IIS7 的一个插件:IIS6 管理兼容性;

2、IIS 默认安全性:VS2005 中,如果要调试站点的话,必须有“集成 Windows 身份验证”

其他两个,在一些情况下也能会用到:

摘要式身份验证 是使用 Windows 域控制器对请求访问 Web 服务器上内容的用户进行身份验证。

基本身份验证 是要求用户提供有效的用户名和密码才能访问内容。

3、要调试 ASP.net 当然要安装IIS支持 ASP.net 的组件了。

二、配置IIS7

1、IIS7 在安装了上述组件后,一些功能并没有启用,你需要把它启用起来:

下述配置功能你可以在

控制面板 --> 管理工具 -->Internet 信息服务(IIS)管理器 程序中找到

打开 Internet 信息服务(IIS)管理器 后,在中间部分的下部,可以看到 身份验证 配置项,双击就是如下界面:

刚才我们增加的几个身份验证,需要在你要调试的站点上启用。

注意:是你要调试的站点,而不是你要调试的应用程序目录!

2、IIS7 应用程序池的设置

IIS 的应用程序池根据托管管道模式分了两种类型:集成和经典

集成 .NET 模式下,应用程序不应在 <system.web>/<httpModules> 配置节中指定 ASP.NET 模块组件,而应使用 <system.webServer>/<modules> 配置节来加载 ASP.NET 模块组件。

经典 .NET 模式 则是我们以前习惯的IIS 6 的方式,没有上述限制。

毕竟现在 Longhorn Server 离我们还远,我们当然要兼容Window 2003 的IIS6 的模式,所以我们需要修改站点的应用程序池设置,如下图:

我上面的截图是使用了现有的经典模式的应用程序池,你也可以自己先建立一个经典模式的应用程序池,然后再用上图方式配置对应站点使用的这个经典模式的应用程序池。

三、 VS2005 的启动。

由于 Vista 的 User Account Control (UAC)  ,要避免调试中出现没有权限问题,我们应该以管理员身份来运行 Vista.如下图:

5,077

打开注册表编辑器:这可以通过在开始菜单的搜索框中输入“regedit”或同时按下 Win 键 + R 在运行框中输入“regedit”实现;

如果没有关闭 UAC,运行注册表编辑器时 Windows Vista 将会弹出提示窗口,点击确认。

找到如下的注册表分支:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel

注:当Windows Vista使用经典主题时,则应为:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu

如果不存在相应分支,创建之;

创建名为“{871C5380-42A0-1069-A2EA-08002B30309D}”的 DWORD (32位)注册表项;

将其值设为“0”;

刷新桌面后即可看到消失的 IE7 图标重新出现了,单击右键可看到相关的 Internet 浏览设置项。

6,943

帅、将:水平或垂直一次 九宫内

仕、士:对角线一次 九宫内

相、象:对角线两次 不能越障 河界一侧

马:先水平或垂直一次 再对角线一次 不能越障

车:水平或垂直N次 不能越障

炮:水平或垂直N次 不能越障 (该子吃法跳过一个棋子)

兵、卒:未过河时 前移一次 过河后 前左右移一次

胜负:帅或将被杀或被困、认输

和:求和同意、双方都没有进攻的棋子、400步内不分胜负、100步内没有吃子、相同局面多次循环出现

7,236

老总总会随时扔台他朋友的本本叫我杀个毒装个软件什么的,很多都是新机预装 Vista。接触多了终于心痒痒升级自己的 Windows。其实一直想装的,可惜我的光驱只能 CD 刻录,而且跑遍整个萧山都找不到有 Vista 光盘卖,装双系统么又花时间又占空间。幸好一凡家有台记录机,所以趁周末去刻了张盘。第二天急匆匆地跑去公司,花了两个多小时把本本上将40G的东西传到服务器上备份,然后重新分区安装。

之前是有看过远景上关于安装方面的贴子,生怕中间出问题又上不了网就麻烦了。不过还是出问题了,在复制完文件后自动重启,就出现下面的错误:

 

Windows failed to start. A recent hardware or software change might be the cause.

...

If you do not have this disc, contact your system administrator or computer maufacturer for assistance

File: \windows\system32\drivers\tcpip.sys

status: 0x0000221

Info: Windows failed to load because a critical system driver is missing, or corrupt.

 

我没动过任何硬件,出现这样的错误很是摸不着头脑,想到可能的原因有:刻盘时出了问题;需要 SATA 硬盘驱动;内存不兼容……没办法,还是先找台电脑上网查查吧。身边的服务器没无线网卡不能上网,尝试在服务器安装 Nokia PC 套件还不兼容 Windows server 2003,不支持蓝牙连接。还是去其它办公室借电脑上好了。哎,不出我所料,又被逮到帮他们杀毒!汗。在网上找了半天没搜出个结果来,看来用 Vista 的人还不多,出现我的问题的人更少,我只搜到 error info 跟我相同,但 file 不同的贴子,还是没有回答的。

回来,装了两遍还是出现同样的错误,火了,先装个 XP,在 XP 下试试。漫长的等待是用电脑报打发的。。。

OK,XP 装在 D 盘,想检查是不是 SATA 硬盘的缘故,想装了 XP 应该已经有驱动了,就重起通过光盘安装 Vista 到 C 盘,啊哦,老错误。(高手别笑我,这步我都觉得荒谬)

晕,忘了 boot.ini 是在 C 盘的,进不了 XP 了,又再装了遍 XP 到 D 盘。怕了怕了,还是用镜像文件装吧。也不去研究什么原因导致的了,哎不是我的风格,可是时间宝贵呐。

老老实实装完 XP 又用虚拟光驱装入镜像,再次安装 Vista,哎,终于让我揭开她的面纱了!

一天就这么过去了,第二天继续。

Vista 已经基本解决驱动问题了,很省事,不过我还是去 HP 英文官网下了专用的驱动程序。

嗯,开始安装程序。其实 Vista 的 UAC 确实挺烦人的,特别是安装程序的时候,不过我是习惯了“用管理员身份运行”,可突然的黑屏一闪还是会让习惯的人慌一下。

在安装 .msi 程序的时候有时候会提示安装不正常,您的权限需要提升之类的错误,但无法在右键菜单找到“用管理员身份运行”项,我是这么解决的:建一个后缀名为 .cmd 的文件,写入内容:“msiexec /i C:\msi文件的地址”。然后“用管理员身份运行”这个 .cmd 文件就行了。

装完常用软件开始安装 VS 这个大家伙了。

给 C 盘分的 20 个 G 已经用了 12 个了,之前用的是 VS2005,还没装过 VS2008,所以不知道要占多少空间。前几天看过一篇文章是关于在 Vista 下安装 VS 和 SQL Server 的,作者提到的先装 VS 后装 SSMS 出错误的情况,前车之鉴,我先装了 SSMS。

最头痛的要算 IIS7 了。装入 Vista 镜像,控制面板-程序-打开或关闭 Windows 功能,参照一篇文章勾选了相关的安装项,见文。虽然我不需要在 VS2005 下调试程序,但是我暂时不想把程序框架从 2.0 升到 3.5,这几天全国范围寻找 .net 3.5 的空间商未果,真想自己弄台服务器卖空间,早起的鸟应该会有虫吃。我觉得空间商是怕技术这关,毕竟新技术万一出问题很有可能一下子解决不了,作为一个运营商就有可能被要求赔偿损失或吃官司之类的。扯远了。。。

装完 IIS7,试着架设我的 2.0 网站,经典应用程序池,身份验证,一切配置完毕,结果运行时还是出现了“IIS Worker Process 已停止工作”的对话框,偶尔出现,而且出现几次后,应用程序池就自动关闭了,用纯 HTML 站测试也一样,又把 IIS 卸了装,还是一样。试了两天没结果,希望各位达人指点!

这几天用 Vista 眼睛受不了,漂亮的外表还是很伤人的,就跟玫瑰有刺同一个道理。Areo,雅黑,梦幻桌面,让我的眼睛云里雾里的,害我拼命滴眼药水。

不过总的来说,I love vista! 推荐配置不错的朋友可以考虑升级。

xoyozo 18 年前
7,003