• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    用VB“破解”有時間限制的程序

    發布: 2007-5-25 09:19 | 作者: hktl | 來源: 互聯網 | 查看: 67次 | 進入軟件測試論壇討論

    領測軟件測試網

    VB“破解”有時間限制的程序


    張 勝

    你是否經常遇到有時間限制的程序?我等懶人尤其對此特別反感,可惜囊中羞澀,只好反復修改其系統日期而使自己多用幾次此軟件——實在是辛苦!于是使用“Anyday32”,可惜也太麻煩了;再后使用“時光倒流”,也不好用,而且——居然還有Bugs!......看樣子只好自己動手做“VB軟件DIY”了。
    一、問題所在
    有時間限制的程序大都是依靠在啟動過程中檢測系統日期,再與其記錄的第一次使用日期(放于注冊表或特殊文件中)進行對比檢測是否試用期已到,若試用期已到,可能會在注冊表中作一定的標記,使下次程序不可用。
    二、解決問題
    我們一般可以通過修改系統時間來使用此類程序,當然在其作過過期標志后可能此“大法”就無效了;也有一些程序的檢測細化到了小時,那我們只能將時間也一塊改了。
    三、DIY中的思路及注意事項
    我們可以在自己的程序中先修改系統日期,再啟動相應的有時間限制的程序,過一段時間后再將系統日期改回來。
    注意:在等待外部程序檢測系統日期的等待過程中,系統日期已經改變,那么我們改回的系統日期將是錯誤的!因此我們要進行一定的檢測,以防止此類錯誤的發生。
    四、開始軟件DIY
    這里我們為方便控制,使用Access數據庫進行軟件編制。
    數據庫中表的設計:

    MILY: 宋體; FONT-SIZE: 10pt; mso-hansi-font-family: Arial">字段名

    類型

    長度

    備注

    程序名稱

    Text

    20

    程序的標識,以便于管理

    啟動程序

    Text

    255

    實際啟動的程序

    啟動日期

    Date/Time

    8

    應改回的系統日期

    窗體及控件設計:

    名稱

    類型

    設置

    Form1

    窗體

    BorderStyle=1

    Command1

    command

    Caption="執行(&R)"

    Command2

    command

    Caption="退出(&Q)"

    Check1  

    CheckBox

    Caption="啟動程序后自動關閉本軟件"

    Timer1

    Timer

    Enabled=False;Interval=5000

    Data1

    Data

    DatabaseName=數據庫路徑及名稱

    RecordSource=數據表名稱

    CommonDialog1

    CommonDialog

    Filter="請選擇您想要啟動的程序 (*.*)"

    DBGrid1

    DBGrid

    AllowaddNew=True;AllowDelete=True;DataSource=Data1

    CommonDialog和DBGrid控件需要另外加載,其中還需在DBGrid的屬性頁中進行一定的數據庫掛接和設置,要在其屬性頁中“布局”中的第二列的“按鈕”選中。
    以下是本小軟件的源代碼:
    Option Explicit
    '啟動外部應用程序的API函數定義
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Dim OldDate As Date '保存系統日期
    Private Sub Command1_Click()
    If Not Data1.Recordset.EOF Then '若數據庫正在添加記錄則不動作
    Date = Data1.Recordset(2) '改系統時間
    Call ShellExecute(0, vbNullString, Data1.Recordset(1), vbNullString, vbNullString, vbOK) '啟動外部程序
    Me.Enabled = False '屏蔽其他操作
    Timer1.Enabled = True '啟動延時記時器
    End If
    End Sub
    Private Sub Command2_Click()
    End '關閉本系統
    End Sub
    Private Sub DBGrid1_BeforeUpdate(Cancel As Integer)
    If MsgBox("記錄改變嗎?", vbYesNo + vbQuestion) <> vbYes Then Cancel = True '是否更新數據庫控制
    End Sub
    Private Sub DBGrid1_ButtonClick(ByVal ColIndex As Integer)
    On Error GoTo errdeal '打開錯誤監測
    CommonDialog1.CancelError = True '系統對話框錯誤控制
    CommonDialog1.ShowOpen '打開系統對話框
    If CommonDialog1.filename <> "" Then DBGrid1.Text = CommonDialog1.filename '寫入要啟動的程序信息
    errdeal:
    End Sub
    Private Sub Form_Load()
    OldDate = Date '保存系統時間
    Call Parameter '獲取系統啟動時的參數
    End Sub
    Private Sub Timer1_Timer()’五秒鐘后恢復
    If Format(Time, "HH:MM:SS") < "00:00:05" Then OldDate = OldDate + 1 '防止在接近零時時的日期恢復錯誤
    Date = OldDate '恢復系統時間
    Me.Enabled = True '恢復正常操作
    Timer1.Enabled = False '屏蔽延時記時器
    If Check1.Value = 1 Then End '是否關閉本系統
    End Sub
    Private Sub Parameter() '系統參數處理
    If Command <> "" Then
    '查找相應的啟動程序
    Data1.RecordSource = "Select * From [StartProgram] Where [程序名稱]='" & Trim(Command) & "'"
    Data1.Refresh
    If Not (Data1.Recordset.EOF And Data1.Recordset.BOF) Then
    Me.Hide '隱藏本系統
    Check1.Value = 1 '設置關閉標志
    Command1_Click '激活本系統的執行事件
    Else
    '未找到處理
    MsgBox "沒有此啟動程序!", 16, Me.Caption '錯誤提示
    End '關閉
    End If
    End If
    End Sub
    五、小 結
    本小軟件可啟動多個有時間限制的程序,也可以通過命令參數(格式是:本程序名 要啟動的程序名稱)一次啟動一個程序,可用于作相應的快捷方式(和Anyday32類似),讓你放心去使用。
    程序編完了,但還需你的完善和潤色,遇到問題自己解決——我是軟件DIY人!

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>