| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1529 人关注过本帖
标题:求学编程者帮忙
只看楼主 加入收藏
三哥0755
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2009-11-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
求学编程者帮忙
编程要求:
1.执行此程序后首先是搜寻目录下有没有KEY.REG注册表文件,如果没有则自动导出
[HKEY_LOCAL_MACHINE\SOFTWARE\Fuji Machine Mfg.\Fuji Flexa\License]到key.reg

2.如果有这个文件,则搜寻key.reg文件的"APPINFO1"="000000000001 后面的连续八个字符,比如例子key.reg中的20091108,然后再将这个日期格式的字符与电脑系统时间比较,比如今天是2009年11月11日,则将系统时间识别为 20091111,再接着跟刚才读出的8个字符进行日期比较,如果两者相差的天数大于30,则自动将8个字符改成当前日期,并且将这个注册表中所有的这相同的8个字符全部更换成当前日期字符。然后以这个更改后的文件同名存盘,再将这个更改后的注册表导入系统中。

3.如果有这个文件,则搜寻key.reg文件的"APPINFO1"="000000000001 后面的连续八个字符,比如上面key.reg中的20091108,然后再将这个日期格式的字符与电脑系统时间比较,比如今天是2009年11月11日,则将系统时间识别为 20091111,再接着跟刚才读出的8个字符进行日期比较,如果两者相差的天数小于或等于30,则不用执行注册表字符替换或者导入。

4.如果导入注册表后则自动接着执行目录中 Client\Bin\FNCAMFRM.EXE ,同时这个小程序自动关闭并从内存中退出。


key.reg内容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Fuji Machine Mfg.\Fuji Flexa\License]
"APPINFO1"="00000000000120091108020000000003000000000400000000050000000006000000000700000000080000000009000000000A000000000B000000000C000000000D000000000E000000000F0000000010000000001100000000120000000013000000001400000000150000000016000000001700000000180000000019000000001A000000001B000000001C000000001D000000001E000000001F0000000020000000002100000000220000000023000000002400000000250000000026000000002700000000280000000029000000002A200911082B000000002C000000002D000000002E000000002F0000000030000000003100000000320000000033000000003400000000350000000036000000003700000000380000000039000000003A000000003B000000003C000000003D000000003E000000003F0000000040200911084120091108420000000043200911084400000000450000000046200911084720091108480000000049200911084A200911084B000000004C000000004D000000004E000000004F0000000050000000005100000000520000000053000000005400000000550000000056000000005700000000580000000059000000005A000000005B000000005C000000005D000000005E000000005F200911086000000000610000000062000000006300000000N"
"APPINFO2"="6400000000650000000066000000006700000000680000000069000000006A000000006B000000006C000000006D000000006E000000006F0000000070200911087120091108722009110873200911087420091108752009110876200911087720091108782009110879200911087A200911087B200911087C000000007D000000007E200911087F0000000080200911088120091108822009110883200911088420091108852009110886200911088700000000882009110889000000008A000000008B000000008C000000008D000000008E000000008F0000000090200911089120091108920000000093000000009400000000950000000096000000009700000000980000000099000000009A000000009B000000009C000000009D000000009E000000009F00000000A020091108A120091108A220091108A320091108A420091108A520091108A620091108A720091108A820091108A920091108AA20091108AB20091108AC20091108AD20091108AE20091108AF20091108B000000000B120091108B200000000B320091108B420091108B500000000B620091108B720091108B820091108B920091108BA20091108BB00000000BC00000000BD00000000BE00000000BF00000000C000000000C100000000C200000000C300000000C400000000C500000000C600000000C700000000N"
"APPINFO3"="C800000000C900000000CA00000000CB00000000CC00000000CD00000000CE00000000CF00000000D000000000D100000000D200000000D320091108D420091108D520091108D620091108D700000000D820091108D900000000DA00000000DB20091108DC00000000DD00000000DE00000000DF00000000E020091108E120091108E220091108E320091108E420091108E520091108E620091108E720091108E820091108E920091108EA20091108EB20091108EC20091108ED20091108EE00000000EF00000000F020091108F100000000F200000000F300000000F400000000F500000000F600000000F700000000F800000000F900000000FA00000000FB00000000FC00000000FD00000000FE00000000FF00000000N"
"APPINFO4"="1000000000010100000000102000000001030000000010400000000105000000001060000000010700000000108000000001090000000010A0000000010B0000000010C0000000010D0000000010E0000000010F000000001100000000011100000000112000000001130000000011400000000115000000001160000000011700000000118000000001190000000011A0000000011B0000000011C0000000011D0000000011E0000000011F000000001200000000012100000000122000000001230000000012400000000125000000001260000000012700000000128000000001290000000012A0000000012B0000000012C0000000012D0000000012E0000000012F000000001300000000013100000000132000000001330000000013400000000135000000001360000000013700000000138000000001390000000013A0000000013B0000000013C0000000013D0000000013E0000000013F000000001400000000014100000000142000000001430000000014400000000145000000001460000000014700000000148000000001490000000014A0000000014B0000000014C0000000014D0000000014E0000000014F000000001500000000015100000000152000000001530000000015400000000155000000001560000000015700000000158000000001590000000015A0000000015B0000000015C0000000015D0000000015E0000000015F0000000016000000000161000000001620000000016300000000N"
"APPINFO5"="16400000000165000000001660000000016700000000168000000001690000000016A0000000016B0000000016C0000000016D0000000016E0000000016F000000001700000000017100000000172000000001730000000017400000000175000000001760000000017700000000178000000001790000000017A0000000017B0000000017C0000000017D0000000017E0000000017F000000001800000000018100000000182000000001830000000018400000000185000000001860000000018700000000188000000001890000000018A0000000018B0000000018C0000000018D0000000018E0000000018F000000001900000000019100000000192000000001930000000019400000000195000000001960000000019700000000198000000001990000000019A0000000019B0000000019C0000000019D0000000019E0000000019F000000001A0000000001A1000000001A2000000001A3000000001A4000000001A5000000001A6000000001A7000000001A8000000001A9000000001AA000000001AB000000001AC000000001AD000000001AE000000001AF000000001B0000000001B1000000001B2000000001B3000000001B4000000001B5000000001B6000000001B7000000001B8000000001B9000000001BA000000001BB000000001BC000000001BD000000001BE000000001BF000000001C0000000001C1000000001C2000000001C3000000001C4000000001C5000000001C6000000001C700000000N"
"APPINFO6"="1C8000000001C9000000001CA000000001CB000000001CC000000001CD000000001CE000000001CF000000001D0000000001D1000000001D2000000001D3000000001D4000000001D5000000001D6000000001D7000000001D8000000001D9000000001DA000000001DB000000001DC000000001DD000000001DE000000001DF000000001E0000000001E1000000001E2000000001E3000000001E4000000001E5000000001E6000000001E7000000001E8000000001E9000000001EA000000001EB000000001EC000000001ED000000001EE000000001EF000000001F0000000001F1000000001F2000000001F3000000001F4000000001F5000000001F6000000001F7000000001F8000000001F9000000001FA000000001FB000000001FC000000001FD000000001FE000000001FF00000000N"
"KEY"=hex:05,31,34,33,36,39,08,39,35,39,32,32,37,39,33,10,46,4c,30,30,31,2d,45,\
  30,30,39,31,2d,30,30,30,31


