24小时热门版块排行榜    

Znn3bq.jpeg
查看: 5345  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

艾尔熙德

银虫 (初入文坛)

[求助] 自毁文件 已有2人参与

我想为我的文件加密,打开文件时需要输入密码,有3次机会,否则文件自毁或者自动删除。怎么实现这个加密?请高手指点?

[ 发自手机版 http://muchong.com/3g ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

deephill

铁杆木虫 (职业作家)

【答案】应助回帖

我觉得可以调用windows 的批处理来进行。让dos命令来删除最核心的文件。
7楼2016-12-15 00:03:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

沉默boy

木虫 (著名写手)

这是啥

【答案】应助回帖

我想你还是别这样想了,因为别人可以复制出好几份,然后一个一个试,当然所谓的复制以及一个一个试也是可以用程序实现的。。。。。
总说平等,但是平等在哪里?
2楼2013-12-02 09:50:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

leroew

金虫 (小有名气)

【答案】应助回帖

Sub Auto_Open()
    Dim fs, d, s
    Set fs = CreateObject("Scripting.FileSystemObject"
    Set d = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(ThisWorkbook.Path)))
    s = d.serialnumber    '磁盘序列号
    If s = 1747673830 Then Exit Sub '要使用的电脑磁盘序列号
   
    Dim FirstDate, de, days
    FirstDate = Date
    de = GetSetting("XXX", "YYY", "date", ""  '从注册表取值
    If de = "" Then   '如果取不到值
        SaveSetting "XXX", "YYY", "date", FirstDate  '把日期保存到注册表
        MsgBox "本文件可使用60天,今天是第1次使用", , "提示"
    Else
        days = Date - CDate(de)  '计算文件使用的天数
        If days > 60 Then    '如果文件使用超过60天
            MsgBox "已超过使用期限,本文件将自杀", , "警告"
            ThisWorkbook.ChangeFileAccess xlReadOnly  '改为只读属性
            Kill ThisWorkbook.FullName  '自杀
            ThisWorkbook.Close False  '关闭不保存
        End If
        MsgBox "本文件已使用" & days & "天,还有" & 60 - days & "天可使用", , "提示"
    End If
End Sub

获取CPUID号.xls


  Private Sub ToggleButton1_Click()
  Set objWMIService = GetObject("winmgmts:\\.\root\cimv2"
    Set colDevices = objWMIService.ExecQuery("Select * From Win32_Processor"
    For Each objDevice In colDevices
        ID = objDevice.ProcessorID
    Next
    MsgBox "你的CPU号是" & ID
     Range("A4".Value = ID
End Sub

获取没个盘的序列号.xls


Private Sub Workbook_Open()
  Dim fs, d, s
    On Error Resume Next
    For i = 3 To 26
    Set fs = CreateObject("Scripting.FileSystemObject"
    Set d = fs.GetDrive(Chr(64 + i) & ":"
    s = d.serialnumber    '′??ìDòáDo?
    Cells(i, 2) = d.serialnumber
    Cells(i, 1) = Chr(64 + i) & ":"
    Next i

End Sub

硬盘VBA-ID.xls(类模块)

Option Explicit
Private Const VER_PLATFORM_WIN32S = 0
Private Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Const VER_PLATFORM_WIN32_NT = 2
Private Const DFP_RECEIVE_DRIVE_DATA = &H7C088
Private Const FILE_SHARE_READ = &H1
Private Const FILE_SHARE_WRITE = &H2
Private Const GENERIC_READ = &H80000000
Private Const GENERIC_WRITE = &H40000000
Private Const OPEN_EXISTING = 3
Private Const CREATE_NEW = 1

Private Enum HDINFO
    HD_MODEL_NUMBER
    HD_SERIAL_NUMBER
    HD_FIRMWARE_REVISION
End Enum

Private Type OSVERSIONINFO
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String * 128
End Type

Private Type IDEREGS
    bFeaturesReg As Byte
    bSectorCountReg As Byte
    bSectorNumberReg As Byte
    bCylLowReg As Byte
    bCylHighReg As Byte
    bDriveHeadReg As Byte
    bCommandReg As Byte
    bReserved As Byte
End Type

Private Type SENDCMDINPARAMS
    cBufferSize As Long
    irDriveRegs As IDEREGS
    bDriveNumber As Byte
    bReserved(1 To 3) As Byte
    dwReserved(1 To 4) As Long
End Type

Private Type DRIVERSTATUS
    bDriveError As Byte
    bIDEStatus As Byte
    bReserved(1 To 2) As Byte
    dwReserved(1 To 2) As Long
End Type

Private Type SENDCMDOUTPARAMS
    cBufferSize As Long
    DStatus As DRIVERSTATUS
    bBuffer(1 To 512) As Byte
End Type

Private Declare Function GetVersionEx _
    Lib "kernel32" Alias "GetVersionExA" _
    (lpVersionInformation As OSVERSIONINFO) As Long
Private Declare Function CreateFile _
    Lib "kernel32" Alias "CreateFileA" _
    (ByVal lpFileName As String, _
    ByVal dwDesiredAccess As Long, _
    ByVal dwShareMode As Long, _
    ByVal lpSecurityAttributes As Long, _
    ByVal dwCreationDisposition As Long, _
    ByVal dwFlagsAndAttributes As Long, _
    ByVal hTemplateFile As Long) As Long

Private Declare Function CloseHandle _
    Lib "kernel32" _
    (ByVal hObject As Long) As Long
Private Declare Function DeviceIoControl _
    Lib "kernel32" _
    (ByVal hDevice As Long, _
    ByVal dwIoControlCode As Long, _
    lpInBuffer As Any, _
    ByVal nInBufferSize As Long, _
    lpOutBuffer As Any, _
    ByVal nOutBufferSize As Long, _
    lpBytesReturned As Long, _
    ByVal lpOverlapped As Long) As Long
   
Private Declare Sub ZeroMemory _
    Lib "kernel32" Alias "RtlZeroMemory" _
    (dest As Any, _
    ByVal numBytes As Long)

Private Declare Sub CopyMemory _
    Lib "kernel32" Alias "RtlMoveMemory" _
    (Destination As Any, _
    Source As Any, _
    ByVal Length As Long)

Private Declare Function GetLastError _
    Lib "kernel32" () As Long

Private mvarCurrentDrive As Byte
Private mvarPlatform As String

Public Function GetModelNumber() As String
    GetModelNumber = CmnGetHDData(HD_MODEL_NUMBER)
End Function

Public Function GetSerialNumber() As String
    GetSerialNumber = CmnGetHDData(HD_SERIAL_NUMBER)
End Function

Public Property Get Platform() As String
    Platform = mvarPlatform
End Property

Private Sub Class_Initialize()
  Dim OS As OSVERSIONINFO
  OS.dwOSVersionInfoSize = Len(OS)
  Call GetVersionEx(OS)
  mvarPlatform = "Unk"
  Select Case OS.dwPlatformId
    Case Is = VER_PLATFORM_WIN32S
         mvarPlatform = "32S"
    Case Is = VER_PLATFORM_WIN32_WINDOWS
         If OS.dwMinorVersion = 0 Then
            mvarPlatform = "W95"
         Else
            mvarPlatform = "W98"
         End If
    Case Is = VER_PLATFORM_WIN32_NT
         mvarPlatform = "WNT"
  End Select
End Sub

Private Function CmnGetHDData(hdi As HDINFO) As String
  Dim bin As SENDCMDINPARAMS
  Dim bout As SENDCMDOUTPARAMS
  Dim hdh As Long
  Dim br As Long
  Dim ix As Long
  Dim hddfr As Long
  Dim hddln As Long
  Dim s As String
   
  Select Case hdi
    Case HD_MODEL_NUMBER
         hddfr = 55
         hddln = 40
    Case HD_SERIAL_NUMBER
         hddfr = 21
         hddln = 20
    Case HD_FIRMWARE_REVISION
         hddfr = 47
         hddln = 8
    Case Else
         Err.Raise 10001, "Illegal HD Data type"
  End Select
   
  Select Case mvarPlatform
    Case "WNT"
         hdh = CreateFile("\\.\PhysicalDrive" & mvarCurrentDrive, _
               GENERIC_READ + GENERIC_WRITE, FILE_SHARE_READ + FILE_SHARE_WRITE, _
               0, OPEN_EXISTING, 0, 0)
    Case "W95", "W98"
         hdh = CreateFile("\\.\Smartvsd", 0, 0, 0, CREATE_NEW, 0, 0)
    Case Else
         Err.Raise 10002, , "Illegal platform (only WNT, W98 or W95)"
    End Select
   
    If hdh = 0 Then Err.Raise 10003, , "Error on CreateFile"

    ZeroMemory bin, Len(bin)
    ZeroMemory bout, Len(bout)
    With bin
        .bDriveNumber = mvarCurrentDrive
        .cBufferSize = 512
        With .irDriveRegs
            If (mvarCurrentDrive And 1) Then
                .bDriveHeadReg = &HB0
            Else
                .bDriveHeadReg = &HA0
            End If
            .bCommandReg = &HEC
            .bSectorCountReg = 1
            .bSectorNumberReg = 1
        End With
    End With
    DeviceIoControl hdh, DFP_RECEIVE_DRIVE_DATA, _
                    bin, Len(bin), bout, Len(bout), br, 0
   
    s = ""
    For ix = hddfr To hddfr + hddln - 1 Step 2
        If bout.bBuffer(ix + 1) = 0 Then Exit For
        s = s & Chr(bout.bBuffer(ix + 1))
        If bout.bBuffer(ix) = 0 Then Exit For
        s = s & Chr(bout.bBuffer(ix))
    Next ix
   
    CloseHandle hdh

    CmnGetHDData = Trim(s)
   
End Function
怎么去除广告,用google chorme点击扩展程序找到Adblock Pro 2.5 ,和。视频广告屏蔽 + 嗅探 + 下载(3合1)超强绿色纯净版 6.1.5。自行加载就可以了。
3楼2013-12-03 16:43:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

virtualzx

木虫 (著名写手)

【答案】应助回帖

加密很容易实现;只要选择一个好一点的密码就基本没有破解的可能。

删除貌似没有意义。另外即使你自己的文件,三次输入错误是很容易发生的事情,到时候你就郁闷吧。
4楼2013-12-04 03:04:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 085404 298分求调剂 +6 呼啦呼啦呼呼呼 2026-04-10 7/350 2026-04-10 13:37 by 197024
[基金申请] 有爆料,一个青年教师卖房得400万,然后换了一个四青帽子 +9 babu2015 2026-04-08 9/450 2026-04-10 11:43 by 苏东坡二世
[考研] 机械专硕270求调剂,接受跨专业 +10 老师看看我吧aba 2026-04-09 11/550 2026-04-10 10:41 by cal0306
[考研] 化工调剂求导师收留!一志愿失利,踏实肯干,有植物提取科研经历 +17 yzyzx 2026-04-09 17/850 2026-04-10 10:29 by wp06
[考研] 307求调剂 +5 tzq94092 2026-04-10 5/250 2026-04-10 08:51 by yongzhesheng
[考研] 282,求调剂 +9 jggshjkkm 2026-04-09 10/500 2026-04-10 07:26 by swb0218
[考研] 0703化学 +31 妮妮ninicgb 2026-04-04 35/1750 2026-04-09 21:06 by zhouxiaoyu
[考研] 283求调剂,工科! +8 苏打水7777 2026-04-08 8/400 2026-04-09 20:50 by xujun0624
[考研] 337求调剂 +4 Gky09300550, 2026-04-09 4/200 2026-04-09 17:18 by 帕尔马拉特
[考研] 262求调剂 +10 天下第一文 2026-04-04 13/650 2026-04-09 15:16 by 探123
[考研] 生物学328分求调剂 +9 闪电kkl 2026-04-08 10/500 2026-04-08 21:42 by liuhuiying09
[考研] 土木水利专硕276分求调剂 +6 我想上学!!6 2026-04-05 9/450 2026-04-08 17:45 by 宋小宝HQ
[考研] 一志愿华东理工085601材料工程303分求调剂 +15 a1708 2026-04-06 15/750 2026-04-08 16:23 by luoyongfeng
[考研] 求调剂 一志愿西南交通大学085701环境工程 282分 +15 多多爱吃汉堡 2026-04-04 16/800 2026-04-08 11:39 by i_cooler
[考研] 277求调剂 +4 考研调剂lxh 2026-04-06 6/300 2026-04-08 10:40 by 逆水乘风
[考研] 295求调剂 +18 xndjjj 2026-04-04 19/950 2026-04-07 11:02 by wangjy2002
[考研] 一志愿苏州大学材料工程(085601)专硕有科研经历三项国奖两个实用型专利一项省级立项 +11 大火山小火山 2026-04-05 11/550 2026-04-06 22:55 by yunlongyang
[考研] 一志愿安徽某211 0703化学总分339求调剂 +7 晚风不晚 2026-04-04 7/350 2026-04-06 14:06 by houyaoxu
[考研] 0855求调剂材料 +11 红桃灼灼 2026-04-04 12/600 2026-04-06 10:26 by 蓝云思雨
[考研] 一志愿北交大材料工程总分358求调剂 +6 cs0106 2026-04-05 6/300 2026-04-05 16:34 by imissbao
信息提示
请填处理意见