Foxtable(狐表)用户栏目专家坐堂 → 献给广大狐朋易友们——我学狐表之感想及部份示例(逐步推出)


  共有141534人关注过本帖树形打印复制链接

主题:献给广大狐朋易友们——我学狐表之感想及部份示例(逐步推出)

帅哥哟,离线,有人找我吗?
程兴刚
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
献给广大狐朋易友们——我学狐表之感想及部份示例(逐步推出)  发帖心情 Post By:2008/9/5 2:05:00 [只看该作者]

      N年前,我偶然认识了易表,她将我带入了业余编程队伍的行列,主要是易表之“易”有目共睹,她给我的工作带来极大的方便,提高了工作效率,真的让我感受到了领导同事们对我“时隔三日,当刮目相看”那种感觉,我也曾为我学习了易表编程技术而自豪,当然,更激起了我巩固学习的兴趣和信心;
      因为我与易表结缘,因此更有幸结识众多的易友和易表论坛的版主们,易表伴我一路走来,带我进入了狐表的新天地,我们从过去的易友成为今天的狐朋,当然又增加了不少新朋友,愿我们这些狐朋易友继续发扬易表论坛的高尚的学习和互相帮助的精神;
      可能有不少易友都认为狐表比易表难,先不是看软件系统本身,仅看到教程就被吓怕了,总觉得狐表没有易表容易,其实易表和狐表本身没有可比性,不要被它庞大的教程吓倒,教程越大越细,我们学习起来越容易懂,实例越多,我们就越容易掌握,从我个人的观点看,从基础到开发篇,只要入门您就会了,其实很容易的,代码的可读性很强,说实话,除了易表,我没有学过任何编程语言,甚至计算机都是自学的,但是我理解他的语法很容易,相信大家掌握其方法就好了;
      其实,狐表的功能很强大的,虽然比易表难了,但是相比还是很容易,毕竟功能强大与否和难易度之间成反比,相对于其他软件编程必须从基础代码做起,又简单多了,他就是完全兼容VB.net编程语言、支持SQL查询语句、能够真正实现VB功能的“易表”,难易只是两者相对而言,关键看您如何比较,望各位朋友们自己一定要有信心,相信自己,大家互相学习、共同进步! 

      (现计划在近期内做一些相关的实例并陆续献给广大狐朋易友们,由于工作原因,只能晚上加班了,我的进步需要您的帮助,这是我一直秉承的学习精神,当然,我也是一个爱跟问题较真儿并喜欢讨论问题的人,“不同的观点的结晶,才会是参考和实施的依据”也是我的管理观点之一)

                  易狐同根生,
                  容易皆共性;
                  功能求强大,
                  操作要简明;
                  不为代码惧,
                  教程是明灯;
                  基础不放过,
                  循序渐入深;
                  凡事皆如此,
                  切忌急求成;
                  编程重规划,
                  结构占七分;
                  细把教程看,
                  动手要认真;
                  神到手不到,
                  枉费您精神;
                  示例把路引,
                  三遍心自明;
                  若有疑难症,
                  论坛有高人;
                  言语互尊重,
                  三人有师行;
                  如若做到此,
                  狐表您自精。

                                          献给广大狐朋易友!
                                                                 ——程兴刚        2008年9月5日凌晨
                   
                 