希望高手帮我解决这个问题,免得每个月都需要更换一次日期,麻烦.看看能否搞个智能识别的.
谢谢大家了.我的QQ是 183584513

希望大家能帮我这个忙,这个也算是对你们的一个小实验课题吧.
key.rar (214.74 KB)


[ 本帖最后由 三哥0755 于 2009-11-11 22:38 编辑 ]
搜索更多相关主题的帖子: 求学 
2009-11-11 22:36
xslslx
Rank: 2
等 级:论坛游民
帖 子:58
专家分:65
注 册:2009-11-10
收藏
得分:2 
其实你可以把APPINFO1的值放在TXT文本里,当然放在注册表里也可以,每次运行程序的时候声明三个变量,用来存放APPINFO1的值,第1-12个字符为变量1,13-20也就是我们所要的日期为变量2,剩下的为变量3,然后用函数截取其13-20位的值也就是用变量2的值和系统时间进行比较,如果相同则无效,如果不同则将系统日期替换到其第13-20位字符也就是变量2,日期格式可以限定成(yyMMdd)这样一来就是2009****的格式了,然后将APPINFO1=变量1+变量2+变量3,这样就可以了,

老师的学生,学生的老师
2009-11-12 07:49
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:18 
1\注册表文件手动导出.
2\本程序未经调试,如有错误,请自行调整.
3\本程序存在BUG.在某个盘的根目录下执行时会出错.
4\替换是使用的内部字符串替换命令
5\大量写了注释.将就点自己看懂来

'代码开始
Option Explicit   

Private Const KEYFILE = "KEY.REG"           '注册表文件名

Private Sub Form_Load()

'查找用的关键字
Dim key As String
key = Chr(34) & "APPINFO1" & Chr(34) & "=" & Chr(34) & "000000000001"

Dim strtmp As String            '文件内容
Dim dattmp As String            '日期
Dim i As Long                   '临时变量
Dim j As String                 '临时变量
Dim kdate As Date

    '文件存在
    If Dir(KEYFILE) <> "" Then          '文件存在
        strtmp = 打开文件(KEYFILE)
        i = InStr(1, strtmp, key) + Len(key) + 1 '找到起始位置
        j = Mid(strtmp, i, 8)           '取文件内的日期
   
        k = CDate(Left(j, 4) & "-" & Mid(j, 5, 2) & "-" & Right(j, 2))
        If Abs(Date - k) > 30 Then          '日期做减法,取绝对值
            strtmp = Replace(strtmp, j, Format(Date, "yyyymmdd"))       '替换日期
            Call 保存文件(strtmp, KEYFILE)                              '保存文件
            Shell "c:\windows\system32\regedit.exe /s " & App.Path & KEYFILE        '导入注册表
        End If
        Shell "Client\Bin\FNCAMFRM.EXE"         '不管导了没导,都去运行最后的程序
    Else
        MsgBox KEYFILE & " 文件未发现,请手动导出此文件,放到程序目录下", vbCritical
    End If
   
    Unload Me           '卸载自己
    'End                '退出

