精华内容
下载资源
问答
  • Linux下制作自解压文件

    千次阅读 2012-10-28 19:02:35
    linux下怎样制作解压缩文件 windows下有很多解压缩的exe,很多安装程序,你可以直接用右键压缩出来,那么linux下能不能制作这些解压缩的包呢? 其实我们遇到的很多bin文件都是类似得采用的前面脚本、后面tar...
    linux下怎样制作自解压缩文件
    windows下有很多自解压缩的exe,很多安装程序,你可以直接用右键压缩出来,那么linux下能不能制作这些自解压缩的包呢?
    其实我们遇到的很多bin文件都是类似得采用的前面脚本、后面tar.gz压缩包的形式,比如jre和GoogleEarth都是这样的,但是不是所有的都是这样,比如realplayer就是一个完全的二进制文件。
    以下是一个自解压缩的例子:
    #!/bin/bash
    sed '1,/^#here/d' $0 >a.tar
    tar xf a.tar
    exit
    #here
    把上面四行文件保存到a.sh里面,然后cat a.sh a.tar >a.bin,把a.sh添加到a.tar的头部,并改名为a.bin,然后chmod a+x a.bin,再执行./a.bin,就能自动把a.tar的内容解压出来了。当然,你也可以使用tar.gz包,甚至是7z包。sed和exit中间部分的脚本你可以自己定义,比如解压到临时目录,然后运行下面的某个程序,运行完成后删除这个目录等。
    还有,很多其他类型的文件,其实是使用zip格式的,比如MSOffice 2007的docx格式,和OpenOffice.org的odt格式,其实都是zip压缩的(早期的odt是gz压缩的,后来改成zip),你把后缀改成zip解压就能看到里面的东西,类似的还有qq表情包等。
    展开全文
  • 这是我从网上找来的: 先做好自解压程序,然后使用 C32asm 或者其它二...到底怎样才能去掉winrar自解压文件右键的“用winrar打开”? ![图片说明](https://img-ask.csdn.net/upload/201510/07/1444148789_44099.png)
  • 第一步:下载并解压vs2005 第二步:双击进入Visual Studio 2005安装包,单击进入setup文件夹,单击setup.exe进入安装界面并安装好vs2005 第三步:双击打开vs2005 第四步:打开后我们点击软件菜单栏的【文件】,然后...

    (纯小白教程,大神勿喷)

    第一步:下载并解压vs2005

    第二步:双击进入Visual Studio 2005安装包,单击进入setup文件夹,单击setup.exe进入安装界面并安装好vs2005怎样制作自己的第一个程序?

    第三步:双击打开vs2005
    怎样制作自己的第一个程序?

    第四步:打开后我们点击软件菜单栏的【文件】,然后单击【新建】里面的【项目】选项打开新建项目对话框。
    怎样制作自己的第一个程序?

    第五步:在新建的窗体中,在左侧工具箱【公共控件】里面找到【Button按钮】按下鼠标左键不放拖入Button按钮到窗体中然后松开鼠标。
    怎样制作自己的第一个程序?

    第六步:双击button按钮,在光标位置输入
    MessageBox.Show("我的第一个窗口程序!");
    记得结尾加分号!
    怎样制作自己的第一个程序?

    第七步:点击上面的绿色按钮,程序就运行了。
    怎样制作自己的第一个程序?

    恭喜你已经做出了你的第一个软件!
    怎样制作自己的第一个程序?

    感谢阅读!

    转载于:https://blog.51cto.com/13902730/2152905

    展开全文
  • 怎样用notepad2完美取代系统的记事本?解压后,使用鼠标右键点击“绿色安装.inf”,选择安装即可。会自动关联TXT等文档格式,当打开TXT文件时,会自动调用Notepad2Notepad2是一款非常棒的文本编辑工具,压缩包内附32...
  • 怎样剪切歌曲虽然成了我们经久不衰的谈论话题,...那好,大家先把迅捷音频转换器下载到自己的电脑上并解压吧,双击exe应用程序打开转换器吧。 点击添加文件按钮将需要剪切的歌曲添加进来吧。备注:如果需要剪切的...

    怎样剪切歌曲虽然成了我们经久不衰的谈论话题,但是依旧是很有价值的一个问题,剪切歌曲有很多的方法,方法再多也该找到一个最适合自己的才是王道。因此今天再次给大家贡献一个怎样剪切歌曲的方法,至于剪切歌曲用什么软件,请跟着我一起往下学习吧。

    那好,大家先把迅捷音频转换器下载到自己的电脑上并解压吧,双击exe应用程序打开转换器吧。

    点击添加文件按钮将需要剪切的歌曲添加进来吧。备注:如果需要剪切的文件比较多,可以批量进行添加哦!

    紧接着将音频歌曲添加进去后,便可以开始剪切音频操作功能了。看到界面右方有三个功能选项,分别是手动分割、平均分割和时间分割。看你自己选择哪种合适。

    选中后,可以点击了右下方的“开始剪切”按钮,很快就可以将歌曲剪切完成了,音频文件一般速度都很快,所以大家不用担心要等很久。

    怎样剪切歌曲就是这么回事啦,很简单吧,可能大家会有疑问,担心剪切后的文件在哪里可以快速找到。只要将保存文件的位置自定义一个地方自然很快能查询到。 

    这款软件还有一个功能,那就是转换音频文件的格式,如果你想输出其他格式的文件,那么就可以“格式转换”,然后再进行转换。

    好啦,不多说啦,到这里怎样剪切歌曲就已经结束啦,大家就赶紧去剪切你的歌曲吧,另外这款软件还可以转换视频格式哟!

    展开全文
  • 自动安装程序的实现算法和源代码

    千次阅读 2002-06-10 09:39:00
    自动安装程序的实现算法和源代码李安东关键字: 自解压 自动安装程序 假如我的程序要调用一个setup.exe程序,自动安装一个软件,完成安装后再把临时文件全部删除,应怎样实现呢?虽然很简单,但有一个问题需要解决...

    自动安装程序的实现算法和源代码

    李安东


    关键字: 自解压 自动安装程序

        假如我的程序要调用一个setup.exe程序,自动安装一个软件,完成安装后再把临时文件全部删除,应怎样实现呢?虽然很简单,但有一个问题需要解决,就是如何判断何时已经安装完成了呢?当然可以用
    //Wait for until it terminated:
     while(GetExitCodeProcess(newinfo.hProcess,&dwExitCode)&&
      dwExitCode==STILL_ACTIVE);


        来等待setup.exe运行结束,但是问题可能并不这么简单,常常是setup.exe又调用了别的子进程(例如_delis和inst5176什么的),而setup.exe退出后,子进程并未退出,即任务仍未完成。因此这时删除临时文件和文件夹仍然会导致安装失败和删除文件失败。(我判断早期的WinRAR创建的TempMode自解压文件,在启动setup.ex后安装之所以会失败,可能就是因为判断错误,即在未完成安装时就把临时文件删除了。)

    这个问题可以按如下方法解决(供参考):
    1、用系统函数CreateEvent()创建一个事件hEvent;
    2、启动释放在临时目录(比如C:/WINDOWS/TEMP/MYTEMP)下的setup.exe后,然后执行如下语句:
    //Wait for the self-extract process exit:
     ::ResetEvent(hEvent);
     while(::WaitForSingleObject(hEvent,500)==WAIT_TIMEOUT)
     {  IsExit(); }


    即先将事件hEvent复位到无信号状态,并循环调用IsExit()函数;


    3、在IsExit()函数中列举系统中所有进程:
    (1)、调用系统函数CreateToolhelp32Snapshot()并指定TH32CS_SNAPPROCESS参数,获取一个系统中所有进程的列表(snapshot);
    (2)、调用系统函数Process32First()获取第一个进程的信息;
    (3)、循环调用系统函数Process32Next()获取其余进程的信息。
    上述函数调用中有一个参数lppe是一个PROCESSENTRY32类型的结构。lppe.th32ProcessID参数包含了获取的进程标识符;lppe.szExeFile为该进程的可执行文件路径和名称。
    因此在上述处理过程中,每次获取lppe后均判断lppe.szExeFile 中的路径是否是安装程序所在的临时目录,如果不存在这样的进程,则说明安装已经完成,则调用SetEvent()函数,将hEvent事件设置为有信号,从而使第二步中的循环结束;


    4、关闭事件句柄,删除安装程序的所有临时文件和文件夹(例如MYTEMP),完成安装。
    注意:在调用列举进程的函数时必须添加#include <Tlhelp32.h>指令。


    下面是示例代码(已调试通过):
    // MySfx.cpp : Defines the entry point for the application.
    //

    #include "stdafx.h"
    #include "resource.h"

    // Foward declarations of functions included in this code module:
    BOOL InitInstance(HINSTANCE, int);
    void RemoveThem(char *strPath);
    void IsExit();

    int APIENTRY WinMain(HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR     lpCmdLine,
                         int       nCmdShow)

     // Perform application initialization:
     return InitInstance (hInstance, nCmdShow); 
    }

    //
    //   FUNCTION: InitInstance(HANDLE, int)
    //
    //   PURPOSE: Saves instance handle and creates main window
    //
    //   COMMENTS:
    //
    //        In this function, we save the instance handle in a global variable and
    //        create and display the main program window.
    //
    #if defined(_DEBUG)
    #define THISFILE_LENGTH 159785
    #else
    #define THISFILE_LENGTH 28672
    #endif

    char sPath[256];
    HANDLE hEvent;

    BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
    {
     char sModule[256],sTemFile[256];
     //Gets temporary directory: 
     ::GetTempPath(255,sPath);
     strcat(sPath,"Mytemp"); 
     ::CreateDirectory(sPath,NULL);
     strcpy(sTemFile,sPath);
     strcat(sTemFile,"//Sfx.exe");
     ::GetModuleFileName(NULL,sModule,255);

     //Opens the module file:
     HANDLE hFile=::CreateFile(sModule,GENERIC_READ,FILE_SHARE_READ,
        NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
     if(INVALID_HANDLE_VALUE==hFile)return 0;
     //Creates the temprory file:
     HANDLE hFileTemp=::CreateFile(sTemFile,GENERIC_WRITE|GENERIC_READ,
        0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
     if(INVALID_HANDLE_VALUE==hFileTemp)
     {
      ::CloseHandle(hFile); return 0;
     }
     ::SetFilePointer(hFile,THISFILE_LENGTH,NULL,FILE_BEGIN);
     //Now begin to read and write:
     while(TRUE)
     {
      BYTE buf[40*1024];
      DWORD dwNumberOfBytesRead;
      if(::ReadFile(hFile,buf,40*1024,&dwNumberOfBytesRead,NULL)==0)
       break;
      DWORD dwNumberOfBytesWritten;
      if(dwNumberOfBytesRead>0)
       if(!::WriteFile(hFileTemp,buf,dwNumberOfBytesRead,
        &dwNumberOfBytesWritten,NULL))break;
      if(dwNumberOfBytesRead<40*1024)break;
     }//while(TRUE)
     ::CloseHandle(hFile);
     ::CloseHandle(hFileTemp);

     //Prepare to extract files and setup the application:
     //Creates a auto-reset event object:
     hEvent=::CreateEvent(
       NULL, // SD
       FALSE,                       // reset type
       FALSE,                      // initial state
       NULL                          // object name
       );

     //Executes self-extract file to extract files:
     STARTUPINFO info;
     PROCESS_INFORMATION newinfo;
     ::GetStartupInfo(&info);
     ::CreateProcess(sTemFile,NULL,NULL,NULL,FALSE,
       CREATE_DEFAULT_ERROR_MODE,NULL,sPath,&info,&newinfo);

     //Wait for the self-extract process exit:
     ::ResetEvent(hEvent);
     while(::WaitForSingleObject(hEvent,500)==WAIT_TIMEOUT)
     {
      IsExit();
     }

     //Executes setup:
     strcpy(sTemFile,sPath);
     strcat(sTemFile,"//Setup.exe");
     ::CreateProcess(sTemFile,NULL,NULL,NULL,FALSE,
       CREATE_DEFAULT_ERROR_MODE|CREATE_NO_WINDOW,
       NULL,sPath,&info,&newinfo);
     //Wait for setup process and other started by it exit:
     ::ResetEvent(hEvent);
     while(::WaitForSingleObject(hEvent,500)==WAIT_TIMEOUT)
     {
      IsExit();
     }
     ::CloseHandle(hEvent);
     
     //Remove tempary files and folders:
     RemoveThem(sPath);
     
       return FALSE;
    }

    void RemoveThem(char *strPath)
    {
     char strTemFile[256];
     strcpy(strTemFile,strPath);
     strcat(strTemFile,"//*.*");
     WIN32_FIND_DATA FindFileData;
     HANDLE hFind=FindFirstFile(strTemFile,&FindFileData);
     if(hFind!=INVALID_HANDLE_VALUE)
     while(TRUE)
     {
      if(FindFileData.cFileName[0]=='.')
      {
       if(!FindNextFile(hFind,&FindFileData))break;
       continue;
      }
      strcpy(strTemFile,strPath);
      strcat(strTemFile,"//");
      strcat(strTemFile,FindFileData.cFileName);
      if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
        RemoveThem(strTemFile);//recursive call if it's a subdirectory.
      else ::DeleteFile(strTemFile);//Delete it if it's a file.
      if(!FindNextFile(hFind,&FindFileData))break;
     }
     ::CloseHandle(hFind);
     ::RemoveDirectory(strPath);
    }

    void IsExit()
    {
     //Enumerate current processes:
     //This process don't exit until the processes belonged to setup are all terminated:
     HANDLE hSnapshot;
     PROCESSENTRY32 pe;
     pe.dwSize=sizeof(pe);
     BOOL blExist=FALSE;
     size_t len=strlen(sPath);

     hSnapshot=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
     if(hSnapshot<0) goto L1;
     
     if(::Process32First(hSnapshot,&pe)==FALSE)
     {
      ::CloseHandle(hSnapshot); goto L1;
     }
     if(_strnicmp(sPath,pe.szExeFile,len)==0)
         blExist=TRUE;
      
     while(blExist==FALSE && ::Process32Next(hSnapshot,&pe))
     {
      if(_strnicmp(sPath,pe.szExeFile,len)==0)
      {
       blExist=TRUE; break;
      } 
     }
     ::CloseHandle(hSnapshot);

    L1: if(blExist==FALSE) ::SetEvent(hEvent); 
    }

    本文的意图不是要开发一个工具软件(因为市面上已有此类工具),其主要目的是想与有兴趣的朋友一起切磋一下实现思路,说不定对某位朋友也许会有一点帮助(如需要完整代码可来信索取)。

     

    *****************************************************************

    附注:

    1、感谢朋友们的鼓励,因为要源码的朋友较多,现在请您直接到下面去下载源代码:

    http://www.csdn.net/cnshare

    2、使用Sleep()函数确实更加简便,谢谢高手指点。

     

    展开全文
  • eclipse-jee-neon-3安装

    千次阅读 2018-03-13 22:22:01
    1eclipse-jee-neon-3-win32-x86_64下载解压之后执行eclipse.exe即可打开软件2汉化包解压之后,将文件拷到上面解压缩文件的dropins文件夹中3调整Eclipse字体大小4.Ecplise创建一个类的时候如何自动添加作者,时间等...
  • 选择好歌曲文件之后,再单击EXE文件一栏右边的选择按钮,选择文件转换之后的存放位置,存放位置自己定,找是到就行了,这里我给转换后的文件取名为Ukey.exe,大家要记住,扩展名一定要为exe。 选择好转换后存放的...
  • php开发_php环境搭建

    2019-10-04 13:33:42
    学php开发,首先是要把环境给搭建起来,然后再写出自己的第一个"helloworld"小... 那么怎样搭建php开发环境呢? 我是这么做的: 1.下载工具:WAMP5-v1.7.4.rar ...下载后,解压,得到:wamp5_1.7.4.exe安装文件。双...
  • PHP开发环境搭建

    2014-06-13 21:41:45
    那么怎样搭建php开发环境呢?...下载后,解压,得到:wamp5_1.7.4.exe安装文件。双击它,就可以安装了。 它里面集成了Apache,mysql,php等开发所需的工具。安装完成后,只需要配置一些东西就可以了。 如:my
  • 现在打开得到的开始解压文件,双击KEYGEN.EXE文件,出现注册机。 复制会声会影注册页面显示的Serial号码和Machine ID到注册机相应位置,特别要注意:由于复制号码时复制了末尾部分空格(复制粘贴后在注册机上看不...
  • 代码语法错误分析工具pclint8.0

    热门讨论 2010-06-29 07:00:09
    代码静态分析工具PC-LINT安装配置 PC-Lint是C/C++软件代码静态分析工具,你可以把它看作是一种更加...运行lint目录下的msg.exe可以得到msg.txt文件, 这个长达5000行的文件包含了所有的错误信息号和解释。 -w ...
  • windowsnt 技术内幕

    2014-04-09 20:47:17
    理解在RISC结构上的Windows NT引导过程 理解Windows NT装载过程 介绍Windows NT装载阶段的“服务错误级别” 编辑Boot.ini文件 理解一般性的引导错误 丢失引导文件的后果 利用Expand.exe恢复丢失的或损坏的引导文件 ...
  • C#开发典型模块大全

    2014-03-12 18:11:22
    11.3.7 批量压缩、解压文件 278 11.3.8 分割、合并文件 280 第12章 图片管理工具模块 12.1 概述 286 12.2 关键技术 286 12.2.1 上下移动ListBox选中项 286 12.2.2 将文件复制到剪切板 287 12.2.3 ...
  • 把下载好的安装包解压到当前文件夹,之后双击【toolsbox.exe】运行文件进行安装,打开的时候会出现安装框,依次开始安装,依照步骤点击下一步,并选择同意协议和软件安装位置即可。   点击【完成】按钮,王牌...
  • wince6.0模拟器是一个车载式PC模拟器,英文全称为:windows embedded ce6.0,主要是使用在3D...DeviceEmulator.exe CE50_ARM_CHS.bin /memsize 128 /s TMP.dess /video 320x300x16 3.5的是320x300x16 4.3的是480x300x16
  • C#编程经验技巧宝典

    热门讨论 2008-06-01 08:59:33
    10 <br>0023 如何添加引用第3方控件 11 <br>0024 如何生成DLL文件 11 <br>0025 如何使用不安全代码 11 <br>第2章 语言基础 13 <br>2.1 注释 14 <br>0026 如何对代码进行注释 14 ...
  • MATLAB6.5需要解压mglinstaller.exe,精简压缩大约需要9M左右;MATLAB7.X需要预安装MCRinstaller.exe,安装程序体积不小于90M,并且极度麻烦;MATFOR需要打包至少30M左右的运行时支持动态链接库,同时附加用户注册...

空空如也

空空如也

1
收藏数 20
精华内容 8
关键字:

怎样解压exe自解压文件