精华内容
下载资源
问答
  • DirectX修复工具V4.1公测!

    万次阅读 多人点赞 2019-07-28 12:46:41
    DirectX修复工具V3.9版已经正式发布了!还是像原来一样,共提供三个版本以供不同用户进行选择,请直达链接下载:标准版,增强版,在线修复版。 以下的公测说明已经失效,仅供参考。 -------------------------...

    最后更新于2020-12-28

            年关将近,大家2020年过得还好吗?虽然我们在2020年经历了疫情,但我们还是期待2021年会变得更好。2020年中旬,DirectX修复工具V4.0版正式发布,经过广大用户半年多的使用,DirectX修复工具又针对一些用户反馈的问题作出了改进,并随之开启了公测。此次新版本将重点放在数据包更新、BUG修复等,并提供少量新的功能,期望能帮助更多的用户修复他们的电脑,解决更多的0xc000007b问题。

            此次更新主要包括:更新c++2015-2019数据包至最新版;对于修复失败的c++文件,提供了“在线修复”功能;修复了诸如文字显示错误、文件校验错误等等一些小BUG。其他具体的更新情况可以等到正式版发布时在更新日志中查看。

            此次测试版发布方式将较之前的版本有较大的不同,测试版不再在本博客中直接提供下载链接,而是需要用户自行通过DirectX修复工具的“检查更新”功能来升级。之所以做了这个改变,也是为了间接测试一下程序更新功能是否完善,以便将来的正式版能为大家提供更好的服务。

     

            说了这么多,那如何更新呢?如果您想试用DirectX修复工具V4.1版,您必须首先同意并遵守下述规定:

    •     提供给您的程序属于测试版,有时间使用限制,仅限您本人使用,禁止以任何形式发布或共享;

    如果您同意上述条款,请按下面的步骤进行操作:

    1、首先下载DirectX修复工具V4.0版。

    传送门:标准版增强版在线修复版

    2、运行V4.0版,并在“工具”->“选项”->“实验室”中勾选“允许更新为最新测试版程序”功能,并点击下方“确定”按钮(如下图)。

    3、在本程序“帮助”->“关于”窗口中,点击“检查更新”按钮(如下图),之后就能根据提示升级至最新测试版(备注:公测阶段使用的程序版本号为V4.0.x,在正式版发布时会升级为V4.1)。

    4、按提示更新后,无需重启,即可开始使用新版本。您试用测试版后,如果有任何意见、建议或者疑问,均可通过以下两种方式进行反馈:

    (1)在本程序的“帮助”菜单里有“用户反馈”的功能,请在此处填写相关信息进行反馈(推荐方式)。

    (2)直接给作者邮箱发邮件进行反馈。

    此反馈不是强制的,但是强烈建议您在试用后进行反馈,以便改进软件质量。对您的支持深表感谢。

     

            以下公测说明已失效,仅供参考。

    --------------------------------------------------------------------------------------------------------------------

    --------------------分割线,以下为往期公测,现已失效,仅供参考-----------------------------

    --------------------------------------------------------------------------------------------------------------------

            大家好,即日起DirectX修复工具V4.0版发布最后一个公测版本,随后正式版将会与大家见面。本次程序更新将跨越一个大版本号,因此内容也有重要更新,不会让大家失望。此次V4.0版开发,开发重点有3个主要方向。第一,着重开发一些用户问的最多、需求最多,但是之前版本又不具备的新功能。第二,更新程序的数据包,使之能修复更多的内容。第三,之前版本BUG的修复。根据这些开发思路,本次更新将会带来如下内容:

            1、将原有的DirectX Repair.exe和DirectX_Repair_win8_win10.exe整合为单一的exe文件。新的DirectX Repair.exe将不再区分Windows版本,做到一个程序通吃WindowsXP、Win7、Win8、Win8.1、Win10,同时兼容32位和64位,彻底免去用户选择的困扰。

            2、程序界面更新,原“实验室”标签内的功能放到其他对应标签内,“实验室”中新增了控制程序更新的选项。。

            3、在“选项”菜单里新增了C++控制功能,共有5种C++修复模式可供选择(见图1)。虽然自V3.8版起就支持通过命令行选择C++修复模式,但由于一直没有GUI界面导致部分用户的使用体验较差。之前用户问的最多的问题就是为什么增强版第一次使用有那个检测C++的小箭头,但是以后再运行就没有了?其实程序有智能检测功能,只有当程序检测到系统中C++组件存在异常时,才会显示修复C++的箭头,如果C++都正常时则不显示。此次新增的“强制检测”检测选项可以让程序总是显示修复C++的箭头,避免误解。

    图1 全新的界面,全新的C++修复模式选项

           

            4、全面改进C++修复失败后的提示。在V3.9之前,如果C++修复失败,只会画一个红色叉子;在V3.9版中,如果开启了调试功能,除了叉子之外还会写出异常文件的数量。虽然有一定的提示,但用户仍然不知道具体是哪些文件修复失败导致的红色叉子,更不知道如何处理这些修复失败的文件。此次更新程序将着重优化此问题,当开启了调试模式后(见图2),在C++更新页面,如果修复完成后还存在问题,则程序不仅会给出错误数量提示,还会将有问题的C++变成超链接模式(见图3),方便跳转到全新的界面查看具体问题文件(见图4)。新的详细信息界面不仅会列出每个C++版本存在异常的文件,还会根据错误不同,给出详细的修复提示或解决方案,进最大努力协助用户修复异常的文件。只要在异常文件上点击右键即可显示修复提示(如图5)。这里截图只显示了一种错误——文件创建失败,还有很多其他错误原因及对应的解决方案,这里不一一列举了,如果您的电脑存在那些问题,程序都会对应进行提示的。不管是苦恼很久的修复失败,还是强迫症想要修复所有的文件,新版本都能满足您的要求。

    图2 “常规”选项卡开启调试模式

     

    图3 修复失败后变成超链接形式

     

    图4 全新的详细错误信息界面

     

    图5 修复提示

     

            5、优化了扩展功能,使标准版、在线修复版程序可以更好的扩展为增强版。同第2条更新一样,虽然在之前的版本里就支持通过命令行切换加密下载和非加密下载,但是由于没有GUI界面,同样影响了部分用户的使用。此次更新,在扩展界面直接出现了可视化图标,方便用户切换(如图6)。程序默认使用非加密连接扩展数据包,如果在您的电脑上无法扩展,可直接点击小锁的图标切换为加密连接,这样可以避免很多由于防火墙、安全策略限制导致扩展失败的问题。

            同时在settings.ini文件中新增了一条命令:ExtendFirst=True。如开启此条命令后,程序在运行前会自动扩展程序的数据包为增强版,免去了需要去扩展界面手动扩展的麻烦。同时,通过命令设置,也可以降低对电脑操作不熟练用户的使用难度,更方便地帮他们将标准版、在线修复版程序扩展为增强版。命令行同样支持此命令,具体语法请通过/?或/Help参数查看。

    图6 可切换加密/非密链接

     

            6、优化DirectX加速的支持,优化对于显卡驱动的检测,如果修复完成后DirectX加速仍未开启则提示用户。

            7、更新了C++2013数据包,更新了C++2015-2019数据包,新的数据包可通过扩展下载。同时,由于最新版C++2013需要的认证文件在原版Windows7中不存在,此次更新支持手动修复无效的证书。此修复需要按照本文第4条(图2)开启“修复失败时启用错误调试”功能后才能进行。对于后续的Windows7 SP1版、Win8、Win10等系统无需此项修复。

            8、优化了API Sets检测修复模式。旧版本中的“可用”状态将不再存在,程序会进行增强检测,结论只有“正常”或“异常”。

            9、一个神秘黑科技,0xc000007b的克星。该功能由于还在开发中,故暂未提供入口。仅支持部分受邀用户测试该功能。

            10、修复若干BUG,其他若干改进,若干新功能,这些都不在这里一一赘述,大家可以待正式版发布后,到更新日志中查看。

     

            这么多新功能,那如何试用呢?如果您想试用DirectX修复工具V4.0版,您必须首先同意并遵守下述规定:

     

    •     提供给您的程序属于测试版,有时间使用限制,仅限您本人使用,禁止以任何形式发布或共享;

     

    如果您同意上述条款,请按下面的步骤进行操作:

    1、首先前往我的百度网盘下载最新版公测程序(备注:公测阶段使用的程序版本号为V3.9.x,在正式版发布时会升级为V4.0)。

    https://pan.baidu.com/s/1UTO1xPDF7htZ4h7_wmGBuw

    密码:bhdg

    2、运行新的“DirectX Repair.exe”,在“选项”-“扩展”选项卡中扩展程序至增强版,并在“常规”选项卡中勾选“修复失败时启用错误调试”功能。然后回到主界面点击“检测并修复即可”。如果任何组件修复失败,请按照本文上述第4条内容手动修复异常文件。

    3、您试用测试版后,如果有任何意见、建议或者疑问,均可通过以下两种方式进行反馈:

    (1)在本程序的“帮助”菜单里有“用户反馈”的功能,请在此处填写相关信息进行反馈(推荐方式)。

    (2)直接给作者邮箱发邮件进行反馈。

    此反馈不是强制的,但是强烈建议您在试用后进行反馈,以便改进软件质量。对您的支持深表感谢。

    在此,也感谢大家多年来对我的支持,希望在大家的协助测试下,V4.0版本的各项功能完美无BUG。

     

     

    --------------------------------------------------------------------------------------------------------------------

    --------------------分割线,以下为往期公测,现已失效,仅供参考-----------------------------

    --------------------------------------------------------------------------------------------------------------------

            大家好,即日起发布DirectX修复工具V3.9版的最后一个公测版(版本号V3.8.8特别版),正式版预计于近日内发布,尽情期待。V3.9版中主要做出了如下改进:1、修复了一个因文件属性异常可能导致修复失败的BUG。此BUG有一定出现概率,特别是在API Sets等文件上,此次测试版做出了相应的改进,可以解决此问题导致的修复失败。2、修复了一个因文件安全状态异常可能导致修复失败的BUG。3、增强了对于C++2010修复的支持。根据众多用户的反馈,C++2010在部分电脑上总是修复失败。此次测试版将针对修复失败的问题作出改进,并且根据用户的反馈决定后续改进方向,最终根据实际情况决定是否将该代码推广到所有c++组件上。如果您想尝试此修复模式,别忘了要在“实验室”里把C++强力修复打勾。4、更新了DirectX加速的检测算法,新的算法速度稍慢,但是计算结果准确,可以保证与DirectX诊断工具一致。5、新增对于c++2015-2019数据包的支持。6、大幅优化程序体积。7、针对c++修复失败的情况,新增了修复失败文件数量的显示。请在“选项”界面中开启“修复失败时启用错误调试”功能,然后即可在更新c++的界面查看具体修复失败的文件数量,如下图。图中的x/y,y为总问题数,x为已修复成功数量。以图中为例,0/1意味着此次修复,发现c++2012中有一个文件存在异常,修复成功了0个。

     

     

    下面来说说对于V3.9公测版的一些声明:

    如果您想试用DirectX修复工具V3.9版,您必须首先同意并遵守下述规定:

     

    •     提供给您的程序属于测试版,仅限您本人使用,禁止以任何形式发布或共享;

     

    如果您同意上述条款,请按下面的步骤进行操作:

    1、首先下载DirectX修复工具V3.8增强版,下载后解压。

    2、前往我的百度网盘下载最新版公测程序(备注:公测阶段使用的程序版本号为V3.8.x,在正式版发布时会升级为V3.9)。

    https://pan.baidu.com/s/1AucOdjIh2tJ3EW0EcWEvYw

    密码:jcix

    请将下载的测试版文件解压,将解压得到的“DirectX Repair.exe”等文件和“Data”文件夹拷贝到刚才下载的V3.8版文件夹下,并覆盖原文件。

     

    3、运行新的“DirectX Repair.exe”,在“选项”中勾选“C++强力修复”,然后进行修复即可。

     

    4、您试用测试版后,如果有任何意见、建议或者疑问,均可通过以下两种方式进行反馈:

    (1)在本程序的“帮助”菜单里有“用户反馈”的功能,请在此处填写相关信息进行反馈(推荐方式)。

    (2)直接给作者邮箱发邮件进行反馈。

    此反馈不是强制的,但是强烈建议您在试用后进行反馈,以便改进软件质量。对您的支持深表感谢。

     

     

    以下的公测说明已经失效,仅供参考。

    --------------------------------------------------------------------------------------------------------------------

    --------------------分割线,以下为往期公测,现已失效,仅供参考-----------------------------

    --------------------------------------------------------------------------------------------------------------------

        大家好,时间飞快,转眼2018年即将逝去。V3.7版本发布后广受好评,切实解决了很多用户软件使用的异常。V3.7版中首次引入的强力修复功能,也为一些之前版本解决不了的顽疾提供了修复方案。经过正式版发布后的几个月的用户反馈,目前发现了V3.7版存在的一些不足之处,因此在此启动V3.8版公测活动,致力于为大家提供更好、更快的修复体验。今日发布的公测版为V3.8版发布前的最后一个公测版,V3.8正式版即将发布,敬请期待。

     

        V3.8版中的目前最主要有如下更新:1、更新了c++2015/c++2017数据包至最新,优化程序体积,提高修复成功率。2、针对V3.7版c++强力修复功能存在的一个小BUG进行了修复。V3.7版在使用强力修复时,在极个别的电脑上会出现无法修复c++的情况(具体现象为弹出修复c++的窗口后,c++对应项目前直接画红叉,然后开始15秒倒计时,此时主界面上的进度条并未走完,进度卡住)。新版程序已经针对此问题做出了一定程度的优化,可以最大程度避免此问题。如果有用户遇到此类问题的,请参阅如下说明试用V3.8版。3、新增可以通过命令行直接快速开启、关闭DirectX加速,无需显示程序主窗口。具体命令为:/EnableDirectDraw以及/DisableDirectDraw,分别表示快速开启Direct加速及快速关闭Direct加速。此命令可以配合/passive以及/quiet命令,可实现提示的自动关闭以及静默操作。4、更新了程序的调用机制。

     

    下面来说说对于V3.8公测版的一些声明:

    如果您想试用DirectX修复工具V3.8版,您必须首先同意并遵守下述规定:

     

    •     提供给您的程序属于测试版,仅限您本人使用,禁止以任何形式发布或共享;

     

    如果您同意上述条款,请按下面的步骤进行操作:

    1、首先下载DirectX修复工具V3.7增强版,下载后解压。

    2、前往我的百度网盘下载最新版公测程序(备注:公测阶段使用的程序版本号为V3.7.x,在正式版发布时会升级为V3.8)。

    https://pan.baidu.com/s/1-LbRvz5aFlvzMA2pdorsEw

    密码:uxc3

    请将下载的测试版文件解压,将解压得到的“DirectX Repair.exe”文件拷贝到刚才下载的V3.7版文件夹下,并覆盖原文件。

     

    3、运行新的“DirectX Repair.exe”,打开程序的“选项”界面,在扩展选项卡内将程序扩展完整。扩展完毕后进行修复即可。

     

    4、您试用测试版后,如果有任何意见、建议或者疑问,均可通过以下两种方式进行反馈:

    (1)在本程序的“帮助”菜单里有“用户反馈”的功能,请在此处填写相关信息进行反馈(推荐方式)。

    (2)直接给作者邮箱发邮件进行反馈。

    此反馈不是强制的,但是强烈建议您在试用后进行反馈,以便改进软件质量。对您的支持深表感谢。

       

     

     

     

     

     

        以下的公测说明已经失效了,仅供参考。

    --------------------------------------------------------------------------------------------------------------------

    --------------------分割线,以下为往期公测,现已失效,仅供参考-----------------------------

    --------------------------------------------------------------------------------------------------------------------

     

        大家好,DirectX修复工具V3.7版在大家的期待中即将与大家见面了,从即日起开始最后阶段公测。最后阶段公测的程序相较之前的各阶段的功能更加丰富,也更接近最后的正式版本。

     

        此次更新的内容较多,最主要的有如下几点:1、新增对于一个DirectX12文件d3dcompiler_47.dll的支持。2、更新了c++ 2015数据包,可以修复更多问题。3、将c++ 2015数据包中的模块进行了细化,分为2015主文件和API Sets,程序可以独立修复,独立显示结果,方便查看问题所在。4、新增了API Sets强力修复功能,修复成功率大幅提升(请到“选项”菜单内开启)。5、加强c++ 2015对全系列Windows系统的优化,可以修复更多问题。6、新增了对于繁体中文的支持(启用方法是在settings.ini文件中把Language的值改为tChinese)。7、新增对于c++ 2017的支持,同时可大幅减少c++ 2015更新失败的问题。8、新增C++强力修复功能,极大提高c++修复成功率。还有诸多细节性问题在此不做一一介绍,待正式版发布时可以从更新日志内查看。

    blog.csdn.net/vbcom

        此次更新的功能主要集中在选项菜单里的“实验室”标签内。C++强力修复功能,通过全新的代码设计,彻底改善对于顽固异常文件的处理,极大提高修复成功率。API Sets强力修复功能,参照了DirectX文件的精细修复方式,极大地改善了修复失败的情况。修复失败时启用错误调试功能,针对之前版本出现的所有文件均修复失败的问题专门研发,可以在出现问题时分析错误原因,为将来的正式版彻底杜绝此问题奠定基础。

     

        V3.7版所要包含的主要新功能在此测试版上已经全部提供,后续的测试版本将主要集中在目前版本的调优及BUG消除上,预计正式版在2018年年中发布,敬请期待。

        

     

        下面来说说对于V3.7公测版的一些声明:

    如果您想试用DirectX修复工具V3.7版,您必须首先同意并遵守下述规定:

     

    •     提供给您的程序属于测试版,仅限您本人使用,禁止以任何形式发布或共享;

     

     

     

     

     

    如果您同意上述条款,请按下面的步骤进行操作:

    1、首先下载DirectX修复工具V3.5增强版,下载后解压。

    2、前往我的百度网盘下载最新版公测程序(备注:公测阶段使用的程序版本号为V3.6,在正式版发布时会升级为V3.7)。

    https://pan.baidu.com/share/init?surl=HbBzz2Q1fJf4XzoitfsAVg

    密码:dt5u

    请将下载的测试版文件解压,将解压得到的“DirectX Repair.exe”文件以及“Data”文件夹拷贝到刚才下载的V3.5版文件夹下,并覆盖原文件和文件夹。

     

    3、运行新的“DirectX Repair.exe”,并进行修复即可。

     

    4、您试用测试版后,如果有任何意见、建议或者疑问,均可通过以下两种方式进行反馈:

    (1)在本程序的“帮助”菜单里有“用户反馈”的功能,请在此处填写相关信息进行反馈(推荐方式)。

    (2)直接给作者邮箱发邮件进行反馈。

    此反馈不是强制的,但是强烈建议您在试用后进行反馈,以便改进软件质量。对您的支持深表感谢。

     

     

     

     

     

    --------------------------------------------------------------------------------------------------------------------

    ------------------------------分割线,以下为往期公测,现已失效,仅供参考-------------------------------------

    --------------------------------------------------------------------------------------------------------------------

     

        经过第一阶段的公测,我又收到了不少用户的反馈。根据预先的进度安排,从即日起DirectX修复工具V3.5版进入第二阶段公测。此阶段公测将持续到本月底,之后正式版将会与大家见面。

     

        V3.5版的更新的重点是新增了扩展功能,可以使任何版本的程序通过扩展成为增强版。今后大家不必再纠结下载到底是不是增强版,因为扩展后的程序一定是增强版。另外,程序更新了c++2013数据包,新增支持c++2015数据包,全面提升了可修复的文件范围。程序还根据大家的反馈,修复了一系列之前版本程序存在的BUG。并且,针对部分用户全部文件均下载失败的情况,给出了更加友好的提示。还有其他诸多细节性更新可以待正式版发布后在更新日志中查看。

     

        首先还是来说说对于V3.5公测版的一些声明:

    如果您想试用DirectX修复工具V3.5版,您必须首先同意并遵守下述规定:

     

    • 提供给您的程序属于测试版,仅限您本人使用,禁止以任何形式发布或共享;

     

     

     

    如果您同意上述条款,请按下面的步骤进行操作:

    1、首先下载DirectX修复工具V3.3增强版,下载后解压。

    2、前往我的百度网盘下载最新版公测程序(备注:公测阶段使用的程序版本号为V3.4,在正式版发布时会升级为V3.5)。

    http://pan.baidu.com/s/1hrEe8sO

    密码:uve3

    请将下载的压缩包解压,将解压得到的“DirectX Repair.exe”文件放在V3.3版目录下,并覆盖原文件。

     

    3、运行“DirectX Repair.exe”,打开主界面的的“工具”菜单下的“选项”对话框,在“扩展”界面中单击“开始扩展”。

     

    4、扩展成功后重新运行程序进行修复即可。(如果扩展失败,按照步骤3的方式重试)

     

     

    5、您试用测试版后,如果有任何意见、建议或者疑问,均可通过以下两种方式进行反馈:

    (1)在本程序的“帮助”菜单里有“用户反馈”的功能,请在此处填写相关信息进行反馈(推荐方式)。

    (2)直接给作者邮箱发邮件进行反馈。

    此反馈不是强制的,但是强烈建议您在试用后进行反馈,以便改进软件质量。对您的支持深表感谢。

     

     

     

    ---------------------------------------------------------------------------------------------------------------------------------------------

    ------------------------------分割线,以下为往期公测,现已失效,仅供参考------------------------------------------------

    ---------------------------------------------------------------------------------------------------------------------------------------------

     

        大家好,DirectX修复工具V3.5经过了前期一段时间的筹备与开发,第一版测试版已经准备就绪,开始接受大家的测试了。此次公测将分为多个阶段,现在为第一阶段。

        此次更新的重点是新增了扩展功能,可以使任何版本的程序通过扩展成为增强版。今后大家不必再纠结下载到底是不是增强版,因为扩展后的程序一定是增强版。另外,程序更新了c++2013数据包,新增支持c++2015数据包,全面提升了可修复的文件范围。还有其他诸多细节性更新可以待正式版发布后在更新日志中查看。

     

        首先还是来说说对于V3.5公测版的一些声明:

    如果您想试用DirectX修复工具V3.5版,您必须首先同意并遵守下述两条规定:

    1、提供给您的程序属于测试版,仅限您本人使用,禁止以任何形式发布或共享;

    2、请您务必将修复是否成功的结果反馈给我(以E-mail形式反馈),以便我及时改进软件质量。

     

     

    如果您同意上述两条条款,请按下面的步骤进行操作:

    1、首先下载DirectX修复工具V3.3增强版,下载后解压。

    2、向作者邮箱发邮件以获得DirectX修复工具V3.5公测版程序。

    请务必按照如下格式发送邮件,否则将不予回复。邮件主题:参与DirectX修复工具V3.5公测,邮件内容:我同意在收到测试程序15日内将测试结果通过邮件的形式进行反馈。(如有其他问题等可在上述邮件内容后写明)

    作者会以电子邮件的形式回复您的邮件,并在回复的邮件附件中包含测试程序。请您将收到的压缩包解压,将解压得到的“DirectX Repair.exe”文件放在V3.3版目录下,并覆盖原文件。


    3、运行“DirectX Repair.exe”,打开主界面的的“工具”菜单下的“选项”对话框,在“扩展”界面中单击“开始扩展”。

     

    4、扩展成功后重新运行程序进行修复即可。(如果扩展失败,按照步骤3的方式重试)

     

     

     

    ---------------------------------------------------------------------------------------------------------------------------------------------

    ------------------------------分割线,以下为往期公测,现已失效,仅供参考------------------------------------------------

    ---------------------------------------------------------------------------------------------------------------------------------------------

     

        大家好,DirectX修复工具又将迎来新一次的版本更新。在V3.2版发布的时间里,很多玩家向我提出反馈和建议。结合他们的建议和我的实际测试,发现V3.2版存在一些小小的BUG,因此,此次更新的重点是之前版本的BUG修复。

     

     

        首先来说说对于V3.3公测版的一些声明:

    如果您想试用DirectX修复工具V3.3版,您必须首先同意并遵守下述两条规定:

    1、提供给您的程序属于测试版,仅限您本人使用,禁止以任何形式发布或共享;

    2、请您务必将修复是否成功的结果反馈给我(以E-mail形式反馈),以便我及时改进软件质量。

     

    如果您同意上述两条条款,请按下面的步骤进行操作:

    1、首先下载任意版本的DirectX修复工具V3.2版:
    标准版增强版在线修复版

    2、下载后解压。

    3、向作者邮箱发邮件以获得DirectX修复工具V3.3公测版程序(邮件主题:参与DirectX修复工具V3.3公测)。作者会以电子邮件的形式回复您的邮件,并在回复的邮件附件中包含测试程序。请您将收到的压缩包解压,将解压得到的“DirectX Repair.exe”文件放在V3.2版目录下,并覆盖原文件。



    4、运行程序进行修复即可。

     

     

     

    ---------------------------------------------------------------------------------------------------------------------------------------------

    ------------------------------分割线,以下为往期公测,现已失效,仅供参考------------------------------------------------

    ---------------------------------------------------------------------------------------------------------------------------------------------

     

        大家好,不知不觉间DirectX修复工具V3.0发布已经快1年的时间了。这1年中,我收到很多玩家的反馈,并且结合了目前最新的实际情况,准备对DirectX修复工具进行一次升级。此次升级主要是更新了程序的数据包,以便符合最新的趋势;新增了一个控制DirectX加速的功能,这个功能也是之前网友们问的最多,最有疑问的功能;当然,程序还对很多细节进行了改进,这里就不一一介绍了,还是待正式版发布后大家通过更新日志来了解吧。

     

        下面来说说对于V3.2公测版的一些声明:

    如果您想试用DirectX修复工具V3.2版,您必须首先同意并遵守下述两条规定:

    1、提供给您的程序属于测试版,仅限您本人使用,禁止以任何形式发布或共享;

    2、请您务必将修复是否成功的结果反馈给我(以E-mail形式反馈),以便我及时改进软件质量。

     

    如果您同意上述两条条款,请按下面的步骤进行操作:

    1、首先下载DirectX修复工具通用数据包2014Q3版:
    http://download.csdn.net/detail/vbcom/7467795

    2、下载后解压得到Data文件夹。

    3、向作者邮箱发邮件以获得DirectX修复工具V3.2公测版程序(邮件主题:参与DirectX修复工具V3.2公测)。作者会以电子邮件的形式回复您的邮件,并在回复的邮件附件中包含测试程序。请您将收到的压缩包解压,将解压得到的“DirectX Repair.exe”文件放在与Data文件夹同一目录下。



    4、运行程序进行修复即可。

    展开全文
  • 出品 |CSDN、灵钛科技最近,链圈被「V神要来中国」的消息给刷屏了。根据营长的暗中观察,V神今天已经抵达中国,参加了「2019以太坊技术及应用大会」的6月25-27日...
        

    640?wx_fmt=jpeg

    出品 | CSDN、灵钛科技



    最近,链圈被「V神要来中国」的消息给刷屏了。


    根据营长的暗中观察,V神今天已经抵达中国,参加了「2019以太坊技术及应用大会」的6月25-27日的黑客马拉松。同时,也为4天后的主会做准备。

    640?wx_fmt=jpeg

    图片来源:MIT Technology Review


    不仅V神本人,这次大会以太坊创始人Vitalik Buterin还带来了一众以太坊的核心开发者,包括Hsiao-Wei Wang、Geth核心开发者Gary Rong,以及众多以太坊生态圈的优质项目负责人。


    难怪链圈的小伙伴都那么鸡冻。


    640?wx_fmt=jpeg


    不过作为一名区块链开发者,很多小伙伴则并不是因为见到V神本尊而鸡冻,而是因为能够在「2019以太坊技术及应用大会」上,第一时间了解以太坊2.0的新进展、掌握以太坊开发的新技术、了解以太坊生态的新变化


    毕竟,在国内以太坊开发圈,能亲自与以太坊的缔造者和顶级玩家面对面的机会太少了。


    如果你也是这样一名开发者,那么不要犹豫,「2019以太坊技术及应用大会」是你必须要参加的活动


    什么,为什么?营长这就给你6个理由


    *扫描上面海报二维码,查看大会详细日程



    理由1:V神带队,在家门口与以太坊的创造者面对面


    打篮球的人都希望能见到科比。不是因为追星,而是因为能够与一个领域中最顶尖的玩家见面,可以学到很多东西。


    作为以太坊的创造者,Vitalik身上有太多值得学习的东西,如果你正在花费大量的时间和精力学习以太坊开发,并且希望能利用以太坊开发出一些伟大的产品。那么毫无疑问,你需要见见这位以太坊的缔造者。从他的视角去看看以太坊的那些核心的设计理念,去理解以太坊一路走来的那些历程,了解一下以太坊下一步的重要计划,以及这些计划对于你的影响。


    640?wx_fmt=jpeg


    这是一个十分难得的机会。因为在此之前,V神甚少来中国。况且除了V神之外,能把那么多的以太坊核心开发者凑到一块就更难得了。身为以太坊开发者的你,或者希望对以太坊有所了解的人,都不可错过这一机会!



    理由2:众星捧月,以太坊生态顶尖卡司云集


    俗话说独木不成林,以太坊作为全球最大的区块链应用开发平台,不仅仅是由V神和一些天才创造者组成。也同时拥有一大批技术过硬、经验丰富、理念超前的优质项目。


    无论是在DApp开发、底层技术探索、数据分析,还是技术优化等方面,这些优质的项目组成了一个独特的以太坊生态圈。而这一生态圈,几乎为开发者提供了所有必备的基础设施,以及丰富的实践经验。


    比如在这次的大会中,我们就请到了这个生态圈中的一些顶级项目的负责人,包括:Go-Ethereum核心开发者、Kyber Network CEO Loi Luu、ENS(Ethereum Name Service)开发者关系总监 Brantly Millegan、AlphaWallet CEO 张中南、MakerDAO中国区负责人 潘超、MixMarvel/云斗龙 创始人/CEO Jade Zhang、以太坊社区基金会中国区负责人 Anne Jiang、Amberdata联合创始人/COO Tongtong Gong等


    想要从事以太坊开发?先来看看这些顶尖项目都是怎么做的吧。



    理由3:议题设置,直击开发痛点


    既然是以技术为主题的大会,除了强大的卡司阵容以外,大会讨论的内容自然也要紧跟开发者关心的话题,以技术实践为主导。


    因此,在议题的设置中,我们覆盖了大部分目前以太坊开发的热门方向,包括:以太坊2.0进程新进展、信标链(Beacon Chain)验证、Geth客户端实践、链下(Layerr2)技术应用、De-Fi、以太坊安全攻防、以太坊在企业应用中的案例与开发、稳定币、加密交易系统优化等


    由于主题丰富,大会日程非常紧凑。开发者可以在一天之内对以太坊的新进展、热门的技术领域的技术实践、优质项目案例分析、新的开发工具的使用、安全攻防实践,以及以太坊的未来计划有全面且深入的了解。


    对于以太坊开发者、以太坊创业者、以太坊自学者,以及想要了解区块链的朋友来说,参加「2019以太坊技术及应用大会」的收益,将远远超过其他渠道的学习。



    理由4:国际化视野,与全球以太坊开发同步


    你可能已经注意到,今年的大会嘉宾名单中国外嘉宾的比例增加了,因为区块链不仅是本土项目的角逐,更是与全球的优质项目进行竞争,失去国际视野,很可能偏安一隅逐渐失去竞争力


    在今年的大会中,我们从北美、欧洲等地区,邀请到了多位优质项目的负责人比如:在Layer2领域最顶尖的公司之一Liquidity Network;以太坊上的「域名」服务公司ENS(Ethereum Name Service);链上资产流动协议Kyber Network等。让开发者不仅埋首与自己的项目,也能看看世界上这些一流的以太坊项目都是怎么做的,技术亮点有哪些。


    当然,除了这些顶尖的海外项目之外,有些国内的项目一样在全球开发者圈享有盛名。比如MixMarvel/云斗龙就在全球以太坊DApp排行中名列前茅;同样,主打安全的PeckShield也曾发现过多个区块链安全漏洞,在本届大会中他们也将为开发者深入讲解以太坊生态的安全防御及攻防实战;Amberdata的联合创始人虽然是华人,但这个项目却是诞生在美国,它可以对以太坊生态的所有数据进行分析,是开发者数据监测的首选工具。



    理由5:理论与实践结合,技术培训帮你夯实基础


    与一般技术大会不同,本次大会力求从「理论+实践」结合,在第一天(29日)大咖们的分享之后,第二天(30日)我们安排了一天的技术培训——以太坊技术集训营。


    从实操中加深参会者对第一天内容的理解,在动手中,学习以太坊开发的核心知识


    本次培训课程由微软Azure Blockchain首席项目经理许建志PeckShield 研发副总裁吴家志,分别担任导师。


    他们分别会分享「如何利用ABS快速部署,跑通以太坊开发全流程」,以及「以太坊智能合约攻击类型与安全攻防实战」两大主题。


    在这一培训课程中,你将学到以下干货。


    课程1:如何利用ABS快速部署,跑通以太坊开发全流程

    技术导师:许建志


    课程大纲:

    1. Azure Blockchain Service(学员可以选择自己搭建,或是由导师建好Transaction Node学员直接开发)

    2. 使用 Remix 开发第一个 Smart Contract

    3. 熟悉 MetaMask、Truffle、Geth并连接到以太坊的End Point

    4. 使用PowerShell让不同学员加入到同一个联盟链

    5. 使用Truffle+VS Code开发ERC20 Token

    6. 整合Logic Apps Ethereum Connector到其他应用或解决方案

    7. 安装 Block Explorer 浏览区块链网路的资讯

    8. 基于以太坊的Quorum,实操Private Transaction

    9. 使用ChainHammer测试区块链网路的性能 



    课程2:以太坊智能合约攻击类型与安全攻防实战

    技术导师:吴家志


    课程大纲:

    1. 智能合约概念简介

    2. 合约溢出问题介绍

    3. Python Web3搭配infura环境搭建

    4. 简单合约溢出漏洞实操

    5. batchOverflow漏洞简介与利用实操

    6. proxyOverflow漏洞简介与利用实操

    7. evilReflex漏洞简介与利用实操

    8. 链上随机数漏洞简介与利用实操



    心动不如行动!扫描下方海报二维码,开始你的区块链开发之路吧!


    640?wx_fmt=jpeg



    理由6:不仅是技术会议,更是属于以太坊开发者的年度大趴!


    由CSDN、灵钛科技联合主办的「以太坊技术及应用大会」今年已经是第二届。经过一年的沉淀与打磨,相信今年的大会会干货更多、更加贴合开发者的实际需求,让开发者满载而归!


    两年来,我们见证了以太坊中国开发者的成长,也见证了越来越多的开发者希望与其他开发者交流经验,共同成长。因此「2019以太坊技术及应用大会」不仅是一场技术大会,也为开发者提供了一个开放交流、互相学习、扩大圈子的平台


    在这里,开发者可以畅所欲言,结实很多与自己志趣相投的人。这里就是属于以太坊开发者的年度大趴!


    听完这6大理由,你还有不参会的理由吗?


    大会倒计时仅剩4天,购票通道即将关闭!

    还没上车的小伙伴,赶紧上车,加入这个属于以太坊,也是属于区块链开发者的年度盛会吧!


    扫描下方海报二维码 或 点击「阅读原文」,查看详细日程及购票!


    640?wx_fmt=jpeg


    此外,以太坊大会福利社现已全面开放扫码入群即可抢先获得大会一手信息和优惠福利!相关疑问也可入群交流咨询,务必备注“公司+职位+姓名”否则不予通过!!!

    640?wx_fmt=jpeg

    推荐阅读:


    猛戳"阅读原文"有惊喜哟smiley_12.png


    老铁在看了吗??

    展开全文
  • 先看效果图!...先看单个计时: 代码: <div class="titRight"> <div class="top"> <p>{{detailsListDetails.cate1_name1}}</p> <p>还有{{detailsListDetail...

    先看效果图!代码分别在下面展示

    先看单个倒计时:

    代码:

    <div class="titRight">
            <div class="top">
              <p>{{detailsListDetails.cate1_name1}}</p>
              <p>还有{{detailsListDetails.project_number4}}头未有人预约计划</p>
            </div>
            <div class="bottom" v-if="ifCountDown==0">
              <p>您还有</p>
              <p style="font-size: 22px;">{{CountDown}}</p>
              <p>可以预约计划</p>
            </div>
            <div class="bottom" v-if="ifCountDown!=0">
              <p>抱歉</p>
              <p style="font-size: 22px;">预约已截止</p>
            </div>
    </div>
    export default {
        name: "verShops",
        data() {
          return {
            user_collect_type:"",//收藏
            token_centent:JSON.parse(sessionStorage.getItem("loginInformation")),//token
            status_type:"",//预约状态
            status_message1:"",//预约显示的文字
            CountDown:"",//单倒计时
            ifCountDown:0,
          }
        },
    methods: {
        initList(){
            var that=this;
            api.post("/api/sssss/sssssss/", {//服务详情
              source:1,
              token:that.token_centent.token,//Token
              uuid:that.businessUuid,//UUID
            })
            .then(function(res) {
              if(res.data.code==1000){
                that.detailsListDetails=res.data.data
                that.value5=parseInt(res.data.data.user_star)
                that.chaturl=res.data.data.user_chat1
                that.user_collect_type=res.data.data.user_collect
                that.status_type=res.data.data.status
                that.status_message1=res.data.data.message1
                that.Djs_time();//获取数据后调用单个的倒计时
                setTimeout(that.Djs_timeList, 1000);//倒计时列表,多个
              }
            });
        },
        Djs_time: function(){
            setInterval( ()=> {
              var Deadline=new Date(this.detailsListDetails.project_time3_str).getTime();
              var presentTime=new Date().getTime();
              var rightTime = Deadline - presentTime;
              if (rightTime > 0) {
                var dd = Math.floor(rightTime / 1000 / 60 / 60 / 24);
                var hh = Math.floor((rightTime / 1000 / 60 / 60) % 24);
                var mm = Math.floor((rightTime / 1000 / 60) % 60);
                var ss = Math.floor((rightTime / 1000) % 60);
                this.CountDown= dd + "天" + hh + "小时" + mm + "分" + ss + "秒"
                this.ifCountDown=0
              }else{
                this.CountDown="已到截止申请时间"
                this.status_type=7
                this.status_message1="预约已结束"
                this.ifCountDown=1
              }
            }, 1000);
          },

    CountDown  就是最终要在页面上显示的数据!

    单个倒计时思路如下:

    获取倒计时的截止时间,再获取现在的时间,截止时间戳减去现在的时间戳 如果大于0 就执行 计算结果 

    最终拼字符串形式获得数据,渲染页面上即可!

    多个倒计时(列表倒计时)

    <p v-show="false">{{CountDown}}</p>   //辅助倒计时用于刷新
    
    <div class="list" v-for="(item,index) in MerchantDemandList" :key="index">
        <div class="listPush">
              <div v-show="item.status==1">{{item.message1}}</div>
              <div v-show="item.status==1">
                {{Djs_timeList(item.project_time3_str)}}
                
                <!-- {{item.project_time3_str}} -->
              </div>
              <div v-show="item.status!=1">{{item.message1}}</div>
        </div>
    </div>

    {{Djs_timeList(item.project_time3_str)}}   for循环下面的 item里的project_time3_str就是传递的截止时间。方法Djs_timeList()

    data() {
          return {
            token_centent:JSON.parse(sessionStorage.getItem("loginInformation")),//token
            status_type:"",//预约状态
            status_message1:"",//预约显示的文字
            ifCountDown:0,
            CountDown:"",//辅助倒计时用于刷新
     
          }
        },
    methods: {
        initList(){
            var that=this;
            api.post("/api/sssss/sssssss/", {//服务详情
              source:1,
              token:that.token_centent.token,//Token
              uuid:that.businessUuid,//UUID
            })
            .then(function(res) {
              if(res.data.code==1000){
                that.Djs_time();//辅助列表倒计时
                that.status_message1=res.data.data.message1
                that.Djs_time();//获取数据后调用单个的倒计时
                setTimeout(that.Djs_timeList, 1000);//倒计时列表,多个
                  
              }
            });
        },
        Djs_time: function(){
            setInterval( ()=> {
              var presentTime=new Date().getTime();
              this.CountDown=presentTime
            }, 1000);
          },
        Djs_timeList:function(itemEnd){
            var endItem=new Date(itemEnd).getTime();//获取列表传的截止时间
            var nowItem=new Date().getTime();//获取当前时间
            var rightTime = endItem - nowItem;//截止时间减去当前时间
            if (rightTime > 0) {//判断剩余倒计时时间如果大于0就执行倒计时否则就结束
              var dd = Math.floor(rightTime / 1000 / 60 / 60 / 24);
              var hh = Math.floor((rightTime / 1000 / 60 / 60) % 24);
              var mm = Math.floor((rightTime / 1000 / 60) % 60);
              var ss = Math.floor((rightTime / 1000) % 60);
              var showTime= dd + "天" + hh + "小时" + mm + "分" + ss + "秒"
              // this.MerchantDemandList.status=1
            }else{
              var showTime= "预约已结束"
              // this.MerchantDemandList.status=0
            }
            return showTime
          }
    },
    mounted(){
      this.initList();
    },
    //离开页面后清除定时器
    destroyed () {
      clearInterval()
    }

    多个倒计时思路:

    setTimeout(that.Djs_timeList, 1000) 在数据获取完成后 加定时器 每1秒执行 调用页面上所有的Djs_timeList() 这个方法

    后台正常for循环渲染数据,获取截止时间item.project_time3_str   从Djs_timeList() 这个方法传递截止时间

    Djs_timeList()方法里 获取传递的截止时间,截止时间减去现在的时间就是剩余的时间,计算拼字符串,

    return 最终结果 返回到页面展示 {{Djs_timeList(item.project_time3_str)}}

    结尾

    因为这个比较好理解,还是在渲染页面时for循环里直接传递参数去执行的!个人感觉比网上看的其他方法要单独提取个数组要方便多了!且我这里是用的分页,数据比较多!数量不确定,这个好理解

     

    3月26 补充:

    跳转其他路由后 销毁定时器  加在 destroyed 里个清除即可

    mounted(){
          this.initList();
          
    },
    //离开页面后清除定时器
    destroyed () {
          clearInterval()
    },

     

    更多技巧请查看vue专栏   https://blog.csdn.net/qq_42221334/column/info/27230/1

     

    展开全文
  • 自定义计时控件

    万次阅读 多人点赞 2014-12-17 09:16:41
    就是自定义一个能计时的TextView控件,当我们点击start run按钮时,给他传进去一个时间数字,它自己开始计时,不需要外部任何干预。当点击Stop run按钮时,停止计时。 一、自定义计时控件——...

    前言:这几天博客积的有点多,工作也是忙的够呛.

     

    先上本篇效果图:

    就是自定义一个能倒计时的TextView控件,当我们点击start run按钮时,给他传进去一个时间数字,它自己开始倒计时,不需要外部任何干预。当点击Stop run按钮时,停止倒计时。

    一、自定义倒计时控件——TimerTextView

    显然TimerTextView应该派生于TextView,因为他本就是显示一串Text,只是具有了自动更新的功能,这里的自动更新的实现当然只通过线程来实现了,所以要继承Runnable接口。所以它的定义应该是这样的:

     

    public class TimerTextView extends TextView implements Runnable{
    	
    	public TimerTextView(Context context, AttributeSet attrs) {
    		super(context, attrs);
    		// TODO Auto-generated constructor stub
    	}
        @Override
        public void run() {
            //自动更新
        	
        }
    
    }

    首先,要给外部提供一个函数,可以给它设置要开始倒计时的数字:

     

     

    private long mday, mhour, mmin, msecond;//天,小时,分钟,秒

     

     

    public void setTimes(long[] times) {
        mday = times[0];
        mhour = times[1];
        mmin = times[2];
        msecond = times[3];
    
    }

    然后要实现当前线程的开始和终止,相关实现是下面几个函数:

     

     

    private boolean run=false; //是否启动了
    public boolean isRun() {
        return run;
    }
    
    public void beginRun() {
        this.run = true;
        run();
    }
    
    public void stopRun(){
    	this.run = false;
    }

    这里定义一个变量run来标识当前线程是否已经启动,如果没有启动,我们可以调用beginRun()来开始线程,在beginRun()函数中,调用run()开线程开始运行,在线程中,我们就要实现一秒更新一次当前数字了:

     

     

    @Override
    public void run() {
        //标示已经启动
        if(run){
        	ComputeTime();
    
            String strTime= mday +"天:"+ mhour+"小时:"+ mmin+"分钟:"+msecond+"秒";
            this.setText(strTime);
    
            postDelayed(this, 1000);
        }else {
        	removeCallbacks(this);
        }
    }

    首先判断当前线程应该具有的状态,如果还是在跑着(即run变量为true),那就计算当前应该显示的时间(ComputeTime()函数),然后设置给自己。最后利用postDelayed(this,1000),来延长1秒后再运行一次。

     

    如果用户调用了StopRun()函数,将run变量置为了FALSE,即用户要停止线程运行,这里,我们调用removeCallbacks(this)来终止当前线程。
    下面就是看看如何来计算当前要显示的时间的omputeTime()函数了:

     

    private void ComputeTime() {
        msecond--;
        if (msecond < 0) {
            mmin--;
            msecond = 59;
            if (mmin < 0) {
                mmin = 59;
                mhour--;
                if (mhour < 0) {
                    // 倒计时结束
                    mhour = 24;
                    mday--;
    
                }
            }
    
        }
    
    }

    理解起来应该没什么难度,秒一次减一,如果减到0,一方面重置为59,另一方面分钟要减一,当分钟减到0时,一方面分钟置为59,一方面小时减一,天的计划一样,需要注意的是,一天是24个小时哦,不是60。
    OK啦,重写控件的部分就讲完了,下面列出这块的完整代码,供大家参考:

    public class TimerTextView extends TextView implements Runnable{
    	
    	public TimerTextView(Context context, AttributeSet attrs) {
    		super(context, attrs);
    		// TODO Auto-generated constructor stub
    	}
    
        private long mday, mhour, mmin, msecond;//天,小时,分钟,秒
        private boolean run=false; //是否启动了
    
        public void setTimes(long[] times) {
            mday = times[0];
            mhour = times[1];
            mmin = times[2];
            msecond = times[3];
    
        }
    
        /**
         * 倒计时计算
         */
    	private void ComputeTime() {
    	    msecond--;
    	    if (msecond < 0) {
    	        mmin--;
    	        msecond = 59;
    	        if (mmin < 0) {
    	            mmin = 59;
    	            mhour--;
    	            if (mhour < 0) {
    	                // 倒计时结束,一天有24个小时
    	                mhour = 23;
    	                mday--;
    	
    	            }
    	        }
    	
    	    }
    	
    	}
    
        public boolean isRun() {
            return run;
        }
    
        public void beginRun() {
            this.run = true;
            run();
        }
        
        public void stopRun(){
        	this.run = false;
        }
        
    
        @Override
        public void run() {
            //标示已经启动
            if(run){
            	ComputeTime();
    
                String strTime= mday +"天:"+ mhour+"小时:"+ mmin+"分钟:"+msecond+"秒";
                this.setText(strTime);
    
                postDelayed(this, 1000);
            }else {
            	removeCallbacks(this);
            }
        }
    
    }

    二、控件使用

    下面我们就在MainActivity中使用一下,先看看MainActivity的布局(activity_main.xml)

     

    从最开头的演示中也可以看出,使用的是垂直布局,两个BTN,一个倒计时TextView

     

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="com.example.trytimerview.MainActivity" >
        
        <Button android:id="@+id/main_start_btn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="start run"/>
        
        <Button android:id="@+id/main_stop_btn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="stop run"/>
        
    
        <com.example.trytimerview.TimerTextView 
            android:id="@+id/timer_text_view"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textSize="18sp"
            android:textColor="#ff0000"
            android:gravity="center_horizontal"
            android:text="倒计时"
            />
    
    </LinearLayout>

    然后是在MainActivity中,先列出整体的代码,然后再细讲:

     

     

    public class MainActivity extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		//初始化倒计时控件
    		final TimerTextView timerTextView = (TimerTextView)findViewById(R.id.timer_text_view);
    		long[] times = {0,10,5,30};
    		timerTextView.setTimes(times);
    		
    		
    		Button startBtn =  (Button)findViewById(R.id.main_start_btn);
    		Button stopBtn  =  (Button)findViewById(R.id.main_stop_btn);
    		//开始倒计时
    		startBtn.setOnClickListener(new View.OnClickListener() {
    			
    			@Override
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				if(!timerTextView.isRun()){
    					timerTextView.beginRun();
    				}
    			}
    		});
    		
    		//停止倒计时
    		stopBtn.setOnClickListener(new View.OnClickListener() {
    			
    			@Override
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				if(timerTextView.isRun()){
    					timerTextView.stopRun();
    				}
    			}
    		});
    
    	}
    
    }

    这里首先是,初始化TimerTextView控件:

     

    初始化为从10个小时,5分钟,30秒开始倒计时

     

    final TimerTextView timerTextView = (TimerTextView)findViewById(R.id.timer_text_view);
    long[] times = {0,10,5,30};
    timerTextView.setTimes(times);

    然后当用户点击StartRun按钮时,先判断当前是否在运行,如果没在运行,就让它开始跑起来:

     

     

    startBtn.setOnClickListener(new View.OnClickListener() {
    	
    	@Override
    	public void onClick(View v) {
    		// TODO Auto-generated method stub
    		if(!timerTextView.isRun()){
    			timerTextView.beginRun();
    		}
    	}
    });

    当用户点击Stop Run按钮时,停止运行:

     

     

    stopBtn.setOnClickListener(new View.OnClickListener() {
    	
    	@Override
    	public void onClick(View v) {
    		// TODO Auto-generated method stub
    		if(timerTextView.isRun()){
    			timerTextView.stopRun();
    		}
    	}
    });

     

     

    OK啦,这篇比较简单,代码量也比较小,就不再多说了。

     

    如果这篇文章有帮到你,记得关注哦

    源码下载地址:http://download.csdn.net/detail/harvic880925/8271087

    请大家尊重原创者版权,转载请标时出处:http://blog.csdn.net/harvic880925/article/details/41977569  谢谢。

     

    如果你喜欢我的文章,你可能更喜欢我的公众号

    启舰杂谈

    展开全文
  • vuejs实现计时

    万次阅读 2018-10-18 11:19:03
    1.短信60s计时 代码实现 :  a)html结构 &lt;template&gt; &lt;div class="buttonItem"&gt; &lt;input v-model="vercode" type="text" placeholder=&...
  • Vue中的v-el与v-ref

    千次阅读 2018-11-04 16:20:01
    v-el 作用:   通过v-el我们可以获取到DOM对象。 v-ref 作用:   通过v-ref获取到整个组件(component)的对象。 示例 源码 &lt;!DOCTYPE html&gt; &lt;html lang="en" xmlns:v-el=&...
  • 在sina里看到了什么全民夺宝的链接,然后忍不住1元的诱惑被坑了10多块,什么都没有抽到,但是还是有人抽到了不知道是不是坑爹的,然后也就动手做一下计时的功能。 先看全民夺宝: 说起这个功能是不是感觉...
  • vue计时

    千次阅读 2018-12-21 16:13:50
    登录界面使用手机验证码注册登录很常见,VUE中实现获取验证码计时还是用到定时器setInterval 先上效果图 HTML部分 &lt;div class="login_list"&gt; &lt;span class="login_title&...
  • ffmpeg放音视频

    千次阅读 2018-08-24 11:19:25
    通过ffmpeg命令行进行音视频放,android平台同样可以以将...ffmpeg.exe -i inputfile.mp4 -filter_complex [0:v]reverse[v] -map [v] -preset superfast reversed.mp4 2.视频放,音频不变 ffmpeg.exe -i inpu...
  • 欢迎界面计时

    千次阅读 2016-07-24 11:33:34
    欢迎界面欢迎界面计时欢迎界面广告计时
  • 本文介绍了一小部分相关音箱计算知识,希望对大家有所...相管长度L=c×c×S/(4×圆周率×圆周率×f×f×V)-0.82根号S(单位都是用厘米计算)其中c=34400cm/s(声速),f是低音喇叭的谐振频率,V是关于箱体有...
  • vue 活动计时组件

    千次阅读 2018-12-05 11:48:44
    1. 这是计时封装好的组件 这里我们命名 countdown.vue &lt;template&gt; &lt;div&gt; &lt;p v-if="msTime.show"&gt; &lt;span v-if="tipShow" class=&...
  • Lucene排索引简述 之索引表

    千次阅读 2018-09-27 09:57:42
    Lucene排索引的核心内容,索引表,你对这部分真的熟悉了吗?那你知道FST用什么地方吗?FST又存储了什么内容呢?有什么功能呢?关于Burst-Trie,你知道Lucene是如何采用它的思想来加速Lucene搜索性能的吗?
  • ES排索引与分词详解

    千次阅读 2018-10-16 16:55:51
    排索引 正排索引:文档id到单词的关联关系 排索引:单词到文档id的关联关系 示例: 对以下三个文档去除停用词后构造排索引   image 排索引-查询过程 查询包含“搜索引擎”的文档 通过排索引获得...
  • 课程设计题九: 计时时钟设计

    千次阅读 2019-07-13 00:02:36
    1)设计任务:完成计时时钟的设计。 ...(4)供电电压3.3V/5V。 获取该程序的方式: 1、CSDN下载: https://download.csdn.net/download/qq_38351824/11341672 2、关注微信公众号下载: ...
  • 基于Vue的时间计时DEMO

    千次阅读 2017-10-11 11:42:58
    基于Vue的时间计时DEMOhtml代码: <button @click="send" v-bind:disabled="disabledCondition"> <span v-if="sendMsgDisabled" >{{time+'秒后获取'}} <span v-if="!sendMsgDisabled">se
  • AndroidStudio项目制作计时模块

    千次阅读 2018-04-02 20:11:52
    前言大家好,我是 Vic,今天给大家带来AndroidStudio项目制作计时模块的概述,希望你们喜欢项目难度AndroidStudio项目制作计时模块的难度,不是很大,就是主要用了Timer和TimerTask这两个,接着就是现实界面的...
  • 先上效果图 - 计时结束代码块attr.xml 控件需要用到的属性: <resources> <!--颜色--> <attr name="ringColor" format="color" />
  • 领域驱动实践总结二:架构分析与代码设计 领域驱动设计DDD是一种设计思想,它可以同时指导中台业务建模和微服务设计(中台本质是业务模型,微服务是业务模型的系统落地),领域驱动设计强调领域模型和微服务设计的一体...
  • 【Android自定义View实战】之获取验证码计时按钮

    千次阅读 热门讨论 2016-10-25 08:54:07
    在Android开发中,我们不可避免的会做到注册功能,而现在的注册大多数都是用手机去注册的,那么注册的时候... * 计时时长,默认计时时间60秒; */ private long length = 60 * 1000; 在点击按钮之前按钮所显示的文
  • Vue实现获取验证码计时

    千次阅读 2018-04-15 15:57:19
    这篇文章主要为大家介绍了如何简单实现vue验证码60秒计时功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下HTML部分:&lt;span v-show="show" @click="getCode"&gt;获取验证码...
  • 2021 年的 1 月份,他的《JavaGuide 面试突击版》V4.0 版本就更新了,我第一时间就拿到了离线版(文末有提供下载地址),不得不说,阅读体验比之前的版本更舒服了,简直有点爱不释手。 之所以过了一个月才分享出来...
  • 实现V-charts双Y轴左右刻度线一致

    千次阅读 2019-03-05 11:44:51
    在查阅了v-charts的文档之后,发现有个extend属性,正如文档中所说:可以通过extend属性实现对已配置好的内部属性进行单独的设置,更详细的如何配置这些参数倒是没说,不过这难不我们,既然知道有这么个属性能够...
  • 采用FFmpeg实现视频

    万次阅读 2018-09-13 00:01:33
    最近发现抖音特效里有视频播,看起来比较酷。于是自己用FFmpeg在Android平台做了一遍,现在方案是先用FFmpeg把视频反序,再进行视频放。最终效果长这样: 主要用到的是FFmpeg的filter_complex来实现,拼接...
  • react实现动画电子计时组件

    千次阅读 2018-08-11 11:01:10
    但是呢,有一家公司的CTO在国外,没办法对我的技术进行审核,所以他给我发了两套题,第一套题呢,是要使用react实现动画计时小时钟组件,父级组件通过传递秒、结束回调方法控制时钟组件。   2. 要求: (1)...
  • 基于vue的计时demo

    万次阅读 2017-06-05 17:47:50
    一般获取短信验证码的时候会用到这个呆毛: button里面包两个span标签,根据点击状态,显示不同的span,关键代码就是... v-if="!sendMsgDisabled &amp;&amp; !reGet"&gt;发送验证码&lt;/s
  • 本系统源码是个人原创文章系列,程序员编程艺术第二十六章:基于给定的文档生成排索引的编码与实践的整个工程源码 look:http://blog.csdn.net/v_july_v/article/details/7109500 windows下VS2010,linux环境下皆...
  • 在前面的文章中,我们分析了淘宝android客户端的一些界面时间和用户体验,今天这篇文章,主要介绍如何使用自定义控件,实现抢购计时的功能。  首先,我们看一下实现的效果。    实现效果很简单哈,就是一个...
  • JAVA短信验证码计时功能

    千次阅读 2016-10-27 16:19:45
    JAVA短信验证码计时功能 js实现发送短信验证码后的计时功能(无视页面刷新) 特别说明:  cookie最初创建的有效时间是60秒.也就是说,你如果在计时为20的时候,关闭网页.20秒之后再打开,是不会有计时...
  • env = gym.make('CartPole-v0') env = env.unwrapped N_ACTIONS = env.action_space.n N_STATES = env.observation_space.shape[0] ENV_A_SHAPE = 0 if isinstance(env.action_space.sample(), int) else env.action...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 86,344
精华内容 34,537
关键字:

倒v