End Sub

Public Function 打开文件(cs As String) As String
    On Error Resume Next
   
'快速打开文件
Dim fj As Long

'If Dir(cs) <> "" Then           '文件存在
    fj = FreeFile()             '产生下一文件号
    Open cs For Binary As #fj       '打开文件
        '直接读整个文件的所有的内容,按字节读,并转换为 Unicode 的VB默认字符串类型
        打开文件 = StrConv(InputB$(LOF(fj), #fj), vbUnicode)
    Close #fj
'Else
'    MsgBox cs & vbCrLf & "文件不存在!", vbCritical, "打开文件"       '提示文件不存在
'End If
End Function


Public Function 保存文件(cs As String, filename As String) As String
    On Error Resume Next
    Dim fj As Long
    fj = FreeFile()             '产生下一文件号
    If Dir(filename) <> "" Then
         Kill filename
    End If
    Open filename For Output As #fj        '打开文件
        Print #fj, cs
    Close #fj
End Function


授人于鱼,不如授人于渔
早已停用QQ了
2009-11-12 09:51
三哥0755
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2009-11-11
收藏
得分:0 
这些对我来说看起来就像是天书,我只知道编程的方向是这样,但是我不懂得编程,楼上的能否将这个源代码打包成可执行文件给我测试一下?
谢谢了。
版主果然是高人,真想拜你为师哟,真是太佩服你了。真心想跟你交个朋友。
QQ: 183584513

[ 本帖最后由 三哥0755 于 2009-11-12 10:41 编辑 ]
2009-11-12 10:39
侃大川
Rank: 2
等 级:论坛游民
威 望:1
帖 子:27
专家分:22
注 册:2009-11-12
收藏
得分:0 
看楼主意思是破解运行限时程序,不必如此周折。
在你的程序入口 获得当前真实日期与时间
然后将日期修改成 以前日期(限时程序允许的)
再记录一下日期时间
   执行限时程序 shell "字符串"
当限时程序退出后再结束你的程序
结束前恢复真实日期时间,注意比较是否跨午夜。


[ 本帖最后由 侃大川 于 2009-11-12 13:23 编辑 ]
2009-11-12 13:21
xslslx
Rank: 2
等 级:论坛游民
帖 子:58
专家分:65
注 册:2009-11-10
收藏
得分:0 
川川的方法是个号方法,不过有的时候不太灵,比如程序可能需要24小时运行,并且每程序本身每N长时间确认一次时间,那 你这个想法就不太灵啦!~!~

老师的学生,学生的老师
2009-11-12 13:53
三哥0755
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2009-11-11
收藏
得分:0 
以下是引用侃大川在2009-11-12 13:21:57的发言:

看楼主意思是破解运行限时程序,不必如此周折。
在你的程序入口 获得当前真实日期与时间
然后将日期修改成 以前日期(限时程序允许的)
再记录一下日期时间
   执行限时程序 shell "字符串"
当限时程序退出后再结束你 ...
您的方法也是可行的,但是程序的制作日期排序就不好找,这样时间久了后程序都是乱的,因为时间都是同一天做的。所以我才想根据实际日期来改,那样对后来的程序没有任何影响。
其实这个程序说简单点就是让时间倒流,或者说是在允许时间内运行的一个程序。
希望大家多多指教。
方便的话能否留个QQ号码,以便日后及时请教。
2009-11-12 16:16
三哥0755
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2009-11-11
收藏
得分:0 
我现在才开始看VB6从入门到精通,现在门都没有入,不知道猴年马月能精通哟.
希望VB6的前辈多多指教.
2009-11-13 17:33
haigecnpeng
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:261
专家分:510
注 册:2008-10-6
收藏
得分:0 
key = Chr(34) & "APPINFO1" & Chr(34) & "=" & Chr(34) & "000000000001"
后面是不是还有个 & Chr(34)啊?
  

都说到了.net年代,VB与C#都是一样的!
但为什么招聘的都是C#呢?
2009-11-16 23:01
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:0 
Private Declare Function RegRestoreKey Lib "advapi32.dll" Alias "RegRestoreKeyA" (ByVal hKey As Long, ByVal lpFile As String, ByVal dwFlags As Long) As Long

Private Declare Function RegSaveKey Lib "advapi32.dll" Alias "RegSaveKeyA" (ByVal hKey As Long, ByVal lpFile As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
2009-11-17 04:49
快速回复:求学编程者帮忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.106603 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved