Skip navigation.

极湖

无不用其“极”

Posts tagged with "WINDOWS"

Windows 下构建 PHP 开发环境: WampServer + Xdebug

,

1. 下载 WampServer
网址: http://www.wampserver.com/en/download.php

2. 安装 WampServer
Windows 的标准安装步骤,连续点“下一步”即可。

3. 下载 Xdebug
网址: http://xdebug.org/download.php

页面上有好几个版本,刚开始一定会被迷惑,不知道该用哪个版本。
经过试验,我的环境(Windows XP)最终能用的是 5.3 VC6 (32 bit)。
(Apache 以外的服务器需用 nts 版本)

下载之后把文件移动(或复制)到 WampServer 的 php 的 ext 目录。

4. 编辑 php.ini
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
追加以下内容:
extension=php_xdebug-2.0.5-5.3-vc6.dll

;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
追加以下内容:
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000


5. 重新启动 WampServer 的 apache。

把 Windows 的 Notepad 换成 Notepad2

,

Notepad2 很小巧,然而功能强大,和 Windows 自带的 Notepad 相比,说有天壤之别也不为过。

网上有不少文章介绍如何把 Windows 的 Notepad 换成 Notepad2,步骤都比较复杂,而且成功率不高,尤其是 XP SP2 以后的版本。

经我验证,这个网页上介绍的方法比较好使。方法是在 Notepad2 的文件夹内做一个批处理文件,然后执行。原文介绍的批处理如下(注释已译):
@echo 替换 NOTEPAD.EXE 为 notepad2.EXE ...
REM
REM 1. 阻止系统自动恢复文件
attrib -r -h -s %systemroot%\system32\dllcache
del %systemroot%\system32\dllcache\notepad.bak.exe
ren %systemroot%\system32\dllcache\notepad.exe notepad.bak.exe
attrib +r +h +s %systemroot%\system32\dllcache
attrib -r -h -s %systemroot%\ServicePackFiles\i386
del %systemroot%\ServicePackFiles\i386\notepad.bak.exe
ren %systemroot%\ServicePackFiles\i386\notepad.exe notepad.bak.exe
attrib +r +h +s %systemroot%\ServicePackFiles\i386 

REM
REM 2. 备份 Windows 和 System32中 的 Notepad
del %systemroot%\system32\notepad.bak.exe
copy %systemroot%\system32\notepad.exe %systemroot%\system32\notepad.bak.exe
copy %systemroot%\notepad.exe %systemroot%\notepad.bak.exe
REM
REM 3. 拷贝 notepad2 并覆盖 Windows 和 System32中 的 Notepad
del %systemroot%\notepad.exe
copy notepad2.exe %systemroot%\notepad.exe
copy notepad2.exe %systemroot%\system32\notepad.exe
REM
@echo 替换完成。
@echo
@echo 注: 如果 Windows 文件保护的对话框弹出,请按“取消”。

清除Windows系统垃圾的批处理

, ,

偶然在网上发现的批处理脚本,感觉有用且会常用,所以贴一个在这儿。
@echo off
echo 正在清除垃圾文件,请稍等...
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\temp & md %windir%\temp
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
echo 垃圾文件清除完毕!
echo. & pause

批量删除 Thumbs.db 文件的 VBScript脚本

,

