关于盘找找vb.net教程的信息

新手关于VB.net的问题您好,在Visual Basic.NET中,是没有像这样的文件I/O操作的,一般都是通过System.IO.StreamReader和System.IO.StreamWriter类,System.IO.BinaryReader和System.IO.BinaryWriter类来读写文件以及利用My.Computer.FileSystem类读写文件,利用System.IO.Filestream类来创建文件,通过引用Microsoft Scripting Runtime来执行文件(夹)和驱动器的特殊操作,常用的是System.IO.StreamReader和System.IO.StreamWriter类 。
例如说要读取一个文件,我们可以利用System.IO.StreamReader类编写一个方法(也就是函数),但是首先要在当前类的开头添加一个引用,引用名称:System.IO,添加引用的代码如下
Imports System.IO
添加引用之后,就在当前类的内部创建方法:
Private Function ReadFile(ByVal FileURL As String) As String
Dim sr As StreamReader = New StreamReader(FileURL)
ReadFile = sr.ReadToEnd()
sr.Close()
sr = Nothing
End Function
示例说明:
该方法是一个返回String(字符串)数据的函数 , FileURL作为参数是用来存放需要访问的文件的URL , 当然,要获取一个文件的URL,就是利用这一句代码实现的:
Dim sr As StreamReader = New StreamReader(FileURL)
当获取了URL之后,就要对文件进行读取操作了,然后将读取的结果返回给方法:
ReadFile = sr.ReadToEnd()
读取文件完毕之后,要对文件执行关闭操作:
sr.Close()
当然别忘了清理资源:
sr = Nothing
StreamReader类可以从流或文件中读取字符 , 在创建StreamREader类的对象时,可以指定一个流对象 , 也可以指定一个文件URL,创建对象后就可以调用他的方法,从流中读取数据,其常用方法如下:
Peek:返回下一个可用字符,但不使用它 。
Read:读取输入流中下一个字符或一组字符并移动流或文件指针 。
ReadBlock:从当前流中读取最大数量字符并从index开始将数据写入buffer 。
ReadLine:从当前流中读取一行字符并将字符作为String返回 。
REadToEnd:从流的当前位置到末尾读取流 。
Close:关闭打开的对象,释放资源 。
注:流,一种新的数据格式,这种格式可通过System.IO命名空间下的类访问 。流用Stream类表示,所有的流都是从这个类中继承的 。流向用户提供了一个一般的数据视图 , 隐藏了操作系统和底层设备的实现细节,所有的流都支持读写操作 。在打开文件时将返回对应的流对象,用户可以对流对象进行读写操作 。
如果要对文件执行按行读取操作,这时就会用到枚举 , 这时候 , 代码就要更改一下了:
Private Function ReadFile(ByVal FileURL As String) As String
Dim sr As StreamReader = New StreamReader(FileURL)
For Each fLine As String In sr.ReadToEnd()
Line = sr.ReadLine()
ReadFile = ReadFilefLine
Next sr.ReadLine
sr.Close()
End Function
示例说明:
For Each…Next:派生于For…Next循环,用于枚举一系列对象中的成员,而这些对象组成集合,如果集合中至少存在一个元素 , 程序就会静茹For Each块执行 。其格式如下:
For Each 元素 [As 数据类型] In 元素集合
[循环体]
[Exit For]
[循环体]
Next [元素]
比如:
Dim CountNumber As ULong = 0
Dim FolderName() As String = New String() {" "}
For Each strFolder As String In My.Computer.FileSystem.GetDirectories("C:\")
CountNumber = CountNumber1
ReDim Preserve FolderName(1 To CountNumber)
FolderName = strFolder
Next strFolder
注:My.Computer.FileSystem.GetDirectories:主要用来枚举指定目录的子文件夹 。
Preserve:主要用来避免重定义数组而不损失数组元素的原有数据 。
另外,利用My.Computer.FileSystem也可以实现文件的读取 , 其代码如下:
Dim fpReader As String = My.Computer.FileSystem.ReadAllText("C:\test.txt")
示例说明:
定义一个字符串变量利用My.Computer.FileSystem.ReadAllText来实现对“C:\test.txt”的读取 。
如果是已经编码的文本,则可以使用My.Computer.FileSystem对象中的ReadAllText方法并提供路径和文件编码类型,将文本写入字符串变量中,例如:
Dim fpReader As String = My.Computer.FileSystem.ReadAllText("C:\test.txt", _
System.Text.Encoding.UTF32)
当然,System.Text.Encoding的成员不止一个,它还有如下成员:
System.Text.Encoding.UTF8
System.Text.Encoding.UTF16
System.Text.Encoding.ASCII
System.Text.Encoding.Unicode
这些是常见的成员 , 也是主要的成员 。
另外,利用My.Computer.Filesystem类无法实现文件的行操作,还有,如果您的计算机未安装完整的Microsoft.NET Framework Runtime , 则无法实现这种操作!
写入文件的操作同样简单,Visual Basic.NET 允许用户使用StreamWriter来对文件写入内容 , 下面就让我们来创建一个子例程,来实现文件的写入:
Private Sub WriterFile(ByVal FileURL As String, ByVal FileCon As String)
Dim sr As StreamWriter = New StreamWriter(FileURL)
sr.Write(FileCon)
sr.Close()
sr = Nothing
End Sub
示例说明:
sr.Write(FileCon):将FileCon写入文件FileURL之中 。
另外 , StreamWriter常用方法如下:
WriteLine:向流中写入一行,后面跟结束符 。
Write:写入流,向流对象中写入字符并移动流或文件指针 。
Close:关闭打开的对象,释放资源 。
附:Visual Basic 6.0文件操作解说:
打开: Open 文件名 For Input | Output | Append As [#]文件号
Input打开读入,文件不存在报错 。Output打开覆盖写入,文件不存在则创建 。Append打 开追加写入 , 文件不存在则创建 。
读: Line Input #文件号, 字符串变量
读一行数据存入字符串变量,数据包括空格、Tab、等,不包括回车符和换行符,所以要显示文件的换行效果 , 要手动添加回车符和换行符(vbCrLf)
Input #文件号, 变量1[, | ;] [变量2]...
这种方式可以存入多个变量,而且变量类型不限于字符串型 。
写: Print #文件号, 参数1[, | ;] [参数2]...
将各参数逐个写入文件 。参数间用逗号隔开时,文件中相应插入多个空格;用分号隔开时 , 插入一个空格 。可以用Spc(n)、Tab(n)等进行排版 。
Write #文件号, 参数1[, | ;] [参数2]...
这种写入方式将自动添加界定符,对不同参数的类型加以界定 。
Visual Basic 6.0文件操作函数:
Seek: Seek(文件号)
返回文件正在访问的位置 , 返回值为长整型 。对顺序文件和二进制文件 , 返回值以字节为单位;对随机访问文件,返回值以记录号为单位 。
Seek: Seek [#]文件号,位置
定位文件到指定位置 。位置单位同上所述 。
Input: Input (字节数,[#]文件号)
从文件的访问当前位置读入指定字节数的数据 。仅适用于顺序文件和二进制文件 。
EOF: EOF(文件号)
判断文件的访问位置是否在文件尾,如果是,返回True,否则,返回False 。
LOF: LOF(文件号)
返回文件长度 , 单位为字节 。
FileLen: FileLen (文件名)
返回文件名对应文件的长度,单位是字节 。该函数取磁盘文件标识中的长度,即文件打开前的长度,可以取未打开的文件长度 。
GetAttr: GetAttr (Pathname)
返回指定文件或文件夹的属性 。
FileAttr: FileAttr (文件号)
返回文件号对应文件的打开方式 。
GetDateTime: GetDateTime (Pathname)
返回文件被创建或修改的最后日期和时间 。
Free: FreeFile[(0|1)]
返回未被占用的文件号,Free或Free(0)返回1~255之间未占用的文件号,Free(1)返回256~511之间未占用的文件 。
Dir: Dir (Pathname [,Attributes])
测试指定路径是否有某文件,Attributes附加文件属性条件,取值vbNormal、vbReadOnly、vbHidden、vbSystem、vbVolume、vbDirectory 。
Kill: Kill (文件名)
删除指定文件,文件名可包含路径 。
FileCopy: FileCopy 源文件,目标文件
拷贝文件 。
Name: Name 旧文件名 As 新文件名
文件重命名 。前后路径不一致时,操作为移动文件并重命名 。
MkDir: MkDir path
新建文件夹 。
RmDir: Rmdir path
删除文件夹 。
ChDrive: ChDrive Drive
改变当前驱动器 ChDrive "D"
CurDir: CurDir [(driver)]
返回当前工作路径,指定driver则返回目标驱动器的当前工作路径 。
举例:
'新建文件,并写入数据,关闭
Open "a.txt" For Output As #1
Print #1, "ABCDEFG"; vbCrLf; "HIJK"
Close #1
'打开文件,并全部写入新文件,关闭
Open "a.txt" For Input As #2
Open "b.txt" For Output As #3
Dim str As String
While (Not EOF(2))
Line Input #2, str
Print #3, str
Wend
Close
注:关于Visual Basic 6.0的文件操作资料来自于
如果您觉得我的回答帮助了您解决难题,别忘了采纳哦 , 如果我的回答未能解决您的问题,您可以在互联网上寻找更多的解决方案!
VB6.0快速全盘查找文件全盘查找的我没有,不过我这有以前编的单盘查的程序,自已加个自动获取盘符的程序改改.
Private Sub Command1_Click()
Dim SearchedPath As String
Dim SearchedFile As String
SearchedPath = InputBox("输入要搜索的路径"Chr(13)Chr(10)"例如c:\windows")
SearchedFile = InputBox("输入要搜索的文件名"Chr(13)Chr(10)"例如*.exe abc.*")
'FirstSearch = True
AllSearch SearchedPath, SearchedFile
End Sub
Public Const MAX_PATH = 260
Public Const FILE_ATTRIBUTE_DIRECTORY = H10
Public Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Public Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
Public Declare Function FindFirstFile Lib "kernel32" Alias _
"FindFirstFileA" (ByVal lpFileName As String, _
lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function FindNextFile Lib "kernel32" Alias _
"FindNextFileA" (ByVal hFindFile As Long, _
lpFindFileData As WIN32_FIND_DATA) As Long
Public Declare Function FindClose Lib "kernel32" (ByVal _
hFindFile As Long) As Long
Public Declare Function SetCurrentDirectory Lib "kernel32" Alias _
"SetCurrentDirectoryA" (ByVal lpPathName As String) As Long
Sub AllSearch(sPath As String, sFile As String)
Dim xf As WIN32_FIND_DATA
Dim ff As WIN32_FIND_DATA
Dim findhandle As Long
Dim lFindFile As Long
Dim astr As String
Dim bstr As String
lFindFile = FindFirstFile(sPath"\"sFile, ff)
'Debug.Print sPath"\"sFile
If lFindFile0 Then
Do
Form1.List1.AddItem ff.cFileName
Loop Until (FindNextFile(lFindFile, ff) = 0)
FindClose lFindFile
End If
'Debug.Print Form1.List1.ListCount
astr = sPath"\""*.*"
findhandle = FindFirstFile(astr, xf)
DoEvents
Do
If xf.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY Then
If Asc(xf.cFileName)Asc(".") Then
bstr = sPath"\"Left$(xf.cFileName, InStr(xf.cFileName, Chr(0)) - 1)
'Debug.Print bstr
AllSearch bstr, sFile
'lFindFile = FindFirstFile(bstr, ff)
'Debug.Print bstr
'Do
'Form1.List1.AddItem ff.cFileName
'Debug.Print ff.cFileName
'ff.cFileName = ""
'Loop Until (FindNextFile(lFindFile, ff) = 0)
'FindClose lFindFile
End If
End If
xf.cFileName = ""
Loop Until (FindNextFile(findhandle, xf) = 0)
FindClose findfile
End Sub
****
Public Const MAX_PATH = 260
这行之后拷到一个新建公用模块里去
*******
vb.net 磁盘文件列表 , 界面如图,在.net下如何实现?预先准备三个图标文件,用于树型控件中显示磁盘符号和文件夹的图像之用 。
1、窗体上添加控件如下:
组合框控件 ComboBox1,树型控件 TreeView1,列表框控件 ListBox1,图像列表控件 ImageList1 。
选中TreeView1,设置其ImageList属性为ImageList1 。
2、设置属性
选中图像列表控件 ImageList1,在属性窗口里,选中属性Images,单击三个小点按钮,出现图像集合编辑器窗口,单击[添加按钮],一一把准备好的图标文件进行添加,注意先后次序,如果不符合要求可以通过上下移动按钮重新改变次序 。完成后单击[确定] 。
运行图如下:
完整代码如下:
Imports System.IO
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'添加系统所有磁盘目录符号
For Each MyDrive As String In Environment.GetLogicalDrives()
ComboBox1.Items.Add(MyDrive)
Next
'显示第一个磁盘符号
ComboBox1.Text = ComboBox1.Items(0)
End Sub
'递归过程添加目录树
Public Sub AddDirectory(ByVal strFatherPath As String, ByVal strPath As String, ByVal nodeFather As TreeNode)
Dim i As Integer
Dim Mynode As New TreeNode
'先添加本目录
Mynode.Text = Strings.Replace(strPath, strFatherPath"\", "", , 1)
'为节点指定未被选中时显示的图标
Mynode.ImageIndex = 1
'为节点指定被选中时显示的图标
Mynode.SelectedImageIndex = 2
nodeFather.Nodes.Add(Mynode)
Application.DoEvents()
Try
Dim str() As String = Directory.GetDirectories(strPath)
'递归遍历该目录的子文件夹
For i = 0 To str.GetUpperBound(0)
AddDirectory(strPath, str(i), Mynode)
Next
Catch ex As Exception
Debug.WriteLine(ex.Message)
End Try
Mynode = Nothing
End Sub
'根据给出的盘符添加目录树
Private Sub AddRootDirectory(ByVal DiscSymbol As String)
Dim Nynode As New TreeNode
'先把磁盘盘符添加到树中
TreeView1.Nodes.Clear()
Nynode.ImageIndex = 0
Nynode.Text = DiscSymbol
Nynode.SelectedImageIndex = -1
TreeView1.Nodes.Add(Nynode)
Dim i As Integer
'获取磁盘根目录下的文件夹
Dim str() As String = Directory.GetDirectories(DiscSymbol"\")
For i = 0 To str.GetUpperBound(0)
'调用递归过程遍历该文件夹里的所有子文件夹,并添加到树型控件
AddDirectory(DiscSymbol, str(i), Nynode)
Next
Nynode = Nothing
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
'根据磁盘符号的变更,显示根目录里的文件
ListBox1.Items.Clear()
For Each MyFile As String In System.IO.Directory.GetFiles(ComboBox1.Text)
ListBox1.Items.Add(MyFile)
Next
'根据磁盘符号的变更,重新显示目录树
Dim DiscSymbol As String
DiscSymbol = Microsoft.VisualBasic.Left(ComboBox1.Text, Len(ComboBox1.Text) - 1)
Call AddRootDirectory(DiscSymbol)
End Sub
'递归过程根据子目录寻找上级目录名--从而构成完整的目录路径
Private Sub AllPath(ByVal ThisNode As TreeNode, ByRef MyPathName As String)
If ThisNode.Level1 Then
'该节点层数大于1,其父节点不是磁盘根目录
MyPathName = ThisNode.Parent.Text"\"MyPathName
Dim MyNode As TreeNode = ThisNode.Parent
Call AllPath(MyNode, MyPathName)
Else
'该节点层数等于1,其父节点就是磁盘根目录
MyPathName = ComboBox1.TextMyPathName
End If
End Sub
Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
'为了搜索选中的节点对应目录的文件,需要组成全路径
Dim MyAllPathName As String = TreeView1.SelectedNode.Text
Dim MyNode As TreeNode = TreeView1.SelectedNode
If TreeView1.SelectedNode.Level = 0 Then
'如果选中的是根节点
MyAllPathName = ComboBox1.Text
Else
'如果选中的是非根节点,调用递归过程组成全路径
Call AllPath(MyNode, MyAllPathName)
MyAllPathName = MyAllPathName"\"
End If
'根据路径 , 搜索文件名并显示
ListBox1.Items.Clear()
For Each MyFile As String In System.IO.Directory.GetFiles(MyAllPathName)
ListBox1.Items.Add(MyFile)
Next
End Sub
End Class
如何把VB.net平台上的程序转换为windows上可直接运行的程序?如果你把VB.net平台上盘找找vb.net教程的程序转换为windows上可直接运行盘找找vb.net教程的程序,你是不是可以考虑将其转化成安装软件,这样到任何机器上都能使用不是吗盘找找vb.net教程??如果是这样的话 , 你要在你的项目中添加一个安装工程,因为我用的是日语版的,所以可能名称上有些不同,应该和中文版的差不多,你可以参照按以下步骤来做:
文件—〉添加(追加)—〉新项目的添加—〉选择“其盘找找vb.net教程他的项目种类”当中的第一个子选项,大概是叫“SetUp和配置”—〉选择右边那个有光盘的图标的类型“SetUp Project”—〉在Textbox里面写你喜欢的Project名字(比方叫“Test”),选择文件夹的路径—〉生成之后 , 会出现File System的界面—〉此时 , 在右侧的项目所有文件的总揽里面(Solution什么什么的)出现盘找找vb.net教程了一个刚才命名的安装工程(按照刚才比方,这个安装工程就叫“Test”)—〉右键点击那个安装工程—〉Build一下—〉成功(程序不能出错)—〉到你刚才的路径中找到文件夹(“Test”)双击进入—〉Release文件夹双击进入—〉看到那个.EXE文件了吗(setup.exe) , 就是你想要的 。
如何用VB.net 写注册表我来告诉大家什么是纯绿软件--(希望无知者不要再胡说八道了)
有人说:
还有哪些所谓写绿色软件的人是不懂windows编程,根本就写不出注册的过程 。所以自我安慰的叫绿色软件 。不知大家注意没有绿色软件是不可以在天加删除中删掉的 。只要它运行就会产生很多拉圾,而且是到处乱放,这就是为什么容易出问题的原因所在 。
我只能说,这样说话的人是个电脑肓 。
或是根本不懂得绿色软件的含义 。
绿色软件有如下严格特征:
1、不对注册表进行任何操作(或只进行非常少的,一般朋友能理解的操作,典型的是开机起动 。少数也进行一些临时操作,一般在程序结束前会自动清除写入的信息) 。
2、不对系统敏感区进行操作,一般包括系统起动区根目录、安装目录(windows目录)、程序目录(Program Files)、帐户专用目录 。
3、不向非自身所在目录外的目录进行任何写操作 。
4、因为程序运行本身不对除本身所在目录外的任何文件产生任何影响 , 所以,根本不存在安装和卸载问题 。
5、程序的删除,只要把程序所在目录和对应的快捷方式删了就可以了(如果你手工在桌面或其它位置设了快捷方式) , 只要这样做了,程序就完全干净地从你的电脑里删去了 , 不留任何垃圾 。
以上就是绿色软件的特征 。
对于编程人员来说,做一个绿色软件不难,做一个非绿色软件也不难,但是为什么那么多软件不做成绿色的呢?下面作一些讲解:
一、大型软件公司的大型软件为什么不做成绿色的:
1、大型软件公司并非没有能力做出绿色软件,但它们的软件涉及的方面过多 , 需要对系统原有的一些设置进行改动,以使电脑按照软件设计要求进行操作 。以PhotoShop为例,它就需要在注册表里添加很多种格式文件的默认打开方法为PhtoShop.exe,以便大家双击此类文件后就自动打开PhotoShop以便编辑 。
2、为了更好的为一些对电脑知识不是很了解的朋友进行一些自动设定 。还是以PhotoShop为例,这儿已经有朋友发布了解压即可用的,但是,还是不少的朋友,连解压也不会,解压后都不知道点哪个文件开始正常运行,也不知道怎么在桌面上建快捷方式 。就算别人为他做完了上面的事,要是有一天,他不想要PhotoShop了 , 也不知道原来安装的程序在哪个目录,怎么删去,甚至不知道如何删除快捷方式,更别说如何完全干净的删除了 。做成安装版就可以自动为使用者完成上面的事了 。
(特别说明:上面对PhotoShop的举例,只是用它来举例罢了,其实网上流行的解压即可用的PhotoShop也不是严格的绿色软件,其运行还是会写注册表的,如果不正常的使用它,注册表里还是会留下垃圾的,不过,这种垃圾对你的电脑影响不是很大,会的朋友可以手动删除这些垃圾)
二、做成安装软件很难吗?那些所谓写绿色软件的人是不懂windows编程,根本就写不出注册的过程吗 。
1、我只能说,某些人的这种说法是一种非常不负责任的说法 。其人根本不懂得编程,可笑而幼稚 , 只能以电脑肓来称呼 。
2、现在流行的各种编程软件分三大类:
A、第一类是微软出的编程软件 。
有Visual Studio系列(流行版本为6.0)以及新出不是很久的VS.NET系列,它们都自带了安装发布功能 。特别是Visual Studio中的VB做出的东西,如果不发布,或不进行相关的处理,在别的没有安装VB的机器上是根本运行不起来的 , 因为VB编译出来的程序在根本上是伪编译,其指令通过VB运行库转译后运行,没有VB运行库的机器是根本无法正常运行此类程序的 。当然了,有经验的朋友可以手工把运行库复制入相应的目录中,或是和VB做出的程序放在一起 。其它的Visual Studio做出的程序有的有类似的上述情况 。
在微软出品的VS.NET中,VS.NET兼容了多种编程语言,但按其说法,最终的代码其根本实质会变成一致 。但是它做出的也同样是伪代码,也就是说,其代码不是根本上的机器二进制代码,不对机器进行直接指令指示,而是向.NET运行环境(NET Framework接口)发出指令,而由NET Framework转译指令为机器代码,再进行持行 。这就要求你的机器上安装了NET Framework 。NET Framework在win95/win98/windows2000上默认是没有安装的,如要安装,需要从网上下载或其它方式得到后安装 。(微软官方有下载,大家也可以使用windows updata得到) 。XP、windows 2003已集成 。最后要说的是,微软宣言,要将原来的API接口(windows一直使用的标准编程接口)作废,改用.NET接口,故.NET编程方式可能是将来的标准方式 。VS.NET系列的软件也集成了通用安装发布软件 , 只要正确掌握它 , 就能很好的做出楼主所谓的安装程序 。
B、第二类软件是大名鼎鼎的Borland公司出品的编程软件,它也包括两大系列 。即API系列和.NET系列 。其.Net系列的情况和VS.NET是类似的 。而其API的情况就有些不同了 。
Borland的Borland CBuilder和Borland Delphi是两种非常流行的针对win进行API编程的编程环境 。他们也带有install shield,可以说是编程人员必学的 。不过,很多的稍简单的程序,编制者并不用它,因为,使用Borland CBuilder/Delphi开发出来的程序,只要正确设定几个参数,编译后得出的程序就可以在几乎所有版本的win中很好的直接运行了,当前,前提是,没有使用有特殊要求的第三方控件,或某些必要特别设定的数据源(BDE等) 。而且,稍熟练的编制者可以直接在程序中通过程序自行进行一些简单的环境设定,如写注册表(关联文件、开机起动)、利用资源文件的方式向重要的目录写入文件,注册组件等等,可以说一点儿也不难 。
C、第三类是一些比较偏的编程语言了,如易语言等,使用的人很少,本人很老实的说,具体情况我也不是很了解 。
三、为什么一些个人的简单的软件会做成非绿色的:
1、编写者水平太低 。低到只会使用微软的VB等,虽然做出的东西也值得一用,但是不知道怎么把它变成绿色的,只能依*VB等本身的功能以保证程序的正常运行 。
2、编写者懒,写出程序后想,只要程序能正常让别人用就可以了 , 不值得太费脑子,依*VB等本身的功能发布吧,反正这样保险 。
3、编写者水平不低,也不懒,但是它的程序用到了一些第三方控件 , 这些控件需要发布安装才能正常运行(需要注册特定的.DLL,需要把一些文件放到特定的位置,如典型的 , 要放入windows下的system32目录中 。)
4、编写者为一些水平实在太低的人考虑 , 为了那些人的方便 , 如典型的《笨笨钟》就是此类 , 《FoxMail》、《winamp》也是此类 , 当然,FoxMail、《winamp》是写注册表的,通过其主程序进行一些环境的设定,严格上来说,也不是纯绿的 。
5、编写者有一些特定的,不想为人知的东西要放入你的机器 。比如典型的《阿达连连看》就是这样,它要把一些特定的与注册相关的东西放入你的windows目录,而且不想被人发现 。又如网际快车的某些版本,它要把广告程序代码放入你的windows安装目录 。
6、编写者有恶意,它的程序其实捆绑了木马、病毒等(对这一类的就要非常小心了),在安装的过程中这些恶意的程序就会释放出在,不知不觉中潜入你的计算机 。
四、是否可以做出功能复杂 , 但又是严格意义上的纯绿软件:
答案是非常肯定的 , 因为,其实我们正在使用的很多程序都是纯绿的,特别是很多的游戏,虽然它们也要安装后才能运行 , 其实,你把它们安装后的目录放在别的机器上也一样的可以使用,并不必再次安装 , 其安装的意义就是***编写者为一些水平实在太低的人考虑***,如《三角洲》、《魔兽争霸III》 。特别如网络游戏《传奇》(这个程序写的是真的很经典了,决对纯绿)等等著名的游戏都是如此 。其需要设定的环境记录可以不写在注册表内,而利用*.INI文件来记录 。我不知道有几个人有胆子说编写这些程序的人水平低下 。
五、综上所述:
1、要做出一个纯绿色的软件,并不是很难,当然,可能要求编制者更多的依*自已去写代码(在必要情况下),在程序涉及方面比较多的情况下 , 可能给编制者加重很多的工作量 。而要做一个非纯绿的软件 , 那就更容易了,往往可以利用编写器的一些自带功能自动完成 。
2、纯绿的不带安装功能的软件非常适合于对电脑比较熟悉的朋友使用,而绿色带安装的软件适合于所有人使用 。而自以为对电脑很熟的朋友往往更喜欢不带安装功能就可以用的 。原因有如下:带安装的软件往往会有反安装程序,如果安装目录被人为删去,反安装程序或一些相关注册表信息往会留在机器中,成为垃圾 。
3、为了自已的机器的安全、快速 , 也为了知情权(一个程序到底在安装和使用过程中在自已的机器里写了什么) , 本人极力推荐纯绿的软件 。即便在必要的情况下非纯绿,也希望有详细的说明 。说明软件可能会写注册表的那些部分,会改动机器里的哪些文件,会向哪些目录写入什么文件,内容 。而且,希望这成为软件界的一个标准 。这样 , 我们的电脑才会有安全可言!
4、为什么现在流行的软件中真正纯绿的软件不是很多呢?这个问题很不好回答 。在这儿可以非常遗憾的告诉大家 , 有些朋友在网上下载的winrar绿色版、winamp绿色版等等,都不是真正意义上的纯绿软件 。
比如winrar,它就因为为了在鼠标右键上出winrar的功能菜单而写动了注册表,因为要关联比如扩展名为.rar等等的文件(这些都可以在winrar程序里设定和更改)而写动了注册表 。如果使用winrar后,强行把winrar程序目录删去 , 注册表里的这一部分注册表信息必然成为垃圾(其它的也许有本人没有发现的动作,如没有说出来是本人水平不足的问题了,呵呵) 。
winamp绿色版似乎要好一些(本人的感觉),如果你设定了一些文件的关联,如双击*.mp3等文件winamp就会自动打开播放的话,你强行删去winamp所在目录 , 这部分文件的关联信息也会成为垃圾留在注册表中 。
(上面两个只是举例 , 解决办法很多对电脑熟悉的朋友是会的 , 在这儿,我们并不讨解决办法,另外,应该说 , 上面两程序是很规范的东西,它们的这些动作是无可厚非的)
现在再回过头来说说“流行的软件中真正纯绿的软件不是很多” 。
A、有些功能是非通过写注册表来实现不可,最最常见的就是文件关联、鼠标右键菜单 。(呵呵,这种操作可以说,稍熟编程的人都会) 。但是很少有个人编写者考虑到别人不用他的程序时 , 要怎么让使用者方便地复位这些文件关联,方便地清理右键菜单 。
B、部分程序编写者喜欢把注册信息放在注册表中 。(为什么喜欢?就因为注册表是庞大的参数库,他们以为,要从这样一个大参数库找出他们写入的一个信息是大海捞针 。事实上,的确很多朋友是难以找出来的 , 话又说回来,会者不难,难者不会,在这儿我也不细说了)
C、一些大公司的程序实在对系统有太多的改动 , 他们做好了安装和卸载工具,这些软件涉及了系统的方方面面,想简单的删除是很难的 。典型的就如微软的Office等等 。这些软件说实在的,别说你不老实的删除了 , 就是老实的卸载,有时也是很难成功的 。最好的办法就是装上后就别卸把,把它看成是系统的一部分(不管你乐不乐意 , 呵呵) 。(又及,这类程序也不是很少,这儿只举一例) 。
D、只有那些其功能可以不涉及更改系统默认行为的软件才可能在真正意义上做到纯绿 。((也许我罗嗦了)系统默认行为包括“文件关联”,“右键菜单”,“控制面版”里的项目,真实或虚拟的硬件驱动以及其它我想不起来或是我也不知道的东西……) 。当然了,还要编写者有真正的为使用者着想的精神 , 有较好的技术 。
六、有部分并非纯绿的软件,伪装成纯绿的,在运行过程中向注册表写东西,向关键目录区写东西 , 甚至更改重要文件 。这不是纯绿软件,只能说是伪纯绿 。又及,很多网上流行的软件,号称纯绿版,实际上只是一些原版本经过稍许改进等,原软件并不设计为纯绿,在运行过程中还是会写注册表(甚至写关键win目录) , 也不是严格意义上的纯绿 。反过来,也有部分其实是纯绿的软件,为了大家的方便,做成了安装发布式的 。比如最典型的就是《传奇》《三角洲》、《魔兽争霸III》等一些游戏,一些工作软件如《FOXMAIL》(FoxMail至少在针对IE选项里的“程序”页里的"电子邮件"相关项进行了注册表相关写操作)《winamp》《winrar》等等准绿软件(在这儿,我只说它们是准绿的)也是如此 。这类软件其实安装出来后,把其目录放在任何一台电脑上都能或者能较为正常的运行 , 这也是为什么大家能很方便的把它们改造成绿色软件的原因 。现在真正的纯绿软件实际上是很少的,至于以后,也还是看不到纯绿一统天下的希望的 , 大家不可因噎废食 。不可能只用纯绿软件而不用其它 。而且大公司的软件一般还是非常可*的 。
七、非纯绿软件的危害:
1、向系统关键目录或不属于该程序所在目录乱存放文件(默认临时文件夹除外)在原则上对机器的运行速度是没有大的影响的,除非乱放的文件改动了原有的系统关键文件,才会至使电脑变慢或运行不正常 。但是,因为这些目录中的文件一般都比较多 , 很难对它们进行清理(鬼才知道哪个是能删,那个不能删) , 会使你的硬盘空间浪费,对于硬盘空间紧的朋友,那就非常讨厌了(此外,心里也不爽) 。
2、向注册表乱写信息 , 如果乱写的信息并不影响系统的关键部分,对系统运行也是没有严重影响的,不过,有些信息写入了不删去,你的系统就会有些讨厌的东西出来,举例:你装上winrar后(典型安装设置),直接把winrar删了 , 你就会发现,你的右键菜单里会多出一些让人哭笑不得的东西 。要注意的是,随着机器的使用,软件的安装、删除,这些可以感觉到和不能感觉到的信息会越来越多 , 而你的机器在运行过程中,几乎随时随刻不能离开对注册表的相关操作,注册表里的信息过多,机器查找所需信息的速度就会变慢,这时 , 机器的运行就表现为“变慢了”,这往往是一台电脑为什么越用越慢的最重要的原因之一 。(提示:因为多数情况下 , 一个软件对注册表写的东西并不多,所以,在每一次垃圾进去了,用户是很难感觉到影响的)(又及,一些注册表清理软件,本人也用过,虽有作用,但是风险不少 , 是好是坏我也不知怎么评价……) 。这些垃圾信息并非只有小公司的软件会留下,很多大公司的软件据本人的感觉,也是会留垃圾的,本人也很无耐 。
解决办法吗?恕本人无能,在当今软件乱世,只怕多少有些无可耐何 。本人是使用最笨的方法:Ghost镜像还原 。基本上每三至四个月给它倒回一次 。(工作文档等当然不能放在系统区了 , 呵呵) 。
八、希望无知者不要信口开河 , 多多学习 。最后,附上一个我自已做的纯绿软件---BCB编写的《水波特效演示》程序,给大家玩玩叭 。
补充——初步判断一个软件是否纯绿软件的方法(注 , 只有对电脑比较熟悉的人能才办到,如果下面的说明,你基本能看懂,而无需请教别人,你就能做到了):
一、系统测试法:
1、将软件在别人的机器上安装,安装完成后 , 把安装出来的目录复制到你的机器中(如果本身就号称纯绿免装的,这步就免了) 。
2、你的机器要求安装windows2000 或 windows XP 或 windows2003,使用受限用户登录(要求受限用户无对关键注册表有写权,无对重要目录有写权,当然了,默认的新建的用户就是这样的(XP下要将用户设为受限)) 。
3、受限用户登录后运行复制来的安装目录下的软件的主程序,如果正常,90%是纯绿 。
4、对省下10%的说明——不排除可能编写者隐了动作,如果不成功也不报错,也不退出 , 还正常运行,一但能写的时就它就写 。另外,还有一部分程序 , 如FoxMail,只对当前帐户相关于注册表进行写操作,因为“帐户相关于注册表"是"属于"对应帐户的 , 在受限帐号下也是可写的(特别说明一下,注销该帐户,注册表中该帐户的所有项目都会清去,所以也可以算是绿的) 。
二、软件监控法:
1、如果上面的步子还不令你放心,还有一个工具值得一用 , 那就是《Filemon》,这是一个可以监视系统中任何软件对硬盘的读写操作的程序 , 通过它 , 你可以查到某个程序对你的硬盘的什么位置的什么文件进行了操作,这个程序只能在管理员帐户下用(切入系统进程) 。
2、对于注册表的监视是很麻烦的事,《Regmon》可以办到,同上面的工具一样Regmon要求在管理员帐户下用(切入系统进程) 。
3、90%的软件和上面的两个软件无冲突,省下的9%的是作者有意防止被监视(为什么有意防止被监 , 那你就自个想吧,一般都是比较可怕的东西),最后1%可能是因为程序实在相互不兼容了 。
以上两工具都为同一公司(Sysinternals)出品 , 值得一用,附在最后(XTJS.rar) 。
三、并非所有的不能在受限帐户下用的程序都不是纯绿的 。某些程序可能要切入别的系统程序中,某些程序需要得到硬件信息等,这些最只有在管理员帐户下才能实现 。还有一些程序可能没有考虑多用户操作系统等 。只能说,通过了上面的测试的程序90%是纯绿的,没有通过的话90%是非纯绿的 。有经验的朋友还可以据自已的经验得到更准确的结论 。参考资料:以上资料,从网上下载的,与本人无关
vb.net编的web程序如何生成并且发布在sever2003服务器上并且用IE浏览器访问什么IIS架构 。晕~~~
1.首先正式版本的发布盘找找vb.net教程你必须要Release盘找找vb.net教程,不要直接把Debug程序放上去 。
2.将所有的.cs文件删除 。vs.net有一个很方便的工具盘找找vb.net教程,“项目——复制项目”就ok盘找找vb.net教程了 。
3.windows server2003上一定要安装了"Internet 信息服务(IIS)管理器",如果没有安装的话可以到“控制面板——添加或删除程序——添加\删除WINDOWS组件——应用程序服务器”如果“应用程序服务器”没有构选的话钩上盘找找vb.net教程 , 放入windows 2003的系统盘安装 。
4.安装完成之后把项目靠到服务器上 。简单一点的方法是右键点击项目文件夹,Web共享——共享文件夹 。此时就算发布成功了 。不过还有一些细节需要注意 。如:IIS匿名访问等 。那就是另外的问题了 。呵呵 。IIS设置很简单,可以在网上找些资料 。
【关于盘找找vb.net教程的信息】关于盘找找vb.net教程和的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读