[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2008/9/5 2:06:00 [只看该作者]

【示例一】:foxtable界面美化  之  窗口《模拟电子石英钟》,时钟多类型可选。

            

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


开发者密码:888





 

【示例二】:foxtable界面美化 之窗口《falsh时钟及电子日历(含农历)》

 

                    http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=24344&page=1&star=1

说明:1、利用WebBrowser控件打开falsh时钟,具有不占系统资源,界面不闪动的有点;

         2、调整查看日历后,单机年月标签,回到当月;

         3、顺便送给大家一堆小礼物——N个falsh时钟,方便大家用于动态处理个性化界面。

 

 

【示例三】:foxtable界面美化 之窗口《foxtable控件制作模拟整点报时钟

 

说明:利用foxtable制作电子报时钟,支持整点报时、半点报时,运行流畅、不闪屏,支持背景透明功能,您也不再为不会falsh设计而烦恼。您还可以在此基础上扩展设计:设置报时时间段、设计闹钟、日程提醒,DIY全家福、宝宝照、个性照片的个性特色闹钟……。一切尽在您的努力与制作中……。

 

                    http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=40156

[此贴子已经被作者于2013-9-11 2:02:27编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2008/9/5 2:06:00 [只看该作者]

【分享】:程序加密锁设计使用基本知识

一、加密锁使用的基本原理:

    1、根据不同的加密方式,进行您的可编程加密程序设计或将加密锁GUID和相应的客户信息记录的绑定设置(对于可编程加密锁,厂家会提供给您一个母锁程序设计方法,只有通过您的母锁,通过超级密码的验证,即可复制N个子锁,子锁用于提供给您的客户)

注意:超级密码连续输入错误达指定次数,此锁基本报废,须返厂做硬件修复处理,硬件修复会导致该软件锁内的加密程序文件或设置丢失,全部恢复到出厂状态。

    2、将加密锁生产商提供的该型号加密锁的.Dll文件放进您的程序设计文件目录中,更名为您喜欢的名称。

      注意:不得更改.Dll后缀,

    3、在您的程序中声明该.dll文件,就直接调用了。

二、加密锁进行加密设计的简单应用:

    许多软件开发商要求用户第一次使用软件时必须注册,之前是绑定机器的唯一标识,如硬盘ID或网卡MAC地址,将注册信息写在硬盘上,一旦用户机器更换硬件或重做系统,就需要重新注册,这样很不方便。开发商可采用锁的GUID作为每个用户的唯一标识,并将注册信息写在锁存储区中,这样不会因为用户更换硬件或重做系统而导致软件无法使用,从而减少不必要的纠纷和麻烦

    例如软件开发商在给客户发放加密锁时,将此GUID和相应的客户信息记录,最终使用者遇到问题,报此GUID,开发商会很快查到其详细信息,对其采取维护,另一方面,加密锁的发放也不会混乱

此总加密方式为最简单的加密应用,不需要编程,就像绑定判断您的电脑硬盘一样的原理。

三、3DES算法:

    1、3DES算法简介:

    3DES为对称加密算法,即加解密使用同一密钥,每次加密的数据长度必密须为8的倍数。密钥保存在加密锁中,可以通过设号工具修改密钥,但是无法读出密钥。

3DES算法加密文件采用了3DESEncryt 和 3DESDecrypt 使用3DES算法进行数据加解密。

    2、文件加解密

    3DES算法解密文件采用了文件加解密功能,可通过3DESEncryptFile和3DESDecryptFile 来处理。由于硬件性能的限制,当处理大数据量时会出现延迟现象,建议不要对大数量进行处理。

说明:3DES中的IV(初始向量)是为了增强加密强度,不同的IV可使得加密相同的数据产生不同的结果,从而更加安全可靠。

    3、、3DES算法:

    明文通过3DES加密后,用相同的密钥进行解密得到明文,在软件中有许多数据需要通过3DES处理,比如写数据库中的记录,先通过3DES加密,将结果存入数据库中,这样直接查看记录是加过密的,只有再通过3DES解密才能得到真正有意义的数据,另外,3DES还可以加密小文件,比如给对方发送一个文本文件,怕被别人截获,可行进行3DES加密,对方收到加过密的文件,再用相同的密钥解密,这样就算被别人获取到也是无意义的数据。

四、RSA算法

    1、RSA算法简介:

    RSA为非对称加密算法,即加解密使用不同的密钥,称之为密钥对,分为公钥和私钥,在用于数据加密时,公钥用于数据加密,而私钥用于数据解密,公钥可以公开,但私钥必需保密。

    RSA密钥对需要通过设号工具来生成,且每次生成的密钥对是不同的,也就是说,两只加密锁的RSA密钥对是不同的,用一只加密锁通过RSA进行加密的数据必须通过同一只锁来解密。

    RSA算法为1024位(128字节),每次加解密的数据为128字节,大于128字节的数据可以分多次进行。公钥和私钥保存在加密锁中,同时提供了RSAPublic和RSAPrivate 进行公钥加密私钥解密的操作,如果需要与其它系统进行数据交换可通过RSAExportPublicKey来导出公钥,但私钥无法导出。

2、RSA算法的应用:

    RSA算法效率很低,不易用于长数据的加密。如上图,RSA算法与3DES算法有很大的不同,3DES中加解密是用相同的密钥,而RSA中,加密是用公钥,密文的解密则需要私钥,并且在锁中每生成一次密钥对,公钥和私钥都会变,也就是同一只锁用公钥加密后,必须使用同一只锁的私钥去解密,根据算法的特性,可加密软件中使用的参数,如软件中的全局变量,软件启动时,全局变量赋值,将其用RSA约定的公钥进行加密,使用时再用私钥去解密,如果软件运行过程中,更换另一只锁则无法正确解密,从而使软件瘫痪。另外还可以这样使用,锁中生成密钥对后,将要加密的数据加密后存入存储区内,需要用到这些数据时,从存储区内读取后直接用私钥解密即可,如果存储区的数据被截获,放在另一只锁相同位置中,但生成的密钥对不相同,也是无法正常解密

五、MD5算法:

    1、RSA算法简介:

    MD5是单向散列算法,又称hash函数,可以把任意长的输入消息串变化成固定长度(16字节)的输出串(散列值),而且是单向的,即无法通过散列值来推出原始数据, 可用于产生消息摘要,密钥加密等。

    MD5加密锁会提供HASHMD5进行MD5运算,同时还提供了HASHMD5File对文件进行MD5运算,由于硬件性能的限制, 当处理大数据量时会出现延迟现象,建议不要对大数据量进行处理。

    2、RSA算法的应用:

    MD5算法可用于消息认证,消息认证可以解决伪造、篡改及冒充等问题

    MD5算法对原始消息进行运算,生成消息摘要,例如将掉电保持存储区数据进行MD5运算,生成摘要H1,在用到存储区数时先进行验证,生成摘要H2,如果摘要D1和摘要D2不相同,则说明存储区数据被修改,这样操作可防止数据被篡改。

    MD5还可以对文件进行认证,例如软件中调用DLL文件,怕被别人替换,可先进行MD5文件签名,在调用之前做个摘要对比,确保文件的完整

六、加密锁可编程简介:

    1、可编程加密锁支持可编程功能,用户可通过IDE使用C 语言进行开发,操作简单方便,只需有C语言基础即可。通过可编程功能,用户可以将代码的一部分在加密锁中运行,极大的加强了安全性(有的可编程加密锁甚至支持易语言等多种编程语言)。

    2、一般加密锁可执行文件最大支持2K,在编译后生成的结果为后缀为bin 的二进制文件,通过将生成的可执行bin文件下载到可编程加密锁中,就可以通过应用程序API 函数通过加密锁运行并获得相应的结果

七、加密狗程序设计防破解的一些技巧:

    1、在很少使用的代码中调用加密锁。那么看似已破译的程序就会经常发生异常现象。

    2、根据时间调用加密锁。上午调用的数据下午(或隔日)使用。破译者为了分析这种数据就要花一天或几天的时间。这就可以拖跨破译者。

    3、加密锁校验函数不一定义成一个单独函数,而宜定义成若干个小函数分散使用。

    4、检查程序代码的校验和,以防非法修改。

    5、 以各种不同的随机访问掩护真实的加密锁访问。对随机询问的答复进行处理,但不真正使用它(设置烟雾弹,麻痹破译者,耗费他的精力,)。

    6、可在加密锁里的多个地址预先写入不同数据,校验锁时可以随机地对其中的某个地址进行校验。(如可随机产生一个数,再根据该数来决定对锁里哪个地址的值进行校验。)

    7、在程序中不同的地方对加密锁进行检测,即多点加密。这个方法可配合方法一使用。

    8、在您程序的运行过程中,您可以定时、不定时地对加密锁进行随机检测。

    9、您从加密锁取得返回数据后,并不立即判定,而是在后来才去判定是否正确;在判定加密锁错误时,并不立即提示或退出,而是在以后提示或退出或程序照常运行但出现偏差或溢出等等错误。

    10、可以将加密锁返回值作为数组的索引、常量、计算单元和校验码;可以将加密锁返回值作为指针来控制程序执行或作为在不同表中跳转的索引;也可以使用加密锁返回值来加密或解密部分代码或数据。加密锁返回值使用后立即删除。

    11、软件运行过程中存储一些用于随机检测的数据,该数据区数据在掉电后丢失,防止数据被破解者模拟:

例如软件启动时,由系统生成随机数,或自定义随机数,也可采用锁中产生的随机数,假定生成随机数A,将A写入内存中,在软件运行过程中,可读取内存区数据,获取的数据与A做对比,如果相等可继续写入随机数,这样每次对比的数都在变化,破解者无法模拟,另一方面,可防止多个软件共享同一只加密锁,试想一下,多个相同软件在启动时写的随机数会不一样的,自然每套软件写的随机数与内存区不同,最终只有一套软件可正常工作,那就是最后对存内区操作过的软件。

    12、在软件的关键运行或计算环节,设置加密锁检测调用设置,发现加密锁不在等非法操作,强制关闭程序并不予保存,杜绝用户非法使用您的软件,否则他会采用多机公用一个加密锁(反正拔掉后正常,不用白不用,呵呵)。

      一般加密锁生产商都会提供详细的使用说明及相关算法范例,本贴仅供大家参考,上述总结不一定全面,若有不正确之处还请大家指正,毕竟我刚接触几天,没时间学习!

[此贴子已经被作者于2009-8-26 16:03:33编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2008/9/5 2:07:00 [只看该作者]


狐表娱乐游戏开发之拼图游戏第三版(源码已公开):


      http://fox.egridsoft.com/dispbbs.asp?boardid=2&Id=4472&page=2

[此贴子已经被作者于2012-4-13 9:54:24编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
TrackBar 控件应用之《狐表多功能颜色管理器》  发帖心情 Post By:2008/9/5 2:07:00 [只看该作者]

色卡动态效果网格线: 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:专业报表多功能管理器.rar

 

 

色卡非动态效果网格线:

  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:专业报表多功能管理器.rar

[此贴子已经被作者于2012-6-18 21:43:38编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2008/9/5 2:07:00 [只看该作者]

界面录入之:日期时间录入(星期、公历、农历版)

     http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=6427&move=next

 

 

【获取本机IP及城市】:

 

首先建立两个全局变量:Vars("本机IP") 和Vars("本机城市") ,打开项目后执行下面的代码,以后系统任意位置就可应用这两个全局变量的值了。

 

On Error Resume Next
Dim ip,cs As String
Dim httpURL As New System.Uri("http://ip.qq.com/")
Dim httpReq As System.Net.HttpWebRequest = System.Net.WebRequest.Create(httpURL)
httpReq.Method = "GET"
Dim httpResp As System.Net.HttpWebResponse = httpReq.GetResponse()
httpReq.KeepAlive = False
Dim reader As New IO.StreamReader(httpResp.GetResponseStream, System.Text.Encoding.GetEncoding(-0))
Dim respHTML As String = reader.ReadToEnd()

With CreateObject("vbscript.regexp")
    .Global = True
    .MultiLine = True
    .ignorecase = True
    .Pattern = "当前的IP为.*?\<.*?\>([^<>]+)[\s\S]*?IP所在地为.*?\<.*?\>([^<>]+)"
    If .test(respHTML) Then
        With .Execute(respHTML)(0)
            Vars("本机IP") = Replace(.submatches(0) & "|" & .submatches(1), "&nbsp;", "|").split("|")(0)
            Vars("本机城市") = Replace(.submatches(0) & "|" & .submatches(1), "&nbsp;", "|").split("|")(1)
        End With
    End If
End With

[此贴子已经被作者于2013-6-10 21:17:46编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
ly-wzm
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:20 积分:336 威望:0 精华:0 注册:2008/9/3 1:41:00
  发帖心情 Post By:2008/9/5 6:37:00 [只看该作者]

期待...

 回到顶部
帅哥哟,离线,有人找我吗?
lxl
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2008/9/5 6:39:00 [只看该作者]

期待图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
八路军参谋长
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 八路军参谋长
等级:婴狐 帖子:77 积分:667 威望:0 精华:0 注册:2008/8/31 21:18:00
  发帖心情 Post By:2008/9/5 6:58:00 [只看该作者]

……………………………………………………………………………………
     /\___________   你就象这支钥匙
     \/~~~~~~~~`  为我打开智慧之门
……………………………………………………………………………………

[此贴子已经被作者于2008-9-5 7:06:13编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
易服
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
  发帖心情 Post By:2008/9/5 7:42:00 [只看该作者]

敬佩

 回到顶部
总数 123 1 2 3 4 5 6 7 8 9 10 下一页 ..13