代码如下:
Dim Shell, FSO, objRootFolder
Set Shell = WScript.CreateObject("Shell.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set objRootFolder = FSO.getFolder(Shell.BrowseForFolder(0, "请选择文件夹。注意:所选文件夹以下的 Thumbs.db 文件将被全部删除!", &h11))

If deleteFilesByName(objRootFolder, "Thumbs.db") Then
    MsgBox RootDir + "以下的所有 Thumbs.db 文件已被删除!"
Else
    MsgBox "发生错误!"
End If

'根据文件名删除文件的递归函数
Function deleteFilesByName(objRootFolder, strName)
    If (objRootFolder is Nothing) Then
        deleteFilesByName = False
        Exit Function
    End If
    
    Dim objFolder, objFile
    For Each objFile in objRootFolder.files
        If objFile.Name = strName Then
            objFile.Delete True
        End if
    Next

    For Each objFolder In objRootFolder.SubFolders
        deleteFilesByName objFolder, strName
    Next
    
    deleteFilesByName = true
End Function

用 WinDbg 分析和排除 Windows 系统故障

, ,

用 WinDbg 分析和排除 Windows 系统故障

最近工作用的电脑频繁出故障,出现系统突然崩溃,重启动的时候总是检查磁盘等现象。从现象上看,似乎是磁盘出了问题,因为这台电脑已经用了四年以上,磁盘老化要报废也在情理之中。

上周末清理了一下电脑,并装上XP SP3 (RC2版),之后,系统好像稳定了一些,可还是有错误发生。在还没有确认硬盘报废之前,我觉得还是该查找和修复系统错误,于是在网上查找相关信息。

在系统目录下发现了一个叫 Minidump 的目录,下面有一些后缀是 .dmp 的文件:

2008/03/21 22:20 90,112 Mini032108-01.dmp
2008/03/26 17:44 90,112 Mini032608-01.dmp
2008/03/27 09:21 90,112 Mini032708-01.dmp
2008/03/27 09:22 90,112 Mini032708-02.dmp
2008/03/27 09:23 90,112 Mini032708-03.dmp
2008/03/27 09:51 90,112 Mini032708-04.dmp
2008/03/27 10:28 90,112 Mini032708-05.dmp
2008/03/28 13:39 90,112 Mini032808-01.dmp
2008/03/28 13:42 90,112 Mini032808-02.dmp
2008/03/28 13:43 90,112 Mini032808-03.dmp
2008/03/28 18:42 90,112 Mini032808-04.dmp
2008/03/31 21:09 90,112 Mini033108-01.dmp
2008/03/31 21:11 90,112 Mini033108-02.dmp


经确认,这些是系统出故障时候生成的 Dump 文件。

找到一篇文章《How to solve Windows system crashes in minutes》,教你怎么用 Windbg 来分析Windows 的 Dump 文件。

文章很长,连 Windbg 的安装都介绍了,我只是粗略的看了一下,最后找到两个命令:

!analyze –v
lmv


文章主要就是介绍怎样用这两个命令分析 Dump 文件。

启动 Windbg,选择 File -> Open Crash Dump,之后选择一个 Dump 文件,载入,接下来就用命令 !analyze –vlmv 进行分析。

目前发现两个问题,一个由 d347bus.sys (Daemon Toools 的虚拟驱动)引起,另一个由 kmixer.sys (应该是是声卡驱动)引起。

具体的系统错误,目前还在查找分析,也不知道能否修复。以上分析系统错误的方法,以后也有用,因此记录一下。

批量重命名工具 —— Bulk Rename Utility

,

找到一个免费的批量重命名工具,名叫 Bulk Rename Utility,感觉非常好,想要的功能基本都有了。

这个免费小工具有个专门的网站,地址:
http://www.bulkrenameutility.co.uk/

这里是下载页面

XP 系统修复记录

,

领导的IBM笔记本不能启动了,让我去看一下,原来,XP不能启动,启动时候出消息:

因以下文件的损坏或丢失, Windows无法启动: \Windows\System32\Config\system

以前没遇到过这样的怪事,于是在网上查找解决办法。很快就找到,方法如下:

1. 用 XP 的安装盘启动,进入修复模式。 (R = Repair)
2. 备份 \Windows\System32\Config\system
3. 拷贝 \Windows\repair\system 文件到 \Windows\System32\Config\system
4. 重新启动。


于是照做,结果,看到XP旗帜飘扬的启动画面,以为就这样解决了。没想到更大的麻烦来了,进入XP系统,就报错:“Lsass.exe出错,需要重设密码...”然后机器自动重启,如此循环往复好几次,没办法,只有再上网查找解决办法。结果是这样:

copy c:\windows\repair\system c:\windows\system32\config\system
copy c:\windows\repair\software c:\windows\system32\config\software
copy c:\windows\repair\sam c:\windows\system32\config\sam
copy c:\windows\repair\security c:\windows\system32\config\security
copy c:\windows\repair\default c:\windows\system32\config\default


也就是不能只拷贝 system 文件,还需要拷贝 software、sam、security、default,总共五个文件。当然,拷贝之前要备份。

重新用 XP 的安装盘,进修复模式,这次遇到麻烦事了,需要 Administrator 的密码,输三次不对,就重新启动,每次从 XP 安装盘启动到选择修复模式,都要花很长时间。几次重启,都没能提供正确的 Administrator 密码,这就到了考验人的时候了。

上网找了一下,有不少解决丢失XP管理员密码的办法,下面这个站点提供的几个方法看上去不错:

http://www.petri.co.il/forgot_administrator_password.htm

照这个网页的说明,我做了两张CD,一张 EBCD,一张 Austrumi。结果,用这两张CD启动机器,都没能解决问题。EBCD 上提供的修改 Administrator 密码的工具似乎没有正常工作。

最大的问题是,不能正常访问NTFS的文件系统。

没办法,又作了两张CD, 一张 UBCD,一张 WindowsPE

(后来看介绍,一个叫 BartPE 的东东似乎更强一些。)

最终起作用的是 WindowsPE,通过光盘启动系统,就能在DOS窗口下任意拷贝文件。拷贝了上述的五个文件之后,XP系统启动成功。

然而,问题并未完全解决,系统重启之后,原来机器的用户设置等,都丢失了。还有一些硬件驱动也要重装,最奇怪的是,居然不能新建网络连接,不过插上网线却能访问网络。

接下来还遇到很多问题,没办法,通过网络,把机器上的数据拷贝到别的机器上,然后用IBM笔记本提供的恢复功能把机器恢复到初始状态。

机器恢复了,我也累坏了。

虽然很累,还是要记录一下这个过程,也许今后还能参考,不过,最好还是不要再遇上同样的系统故障。

VB 程序截获 Windows Shell 的输出

,

十分简单:
  Dim wsh As New WshShell
  MsgBox wsh.Exec("hostname").StdOut.ReadAll

* 需要引入“Windows Script Host Object Model”库

Windows启动检查器

为了管理 Windows 的启动程序,找到一个叫 Startup Inspector 的程序,免费,用过之后觉得很好。

Startup Inspector 的下载地址:
http://www.windowsstartup.com/download.php

执行外部程序并取得/输出返回值的VBSsript例子

,

Option Explicit

Dim ReturnCd, WSH
Set WSH = CreateObject("WScript.Shell")

Dim bWaitOnReturn
bWaitOnReturn= True
ReturnCd = WSH.Run("hostname", 0, bWaitOnReturn)
WScript.Echo ReturnCd
Set WSH = Nothing
WScript.Quit(ReturnCd)


[2008.01.28补充]同时取得进程ID、输出内容、返回值的代码如下:
Dim WSH, ExecObj
Set WSH = CreateObject("WScript.Shell")
Set ExecObj = WSH.Exec("hostname")
WScript.Echo "pid:" & ExecObj.processID
WScript.Echo "stdout: " & ExecObj.StdOut.ReadAll
WScript.Echo "exit: " & ExecObj.exitCode
WScript.Quit(ExecObj.exitCode)
Set ExecObj = Nothing
Set WSH = Nothing

November 2009
S M T W T F S
October 2009December 2009
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30