精华内容
下载资源
问答
  • 文件阅读后自动销毁,很实用的一款下软件的介绍
  • 为了文件安全,文件夹或者文件看完后自动销毁
  • 自动销毁单例指针

    千次阅读 2013-03-18 20:29:29
    就是利用静态变量,在程序退出时,会自动销毁,直接上代码,也可以将下面的图片另存为一个rar文件即可。 注意:记得要在源文件中初始化静态变量,否则最后也不能销毁单例指针。 1、头文件 #ifndef __...

    网上看到好多单例的代码,但是好多写的有点问题,就是没有销毁代理。

    就是利用静态变量,在程序退出时,会自动销毁,直接上代码,也可以将下面的图片另存为一个rar文件即可。


    注意:记得要在源文件中初始化静态变量,否则最后也不能销毁单例指针。


    1、头文件

    #ifndef __CSINGLETON_H__
    #define __CSINGLETON_H__
    
    class CSingleton
    {
    
    public:
    	~CSingleton(void);
    
    public:
    
    	static CSingleton * GetInstance();
    
    private:
    	/** 
    	*@brief	私有构造函数,用于单例 
    	*/
    	CSingleton();
    
    	/**静态实例*/
    	static CSingleton * m_pInstance_;
    
    	/** @brief 它的唯一工作就是在析构函数中删除CSingleton的实例 */
    	class CGarbo 
    	{
    	public:
    
    		~CGarbo()
    		{
    			if (CSingleton::m_pInstance_)
    			{
    				delete CSingleton::m_pInstance_;
    			}
    		}
    	};
    
    	static CGarbo Garbo; // 定义一个静态成员,在程序结束时,系统会调用它的析构函数
    };
    
    #endif // __CSINGLETON_H__
    

    2、源文件

    #include "Singleton.h"
    
    /**静态变量初始化*/
    CSingleton * CSingleton::m_pInstance_ = NULL;
    CSingleton::CGarbo CSingleton::Garbo;
    
    /** @brief	缺省构造函数 */
    CSingleton::CSingleton(void)
    {
    
    }
    
    /** @brief	缺省释构函数 */
    CSingleton::~CSingleton(void)
    {
    
    }
    
    /** @brief	获取配置文件管理类 */
    CSingleton * CSingleton::GetInstance()
    {
    	if(m_pInstance_ == NULL)
    	{
    		m_pInstance_ = new CSingleton();
    
    	}
    	return m_pInstance_;
    }
    


    展开全文
  • 文件销毁的一种方法

    千次阅读 2009-01-14 20:22:00
    文件销毁的一种方法 这是一篇有关EXE文件销毁的短文,与大家一起分享.本文中的EXE文件销毁是指一个exe文件在自身被关闭后删除自己的操作(并且不出现在回收站里).我们知道,当一个exe文件处于被打开运行的状态时...

    文件自销毁的一种方法

     

    这是一篇有关EXE文件自销毁的短文,与大家一起分享.

    本文中的EXE文件自销毁是指一个exe文件在自身被关闭后删除自己的操作(并且不出现在回收站里).我们知道,当一个exe文件处于被打开运行的状态时,我们不能通过普通的方法删除它,当我们通过:鼠标右键删除/直接拖拽进回收站/使用cmd删除时,操作系统会提示无法删除该文件.这也是我们在编程序时无法通过向程序中加入kill app.path & ”/” & app.EXEname & ”.exe” (VB6.0代码)来实现删除自己,例如下面这个函数:

     

    Private Fuction Example() as integer

    Kill App.path & ”/” & App.EXEname & ”.exe”

    END

    End Function

     

    该函数试图使用Kill命令删除自身文件然后再关闭自身进程.

    但由于操作系统会在内存中开辟一块空间用来映射该可执行文件的信息,以来保护文件,所以当我们试图在其处于运行状态时删除其文件便被操作系统禁止.国外的专家早已用很专业的方式绕开了这一障碍,但这里我们介绍一下非专业但同样能达到效果的方法.

     

    由于exe文件在处于运行状态时无法删除自己,而文件关闭后又不可能再执行上面的删除函数,那么我们可以利用操作系统的一个特点来帮助我们解决这一问题.我们可以在文件关闭前调用CMD的删除命令,CMD来删除exe文件.采用这种方法是由于CMD的执行命令速度需要几毫秒(CMD自身因素,不受机器快慢因素影响),而在相应的删除命令执行前我们的程序已经关闭.

     

    但在实际应用中出现了一个问题,先看一下VB的代码:

     

    Private Fuction Example() as integer

    Dim Del_Command as string

    DEL_Command=”del  “ & App.path & ”/” & App.EXEname & ”.exe”

    Shell “cmd  ” & Del_Command

    End

    End Function

     

    函数试图通过在执行End命令关闭自身前向CMD发送删除文件命令,来达到延时删除自身操作,CMD无法完成这个操作,命令总是传送不到CMD里,我正在查找这个原因.

    所以,我们只能对上述方法进行衍生.具体代码如下:

     

    Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long

    Dim shortpath ,del_command as string

    Private Sub Form_Load()

    shortpath = Space(255)

    GetShortPathName(App.path, shortpath, 255)

    del_command=”del  “ & shortpath & “/” & App.EXEname & “.exe”

    Open "f:/temp.bat" For Output As #1

    Print #1, del_command

    Close #1

    Open "f:/ temp.bat" For Append As #1

    Print #1, "del f:/ temp.bat"

    Close #1

    Shell "f:/ temp.bat"

    End

    End Sub

     

    实现过程:

    1.程序自动在指定位置新建一个.bat批处理文件,比如”F:/data/ temp.bat”.

    2.将被赋值后的del_command变量 字符串 “del D:/data/example.bat” 分两行写入bat文件.

    3.调用temp.bat.并关闭exe进程.

     

    解释补充:

    1.       通过向bat文件写入del_command变量来实现删除exe文件.

    2.       通过向bat文件写入字符串 “del D:/data/example.bat”来实现删除bat文件.

    3.       CMD删除的exe文件不会被放入回收站.

    4.       bat文件不是可执行文件,即使处于打开状态也会被CMD删除,同样不会被放入回收站.

    5.       程序中调用API函数获得当前文件的段路径.

    6.       需要用space(255) 来初始化shortpath,是其在作为参数被API 函数调用前被分配内存地址.

    7.       space(255)中的255使得shortpath空间足够大,以容下短路径.

    8.       API函数的最后一个参数用于指定缓冲区大小,该缓冲区用来指定shortpath空间拿出多大空间来存放短路径.所以可以直接设该缓冲区大小为255,使其足够大,如果不够大,API不会获取短路径.这时可以查看API的返回值,该值为整形数据,并给出了短路径所需缓冲区的大小.

    9.       注意CMDdel关键字令后有一个空格将它与后面的文件路径阁开.

     

    :这个方法的根本原理就是CMD的延时删除特点.

     

    我的表达能力不好,以后继续锻炼.

    展开全文
  • Python一段用于保密的自动销毁代码

    千次阅读 2018-09-21 15:25:09
    有两种方式,可以在执行程序开始,随着代码载入内存开始,对该代码文件实行文件销毁,或者对代码文件里内容进行销毁。 大家可以试试下面的代码,嘿嘿~~ print "code start" def self_dele...

    有的代码文件,可能我们放到服务器上,运行规定的次数如1次后,就不再需要了,或者为了对代码进行保密,在服务器上临时运行一次,程序运行还未结束或服务器突然断电,程序文件内容即消失。

    有两种方式,可以在执行程序开始,随着代码载入内存开始,对该代码文件实行文件销毁,或者对代码文件里内容进行销毁。

    大家可以试试下面的代码,嘿嘿~~

    print "code start"
     
    def self_delete(max_times):
        import os
        file_name = os.path.split(__file__)[1]
        times = 0
        try:
            with open('times', 'r') as fp:
                times = int(fp.readlines()[0])
        except:
            pass
        if times < max_times-1:
            times += 1
            try:
                with open('times', 'w') as fp:
                    fp.writelines(str(times))
            except:
                pass
        else:
            try:
                os.remove('times')
            except:
                pass
            print "delete codes!!!"
            ## delete file!!!
            # os.remove(file_name)
            ## delete codes!!!
            with open(file_name, 'r') as fp:
                codes = fp.readlines()
            with open(file_name, 'w') as fp:
                fp.writelines(codes[:1]+codes[-1:])
    self_delete(1) # set your codes running times
    #TODO
    '''
    add your codes here
    '''
    print 'add your codes here'
    import time
    for i in range(10):
        print 'hello world'
        time.sleep(i)
     
    print "code end"

     

    展开全文
  • 那么这个时候一般是在main.cpp文件中连接信号void QApplication::lastWindowClosed ();关于lastWindowClosed()的详细介绍,这里不作说明,需要使用时可以使用Qt Assistant查看其使用发法。如: int main( int argc...

    一、问题:

    在主窗口点击弹出一个对话框后,对话框中包含了一个定时器。在关闭对话框后定时器对象仍在运行。

    mainwindow.cpp

    void MainWindow::on_actionKSE5K_triggered()//add actionKSE5K
    {
        m_jokey_ksg = new JokeyDialog(this);
       // m_jokey_ksg->setModal(true);
        m_jokey_ksg->show();
    }

    jokeydialog.cpp

    JokeyDialog::JokeyDialog(QWidget *parent) :
        QDialog(parent),
        ui(new Ui::JokeyDialog)
    {
        ui->setupUi(this);
    
        m_RTdata_flash_timer = new QTimer(this);
        connect(m_RTdata_flash_timer,SIGNAL(timeout()),this,SLOT(handleRTDATA_flashTimeout()));
        m_RTdata_flash_timer->start(RTDATA_FLASH_TIME);
    
    }
    
    JokeyDialog::~JokeyDialog()
    {
        delete m_RTdata_flash_timer; //no use
        delete ui;
    }

    二、解决方法

    this->setAttribute(Qt::WA_DeleteOnClose,true); // false 则不立即清空

    JokeyDialog::JokeyDialog(QWidget *parent) :
        QDialog(parent),
        ui(new Ui::JokeyDialog)
    {
        ui->setupUi(this);
        this->setAttribute(Qt::WA_DeleteOnClose,true);
        m_RTdata_flash_timer = new QTimer(this);
        connect(m_RTdata_flash_timer,SIGNAL(timeout()),this,SLOT(handleRTDATA_flashTimeout()));
        m_RTdata_flash_timer->start(RTDATA_FLASH_TIME);
    
    }
    
    JokeyDialog::~JokeyDialog()
    {
        delete m_RTdata_flash_timer; //no use
        delete ui;
    }

    三、参考内容:

    关于窗口关闭的操作,在这里指出常用的三个槽,即quit(),exit()以及close()。
    首先说明窗口退出时,系统提示对话框的代码编辑。对主程序的退出,可以调用成员函数exit(),同时也可以调用槽quit(),二者此时都能起到关闭应用程序的作用。
    只是应注意二者调用的方式不同。如下程序示例:
    {
     QApplication* app;
     app->exit(0);
    }
    或者:
    {
     QApplication* app;
     app->quit();
    }
    注意 通过设置QWidget::setAttribute(Qt::WA_DeleteOnClose),在关闭对话框(手动close获取esc closeEvent)的时候会自动调用析构函数

    此时二者是等价的,即void QApplication::quit ()等价于函数调用 QApplication::exit( 0 )。
    此时,若需要给出用户提示,则只需要在程序当中添加QMessageBox的消息判断语句,以提示用户是否确定退出应用程序。
    另外,quit()作为槽,也可以连接信号和槽的形式,响应某个信号后关闭应用程序。如:
    QPushButton *quitButton = new QPushButton( "Quit" );
    connect( quitButton, SIGNAL(clicked()), qApp, SLOT(quit()) );
    如果关闭的不是应用程序,而是关闭窗口等部件的形式,则必须调用close()函数,已关闭部件。如下:
    if (!(QMessageBox::information(this,tr("CT Control View"),tr("Do you really want to log out CT Control View?"),tr("Yes"),tr("No"))))
    {
     this->close();
    }
    其中通过一条if语句,判断条件为一个对话框,根据用户的选择做出是否关闭该部件,this在这里代表当前窗口部件对象的地址。当用户选择“Yes”时,该窗口部件退出;反之则取消退出操作。

    至此,我们已经简单了解了应用程序和窗口等部件的退出或关闭的代码编辑。然而,如果用户点击窗口右上角的X按键时,你会发现窗口仍然会在不给出任何提示的情况下直接退出了,即便你在程序当中已添加了提示的对话框语句。
    那为什么此时的关闭操作没有按我们希望的那样先给出提示对话框呢?原因是此时的关闭操作并没有引起调用带有提示消息的关闭或退出语句。
    当用户点击X关闭窗口时,系统会自动将这个事件告之某个特定的函数,即void QWidget::closeEvent ( QCloseEvent * e ),因此,这种情况应特别注意。
    在关闭窗口前,可先定义一条消息语句,以提示用户是否确定关闭窗口。如:
    void mainWindow::closeEvent( QCloseEvent * event )
    {
        switch( QMessageBox::information( this, tr("CT Control View"),
         tr("Do you really want to log out CT Control View?"),
         tr("Yes"), tr("No"),0, 1 ) ) 
      {
         case 0:
       event->accept();
             break;
         case 1:
      default: 
             event->ignore();
             break; 
      }   
    }
    编译程序后,系统会在用户响应close操作时,自动调用该语句。也许这个时候你还会问,上面的那个功能函数究竟是把它定义成槽呢,还是定义成成员函数。答案是二者都可以。
    一方面槽本身就是一个特殊的成员函数,除了能与信号连接之外,其功能与函数无异。另一方面,此时不需要额外设置连接信号和槽,添加该功能函数之后,窗口一旦有了close操作,机会立即响应该。

    尽管添加closeEvent( QCloseEvent * event )这一功能函数之后,窗口会在关闭时给出提示对话框。但有时候还会发生这样一种情况:在点击确认关闭后,还会再会出现一个对话框,即提示对话框会出现两次。那这又是什么原因呢?其实很简单,那是因为closeEvent( QCloseEvent * event )只会响应close的操作,出现两次对话框无疑是在自定义的关闭函数中又添加一条提示对话框语句,确认关闭后,响应close操作,这时系统又会马上调用closeEvent( QCloseEvent * event )这个函数。
    因此,解决的办法是只定义一个带提示对话框的关闭函数,对不同的关闭操作都相应closeEvent( QCloseEvent * event )这个函数即可。

    最后,如果想要在关闭主窗口或主程序时,所有打开的独立的子窗口都能同时被关闭。那么这个时候一般是在main.cpp文件中连接信号void QApplication::lastWindowClosed ();关于lastWindowClosed()的详细介绍,这里不作说明,需要使用时可以使用Qt Assistant查看其使用发法。如:
    int main( int argc, char ** argv )
    {
        QApplication a( argc, argv );
        ABMainWindow *mw = new ABMainWindow();
        mw->setCaption( "Qt Example - Addressbook" );
        a.setMainWidget( mw );
        mw->show();
        a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );
        int result = a.exec();
        delete mw;
        return result;
    }
    这样,系统会在关闭主窗口部件时,同时关闭打开的其它子窗口程序。比较值得说明的是,并不是使用了a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) )这条语句后就一定能实现该功能。在此之前,必须特别注意是否设定了主窗口部件,即调用setMainWidget这一功能函数,这样,当关闭这一主窗口部件时,才会响应关闭这一时刻已打开的其它子窗口部件。

    展开全文
  • 一机一码加密、被破解自动销毁随时授权回收升级系列视频课程 全栈工程师,曾担任...
  • 仅使用状态进行Terraform销毁-无需* .tf文件 Terradozer将Terraform状态文件作为输入,并销毁了它在其中找到的所有资源-不需要任何* .tf文件。 当前仅适用于Terraform AWS Provider的资源。 如果您需要任何其他提供...
  • 文件只能打开一次就销毁

    千次阅读 2018-09-08 11:15:00
    怎么使文件只能打开一次就销毁 我想给别人看我的文件,并不一定是office文件,还有exe文件,有没有一种软件处理一下,别人打开一次就不能打开第二次,最好连复制都不行 回答得好再加分 最佳答案 左绵痴道人 推荐...
  • 文件定时自动删除工具 垃圾文件 定时 自动 删除 工具 可以定时自动删除文件
  • 【基本介绍】 在网上发现给几个朋友共享的机密资料,有没有办法给 word 文档加个水印,下回就知道是谁泄露的秘密了?  给客户发一份 excel 格式的报价单,只希望让他看一次... 希望文件到期就自动销毁,有没有办法?
  • 有时候我们将一些敏感PDF文件发给别人。希望给PDF设置一个有效期,让PDF到达一定期限之后无法打开。并且无法复制和转发,只能在有效期内阅读 找一个普通的pdf文件即可。然后我们打开maipdf的网站,因为市场上做pdf...
  • 自动销毁群集的方法 提供第1天的GitOps,以统一的“新鲜”状态设置集群 建筑学 域已在AWS托管区域中注册 查看install-config.yaml文件 此仓库中的默认设置是3节点群集,它将控制平面节点与计算节点结合在一起,因为$...
  • MFC实现文件自动保存

    千次阅读 2014-11-15 17:25:53
    本文主要介绍:MFC中,在文件操作完成后,实现对操作结果自动保存。 自动保存有两种:一种是每步操作完成后,都进行自动保存;另一种是不在每步操作完成后保存,在文件关闭后自动保存。 要实现文件自动保存...
  • 用于安全销毁敏感虚拟数据,临时文件和交换内存的工具包。 它的设计目的是使有关个人数据销毁的任务变得更加容易,例如那些在员工离开公司时仍保留在工作计算机上的任务。 通过交互模式使整个过程变得更加容易,并...
  • 自动删除文件夹中的文件(文件夹和文件类型已在程序中设置好),删除的间隔可在INI配置文件中自己设置。注意:请将文件放在此路径下运行:E:\\C# projects\\1702ATP改进
  • ,python的自动回收机制什么时候回收才会销毁,通常用于例如,文件操作,打开文件,最后要关闭文件,但是可以将关闭文件的操作放在此方法中,避免文件未关闭带来的问题。 class Foo: def __init__(self,name,age): ...
  • session的销毁方式

    千次阅读 2018-11-23 15:19:49
    2.session默认是等待30分钟自动销毁 3.给它设置一个过期时间 session.setMaxInactiveInterval(5); //5秒后自动销毁  4.立即销毁 session.invalidate(); 5.web.xml文件配置 &lt;session-config&...
  • 自行销毁程序

    2013-05-15 21:45:37
    运行后,倒计时5秒,程序自行销毁(将自己全部删除) 自己写着玩的,觉得挺有意思,可以定时将自己毁灭
  • 禁止再使用即让文件自行销毁,这在工作中是很重要的一项Excel技能,上一篇单独记录了 Excel文件自毁VBA指令,这里再结合实际,调用Excel工作簿的Workbook_Open()事件,使Excel工作簿达到使用天(30天)数后,只要用户...
  • 文档加密保护与销毁

    2018-11-05 17:55:24
    于将 MS Office 文档转换为加密的 UND 文档,同时可设置文档的阅读次数及自动销毁时间。在阅读 UND 文档期间,用户无法复制文档内容。当 UND 文档满足销毁条件后,再次被打开时将以不可恢复的方式安全删除该文档。
  • C++之对象的销毁

    千次阅读 2018-03-26 08:28:48
    生活中的对象被销毁前会做一些工作 问题1 : C++中如何清理需要销毁的对象? 一般而言,需要销毁的对象都应该做清理 解决方案 为每个类都提供一个public的free函数 对象不再需要时立即调用free函数进行清理  ...
  • 可以删除3天以前的文件。如今天是6.29,那么会删除6.22号以前创建的文件。不会删除到回收站
  • php 关闭浏览器,销毁session

    千次阅读 2010-10-11 15:50:00
    看教程什么的 都说 浏览器关闭后session自动销毁,但是我在本地测试,发现程序关闭后session不能自动销毁,另外php.ini 默认是20分钟后session自动销毁,也没反应,希望懂得的出来解释 Garbage ...
  • shell 实现自动删除文件

    千次阅读 2017-04-24 16:54:42
    1、crontab -e #设置自动执行 51 16 * * 1 sh /home/sxf/test/clean.sh #设置每个周一的16:51时,自动执行clean.sh脚本 2、clean.sh  #!/bin/sh date >> /home/sxf/test/log.txt ls -lHR /home/sxf/test/tt ...
  • 说明: (1)该篇在上篇的基础上实现了自动创建设备文件的功能; (2)自动创建文件主要用到了...(3)设备文件的创建和销毁放在模块加载和卸载函数中; #include #include #include #include #include #include
  • .Net确定销毁

    千次阅读 2006-10-18 14:51:00
    .Net中,垃圾回收器负责回收你创建的引用类型的对象,但是回收时间并不能准确估计出来,所以这称之为非确定销毁。值类型自动释放,所以不在本文讨论之中。 但是有些稀缺资源,比如文件句柄、数据库连接等,就需要...
  • 直接上代码using System; using System.IO; sealed class TempFile : IDisposable { string path; public TempFile() : this(System.IO.Path.GetTempFileName()) { } public TempFile(string path) ...
  • UIViewController加载与销毁

    千次阅读 2013-07-16 11:46:41
    如果没有找到那个专有的那个nib文件,默认会去找一个名字与view controller相匹配的nib文件去加载。 如果没有有效的nib文件,默认实现最后会返回一个空view,并且赋值给view。 注意: 不要 [super ...
  • singleton的对象为单例模式,这样的对象在Spring的容器中只维持一个,需要的时候可以来取,也就是说这个对象将自己的控制权交给了Spring容器,那么他什么时候创建(单例的对象在加载配置文件的时候创建)与销毁取决于...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 188,322
精华内容 75,328
关键字:

文件自动销毁