精华内容
下载资源
问答
  • 【明智Wise系列 - 软件名称】Wise_Program_Uninstaller_v2.2.3.118【强制卸载程序 - 精简优化版】 — 是Wise公司开发的一款免费的程序卸载软件,它可以帮助您卸载不需要的程序或强制卸载无法通过Windows或其他程序...
  • 激活安装日志记录,该日志文件将会作为卸载文件的依据(注意,本区段必须放置在所有区段之前) Section "-LogSetOn" LogSet on SectionEnd 3、 /****************************** * 以下是安装程序卸载部分 * *...
    
    

    1、在普通安装脚本前添加库

    !include "LogicLib.nsh"
    

    2、; 激活安装日志记录,该日志文件将会作为卸载文件的依据(注意,本区段必须放置在所有区段之前)

    Section "-LogSetOn"
      LogSet on
    SectionEnd
    

    3、

    /****************************** * 以下是安装程序的卸载部分 * ******************************/

    ; 根据安装日志卸载文件的调用宏

    !macro DelFileByLog LogFile
      ifFileExists `${LogFile}` 0 +4
        Push `${LogFile}`
        Call un.DelFileByLog
        Delete `${LogFile}`
    !macroend
    
    Section Uninstall
      !insertmacro MUI_STARTMENU_GETFOLDER "Application" $ICONS_GROUP
      Delete "$INSTDIR\${PRODUCT_NAME}.url"
    
    ; 调用宏只根据安装日志卸载安装程序自己安装过的文件
    
    !insertmacro DelFileByLog "$INSTDIR\install.log"
    
      ; 清除安装程序创建的且在卸载时可能为空的子目录,对于递归添加的文件目录,请由最内层的子目录开始清除(注意,不要带 /r 参数,否则会失去 DelFileByLog 的意义)
    RMDir "$SMPROGRAMS\$ICONS_GROUP"
    SectionEnd
    

    -- 根据 NSIS 脚本编辑规则,所有 Function 区段必须放置在 Section 区段之后编写,以避免安装程序出现未可预知的问题。--

    ; 以下是卸载程序通过安装日志卸载文件的专用函数,请不要随意修改
          Function un.DelFileByLog
          Exch $R0
          Push $R1
          Push $R2
          Push $R3
          FileOpen $R0 $R0 r
          ${Do}
            FileRead $R0 $R1
            ${IfThen} $R1 == `` ${|} ${ExitDo} ${|}
            StrCpy $R1 $R1 -2
            StrCpy $R2 $R1 11
            StrCpy $R3 $R1 20
            ${If} $R2 == "File: wrote"
            ${OrIf} $R2 == "File: skipp"
            ${OrIf} $R3 == "CreateShortCut: out:"
            ${OrIf} $R3 == "created uninstaller:"
              Push $R1
              Push `"`
              Call un.DelFileByLog.StrLoc
              Pop $R2
              ${If} $R2 != ""
                IntOp $R2 $R2 + 1
                StrCpy $R3 $R1 "" $R2
                Push $R3
                Push `"`
                Call un.DelFileByLog.StrLoc
                Pop $R2
                ${If} $R2 != ""
                  StrCpy $R3 $R3 $R2
                  Delete /REBOOTOK $R3
                ${EndIf}
              ${EndIf}
            ${EndIf}
            StrCpy $R2 $R1 7
            ${If} $R2 == "Rename:"
              Push $R1
              Push "->"
              Call un.DelFileByLog.StrLoc
              Pop $R2
              ${If} $R2 != ""
                IntOp $R2 $R2 + 2
                StrCpy $R3 $R1 "" $R2
                Delete /REBOOTOK $R3
              ${EndIf}
            ${EndIf}
          ${Loop}
          FileClose $R0
          Pop $R3
          Pop $R2
          Pop $R1
          Pop $R0
        FunctionEnd
    
        Function un.DelFileByLog.StrLoc
          Exch $R0
          Exch
          Exch $R1
          Push $R2
          Push $R3
          Push $R4
          Push $R5
          StrLen $R2 $R0
          StrLen $R3 $R1
          StrCpy $R4 0
          ${Do}
            StrCpy $R5 $R1 $R2 $R4
            ${If} $R5 == $R0
            ${OrIf} $R4 = $R3
              ${ExitDo}
            ${EndIf}
            IntOp $R4 $R4 + 1
          ${Loop}
          ${If} $R4 = $R3
            StrCpy $R0 ""
          ${Else}
            StrCpy $R0 $R4
          ${EndIf}
          Pop $R5
          Pop $R4
          Pop $R3
          Pop $R2
          Pop $R1
          Exch $R0
        FunctionEnd
    这期间或许会遇到该问题。
    Section: "-LogSetOn"
    错误: 已指定 LogSet , 但未定义 NSIS_CONFIG_LOG .
    是这样的提示,请问怎么解决呢?

    代码是用HM VNISEdit 脚本编辑器向导产生
    代码里都有:
    !include "LogicLib.nsh"
    ; 激活安装日志记录,该日志文件将会作为卸载文件的依据(注意,本区段必须放置在所有区段之前)
    Section "-LogSetOn"
    LogSet on
    SectionEnd
    最佳答案
    根据你的 NSIS 版本下载开启安装 log 的文件覆盖你原来的 NSIS 文件夹中同名文件:
    http://sourceforge.net/projects/nsis/files/
    比如 NSIS 2.46,就下载 nsis-2.46-log.zip 覆盖你 NSIS 中同名文件。

    展开全文
  • 基于c#的一个串口给STM32发送图片的程序。...根据默认路径在treeview中遍历文件夹和文件,若选择图片文件,则可以显示出图像信息。2.支持热插拔,识别串口信息,并且在串口中显示COM口。3.连接COM口后可以向stm3...

    基于c#的一个串口给STM32发送图片的程序。
    初次接触c#,加上有c语言基础,首先自学了所有的基本语法。要从面向过程的语言向面对对象的语言转换还是比较困难,还好目前已经能写点小程序了。界面如下:

     

    可以实现的功能1.根据默认路径在treeview中遍历文件夹和文件,若选择图片文件,则可以显示出图像信息。2.支持热插拔,识别串口信息,并且在串口中显示COM口。3.连接COM口后可以向stm32中发送图片的RGB像素信息。以实现在STM32上面的刷图。4.int文件用来储存你的默认路径,方便设置默认路径。

    为了使项目更加有层次,在工程中建自一个类库的项目MyDll,用来调用库以及增加自定义控件。基础的项目如下MyDll为类库,Upper_LCD为form主程序:


    这个项目中的核心就是串口通讯成功与否。如果想要通讯稳定,建议使用HID的协议,但是由于STM32上面的硬件限制,我在此项目中使用CP2012的USB转的串口。

    以下为这个项目的重要步骤。

    1:串口识别的自定义控件,如图:

    用定时器定时检测是否有串口:

      public void Check_USB_Connect()
            {
                
                string[] t = SerialPort.GetPortNames();
    
               
    
                if ((beforeS != t.Length) && (!ComPort.IsOpen))
                {
                   
                    foreach (string com in t)
                    {
                      
                            USBConBox.Items.Add(com);
                                  
                    }
                    
                }
                beforeS = t.Length;
    
                if (beforeS == 0)    //判断是否找到串口
                {
                    USBConBox.Text = "";
                    OpenBut.Enabled = false;
                    OpenBut.ForeColor = Color.Gray;
                    FindS.Text = "无串口";
                    FindS.ForeColor = Color.Red;
    
                }
                else
                {
                    USBConBox.Text = t[0];
                    OpenBut.Enabled = true;
                    OpenBut.ForeColor = Color.Black;
                    FindS.Text = "找到串口";
                    FindS.ForeColor = Color.Green;
                    if (ComPort.IsOpen)  //判断是否连接
                    {
                        OpenBut.Text = "关闭串口";
                        ComStause.Text = "串口已经连接";
                        ComStause.ForeColor = Color.Green;
                    }
                    else
                    {
    
                        OpenBut.Text = "打开串口";
                        ComStause.Text = "串口未连接";
                        ComStause.ForeColor = Color.Red;
                    }
                }
    
                
    
    
    
            }
    
            private void timer1_Tick(object sender, EventArgs e)
            {
                Check_USB_Connect();
            }
    

    打开串口按键按下:

       private void OpenBut_Click(object sender, EventArgs e)
            {
                if (ComPort.IsOpen)
                {
                    ComPort.Close();
                    
                }
                else
                {
                    ComPort.PortName = USBConBox.Text;
                    while (!ComPort.IsOpen)
                    {
                       
                        ComPort.BaudRate =Convert.ToInt32(BoundBox.Text);
                        ComPort.Open();
                        
                    }
                   
                }
    
            }

    初始化给串口设置波特率,以及为定时器挂上终中断事件的部分:

      public USBConnect()
            {
                InitializeComponent();
                timer1.Tick += new EventHandler(timer1_Tick); //给timer挂起事件
    
                timer1.Enabled = true;//使timer可用
    
                timer1.Interval = 100; //设置时间间隔,以毫秒为单位
                string[] bounds = { "2400", "4800", "9600", "14400", "19200", "38400", "56000", "57600", "115200" };
                foreach (string bound in bounds)
                {
                    BoundBox.Items.Add(bound);
                }
                BoundBox.SelectedIndex = 8;
            }

    总结:很简单的代码,容易出错的点就是定时器enable要设置为True

    2:TreeView根据默认路径来建立展开节点,遍历文件和文件夹

    这个网上方法有很多,我这里可以从设置中设置默认路径。然后从默认路径中展开节点,为使此时节点的展开都从上一次设置的默认路径开始。添加了配置文件,配置文件中保存了设置好的默认路径,然后每次程序运行,都会讲将配置文件中的默认路径读出,以此展开节点。通过这种配置文件的方法,也可以设置保存一些特殊属性,是程序更具个性化。TreeView代码如下:

     private void button4_Click(object sender, EventArgs e)
            {
                string refPath = Win32API.INIGetStringValue(VitualUSB.path1 + "INI.ini", "INI", "defaultPath", null);
                directoryTree.Nodes.Clear();
                TreeNode tn = new TreeNode();
    
                tn.Text = refPath;
    
                getDirectories(refPath, tn);
    
                directoryTree.Nodes.Add(tn);
                tn.Expand();
            }
     public void getDirectories(string path, TreeNode tn)
            {
    
                try
                {
                    string[] fileNames = Directory.GetFiles(path);
                    string[] directories = Directory.GetDirectories(path);
                    DirectoryInfo folder = new DirectoryInfo(path);
                    tn.Text = folder.Name;
                    tn.Tag = folder.FullName;
    
                    //先遍历这个目录下的文件夹
                    foreach (string dir in directories)
                    {
    
                        TreeNode subtn = new TreeNode();
    
                        subtn.Tag = dir;
    
                        subtn.Text = GetShorterFileName(dir);
    
                        getDirectories(dir, subtn);
                        subtn.SelectedImageIndex = IconIndexes.OpenFolder; //选择节点显示图片
                        tn.Nodes.Add(subtn);
    
                    }
    
    
                    //再遍历这个目录下的文件
                    foreach (string file in fileNames)
                    {
    
                        TreeNode subtn = new TreeNode();
    
                        subtn.Text = GetShorterFileName(file);
                        subtn.Tag = file;
                        if (file == "(*.txt)")
                        {
    
                            subtn.SelectedImageIndex = IconIndexes.MyFileTXT; //选择节点显示图片
                        }
                        else if (file == "(*.jpg)" | file == "(*.bmp)")
                        {
    
                            subtn.SelectedImageIndex = IconIndexes.MyFilePng;//选择节点显示图片
                        }
                        else
                        {
                            subtn.SelectedImageIndex = IconIndexes.MyDocuments;//选择节点显示图片
                        }
    
                        tn.Nodes.Add(subtn);
    
                    }
    
    
                }
                catch (Exception msg)
                { }
    
            }
    
    
            /// <summary>
                    /// 滤去文件名前面的路径
                   /// </summary>
                    /// <param name="filename"></param>
                    /// <returns></returns>
            public string GetShorterFileName(string filename)
            {
    
                return filename.Substring(filename.LastIndexOf("\\") + 1);
    
            }

    这里的技巧是,将文件的名字保存在节点的tag属性中,之后方便取出。

    3:得出图片中的RGB像素信息并发出。

    为了使发送稳定,我在这里将发送设定在定时器中。将图片文件用文件流的方式打开,以便对其进行操作,代码如下:

        private void timer1_Tick(object sender, EventArgs e)
            {
               
                    try
                    {
                        Thread.Sleep(10);
                        sendpng();
                    }
                    catch
                    {
                        timer1.Enabled = false;
                    }
                
               
                    
                    
    
            }
    
            public string sendpng()
            {
                byte[] BytesRGB = new byte[5];
    
                BytesRGB[3] = 0x0D;
                BytesRGB[4] = 0x0A;
    
                try
                {
                    Bitmap bmp = new Bitmap(FilePath);
                   
                        
                        for (int test = 0; test < width; test++)
                        {
                        if (y < height)
                        {
                            Color pixelColor = bmp.GetPixel(x, y);
                            //颜色的 RED 分量值
                            red = pixelColor.R;
                          
                            //颜色的 GREEN 分量值
                            green = pixelColor.G;
                           
                            //颜色的 BLUE 分量值
                            blue = pixelColor.B;
                            
                            BytesRGB[0] = Convert.ToByte(red);//保存到文件中                 
                            BytesRGB[1] = Convert.ToByte(green);
                            BytesRGB[2] = Convert.ToByte(blue);
                            //   SendArea.Text += red.ToString("X2") + " " + green.ToString("X2") + " " + blue.ToString("X2") + " ";
    
                            if (usbConnect3.ComPort.IsOpen)    //如果检测到COM连接,再发送读取到的像素数据
                            {
                               
                                usbConnect3.ComPort.Write(BytesRGB, 0, 5);
                                ReadMold = "Bmp_Send";
                                Read_Mold.Text = ReadMold;
                                Read_Mold.ForeColor = Color.Red;
                                toolStripStatusLabel1.Text = "发送图片数据->sSTM32";
                                toolStripStatusLabel1.ForeColor = Color.Red;
                            }
                            else
                            {
                                MessageBox.Show("串口未连接");
                                break;
    
                            }
                            lenth.Text = (width * y + x + 1).ToString();  //求出此时发送的数据个数
                            progressBar1.Value = width * y + x + 1;
                            x += 1;
                            if (x == width)
                            {
                                x = 0;
                                y += 1;
                            }
                            if (y == height)
                            {
                                toolStripStatusLabel1.Text = "发送完成";
                                toolStripStatusLabel1.ForeColor = Color.Green;
                                timer1.Enabled = false;
                                
                            }
                        
                        }
    
                       
                    }
               
                   
                    return "true";
                }
                catch
                {
                  
                    return "false";
    
                }
    
    
            }
     

    4:将一些细节修改完后,打包程序。

    在解决方案中添加setup项目

    如果找不到请在联网搜索下载:

    之后的操作请参考:https://blog.csdn.net/Shenpibaipao/article/details/83152955

     

    全部完整代码如下(包括stm32和上位机):

    https://download.csdn.net/download/qq_34484082/10963422

    展开全文
  • 需求 Inno Setup 默认的自动生成的卸载程序...Inno Setup 支持在同一个目录中安装多个应用程序,所以根据安装的先后次序自动将卸载程序文件命名为 unins000.exe,unins001.exe,unins002.exe 等等。这是 Inno Se...

    需求

    Inno Setup 默认的自动生成的卸载程序名称为unins000,还包括一个同样名字的DAT格式文件。我想修改卸载程序Unins000的名称及其图标,但是却始终找不到该修改哪里!

    Inno Setup 支持在同一个目录中安装多个应用程序,所以根据安装的先后次序自动将卸载程序文件命名为 unins000.exe,unins001.exe,unins002.exe 等等。这是 Inno Setup 自身的功能。请参阅 http://www.jrsoftware.org/iskb.php?uninstallername

    UninstallDisplayName与UninstallDisplayIcon 这两个修改的只是程序在“添加\删除程序”控制面板里的名称与图标。

    一旦安装过程结束后,你当然可以将卸载文件的名称改成任意其它的文件名,注意的是你除了要更改安装目录里面的 unins00X.exe 和 unins00X.dat,还要更改注册表中的相关卸载信息。

    由于卸载程序文件的实际位置和名称可以用常量 {uninstallexe} 表示,所以你可以让你的安装程序自动进行这些修改,见示例脚本。

    ; Inno Setup 脚本
    ; 该示例脚本显示如何自定义卸载文件的名称(默认为unins000.exe,unins001.exe等等)。

    [Setup]

    AppName=自定义卸载文件名示例程序
    AppVerName=自定义卸载文件名示例程序 1.0
    DefaultDirName={pf}\自定义卸载文件名示例程序
    DefaultGroupName=自定义卸载文件名示例程序
    

    [Files]

    Source: "MyTest.exe"; DestDir: "{app}"
    Source: "Readme.txt"; DestDir: "{app}"
    

    [Code]

    procedure CurStepChanged(CurStep: TSetupStep);
    var
    uninspath, uninsname, NewUninsName, MyAppName: string;
    begin
    if CurStep=ssDone then
    begin
    // 指定新的卸载文件名(不包含扩展名),请相应修改!
    NewUninsName := '卸载';
    // 应用程序名称,与 [Setup] 段的 AppName 必须一致,请相应修改!
    MyAppName := '自定义卸载文件名示例程序';
    // 以下重命名卸载文件
    uninspath:= ExtractFilePath(ExpandConstant('{uninstallexe}'));
    uninsname:= Copy(ExtractFileName(ExpandConstant('{uninstallexe}')),1,8);
    RenameFile(uninspath + uninsname + '.exe', uninspath + NewUninsName + '.exe');
    RenameFile(uninspath + uninsname + '.dat', uninspath + NewUninsName + '.dat');
    // 以下修改相应的注册表内容
    if RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + MyAppName + '_is1') then
    begin
    RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + MyAppName + '_is1', 'UninstallString', '"' + uninspath + NewUninsName + '.exe"');
    RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + MyAppName + '_is1', 'QuietUninstallString', '"' + uninspath + NewUninsName + '.exe" /silent');
    end;
    end;
    end;
    

    Inno Setup 中文帮助文档
    https://download.csdn.net/download/qq_36190858/10836946

    展开全文
  • Inno Setup 支持在同一个目录中安装多个应用程序,所以根据安装的先后次序自动将卸载程序文件命名为 unins000.exe,unins001.exe,unins002.exe 等等。这是 INNO SETUP 自身的功能。请参阅 ...
    Inno Setup 支持在同一个目录中安装多个应用程序,所以根据安装的先后次序自动将卸载程序文件命名为 unins000.exe,unins001.exe,unins002.exe 等等。这是 INNO SETUP 自身的功能。请参阅 http://www.jrsoftware.org/iskb.php?uninstallername 。
    一旦安装过程结束后,你当然可以将卸载文件的名称改成任意其它的文件名,注意的是你除了要更改安装目录里面的 unins00X.exe 和 unins00X.dat,还要更改注册表中的相关卸载信息。由于卸载程序文件的实际位置和名称可以用常量 {uninstallexe} 表示,所以你可以让你的安装程序自动进行这些修改,见示例脚本。
    以下为引用的内容:; Inno Setup 脚本
    ; 该示例脚本显示如何自定义卸载文件的名称(默认为 unins000.exe,unins001.exe 等等)。

     

    [Setup]
    AppName=自定义卸载文件名示例程序
    AppVerName=自定义卸载文件名示例程序 1.0
    DefaultDirName={pf}\自定义卸载文件名示例程序
    DefaultGroupName=自定义卸载文件名示例程序

     

    [Files]
    Source: "MyProg.exe"; DestDir: "{app}"
    Source: "MyProg.hlp"; DestDir: "{app}"
    Source: "Readme.txt"; DestDir: "{app}"

     

    [CODE]
    procedure CurStepChanged(CurStep: TSetupStep);
    var
    uninspath, uninsname, NewUninsName, MyAppName: string;
    begin
    if CurStep=ssDone then
    begin
    // 指定新的卸载文件名(不包含扩展名),请相应修改!
    NewUninsName := '卸载';
    // 应用程序名称,与 [SEUTP] 段的 AppName 必须一致,请相应修改!
    MyAppName := '自定义卸载文件名示例程序';
    // 以下重命名卸载文件
    uninspath:= ExtractFilePath(ExpandConstant('{uninstallexe}'));
    uninsname:= Copy(ExtractFileName(ExpandConstant('{uninstallexe}')),1,8);
    RenameFile(uninspath + uninsname + '.exe', uninspath + NewUninsName + '.exe');
    RenameFile(uninspath + uninsname + '.dat', uninspath + NewUninsName + '.dat');
    // 以下修改相应的注册表内容
    if RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + MyAppName + '_is1') then
    begin
    RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + MyAppName + '_is1', 'UninstallString', '"' + uninspath + NewUninsName + '.exe"');
    RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + MyAppName + '_is1', 'QuietUninstallString', '"' + uninspath + NewUninsName + '.exe" /SILENT');
    end;
    end;
    end;

    转载于:https://www.cnblogs.com/pyw0818/archive/2011/01/22/1941806.html

    展开全文
  • 在系统初启时,往往只安装有一个文件系统,即根文件系统,其上的文件主要是保证系统正常运行的操作系统代码文件,以及若干语言编译程序、命令解释程序和相应的命令处理程序等构成的文件。此外,还有大量的用户文件...
  • Inno Setup自定义卸载文件名称的脚本

    万次阅读 2010-08-12 19:46:00
    Inno Setup 支持在同一个目录中安装多个应用程序,所以根据安装的先后次序自动将卸载程序文件命名为 unins000.exe,unins001.exe,unins002.exe 等等。这是 INNO SETUP 自身的功能。请参阅 ...
  • 解决控制面板卸载不了程序的问题

    千次阅读 2019-09-20 18:19:29
    首先,我将c盘中和该软件有关的文件都删除了 其次,从注册表中逐个查找删除了注册信息 之后,根据下面链接进行了操作,然后就可以重新安装软件了。。 https://baijiahao.baidu.com/s?id=1596466405345130658&...
  • MySql卸载删除

    2020-05-26 15:23:31
    卸载工具,使用这个工具卸载程序,不用再翻注册表,在工具里可以直接追溯到注册表直接清理,很好用。 官方下载链接.(是收费软件,白嫖自行科学搜索) 2. Windows Install Clean Up 微软官方工具,在卸载软件后,...
  • 如果要卸载本软件的话,得通过控制面板里的“添加/删除程序”来对本软件进行卸载,这某一程度上不符合用户习惯。 目的: 为软件添加“卸载”。 步骤: 1、添加文件 2、选择C:\WINDOWS\system32\msiexec.exe ...
  • 完全卸载MySql

    2019-04-18 15:42:29
    1. 控制面板——卸载程序 2.找到mysql右键点击卸载 3.找到mysql安装路径,删除该文件,没有就算了 4.开始键+R 5.输入regedit 6.进入注册表后按ctrl+f查找mysql,删除,或者根据路径 HKEY_LOCAL_MACHINE\SYSTEM\...
  • App Cleaner mac版是Macos上一款超赞的苹果应用程序清理卸载软件,可以帮助您将系统中卸载不掉的顽固文件、应用程序和删除不彻底残留的文件全部清除,安全并且高效。确保它们不会占用您Mac上的宝贵空间。 M1的芯片...
  • linux加载/卸载驱动有两种方法。1.modprobe注:在使用这个命令加载模块前先使用depmod -a命令生成modules.dep文件,该文件位于/lib/modules/$(uname -r)目录下; modprobe命令智能地向内核中加载模块或者从内核中...
  • svn异常卸载

    千次阅读 2019-09-23 16:13:08
    现象:SNV将安装目录误删了,导致其他SNV安装不上提示需要以前安装...2、在控制面板-程序中点击卸载SNV程序,此时需要提醒需要以前的安装原文件(这里能看到版本号,网上下一个就行),下载的文件基本上都是Tortoise...
  • 在windows mobile系统的控制面板中有个粗陋的"删除程序"功能,我们也可以通过CSP实现程序的删除卸载,实现一个属于自己的windows mobile程序卸载器,并且可以根据自己的需要扩展这个程序卸载器的功能。 在实现自己...
  • Linux软件的卸载

    2021-01-20 14:51:55
    configure作用:是源码安装软件时配置环境用的 他根据你的...你要卸载这个程序,要么在原来的make目录下用一次make uninstall(前提是make文件指定过uninstall),要么去上述目录里面把相关的文件一个个手工删掉。指定pr
  • linux加载/卸载驱动有两种方法。 1.modprobe 注:在使用这个命令加载模块前先使用depmod -a命令生成modules.dep文件,该文件位于/lib/modules/$(uname -r)目录下;modprobe命令智能地向内核中加载模块或者从内核中...
  • 安装时把apk文件复制到此目录)、data/data(存放应用程序的数据)、Data/dalvik-cache(将apk中的dex文件安装到dalvik-cache目录下(dex文件是dalvik虚拟机的可执行文件,其大小约为原始apk文件大小的四分之一)) ...
  • MySQL的卸载

    2020-07-24 22:07:35
    第一种方法 (1)找到控制面板–>程序–>...(3)删除遗留的文件根据自己的安装目录进行删除),如果删除不彻底,影响以后MySQL的安装和使用 第二种方法 下载geek.zip 可视化一见删除 ...
  • 软件智能卸载助手

    2015-03-22 15:54:45
    免费且功能强大的软件卸载工具,卸载顽固软件必备。无需注册,可根据快捷方式和开始菜单图标链接程序关系文件。本资源来源于网络分享,实测无毒。
  • WIN7卸载ORACLE

    2015-09-17 06:08:52
    使用%oracle%/product/11.2.0/...接下来会在dos下运行卸载程序,中间需要做些输入,以下是详细内容,每个人会有不同,根据自己的情况选择,有些地方可以直接回车就行   Checking for required files and bootstrapp
  • 卸载SQL Server 2016

    万次阅读 2017-11-04 23:31:00
    首先我们打开SSMS,我们可以看到,虽然我们已经删除了SharePoint Server 2016的应用程序,但是其实数据库文件只是卸载了下来,但是并没有被删除。 这个时候,可以根据需要,进行手动删除。 ...
  • Linux下卸载keepalived

    千次阅读 2016-01-30 11:49:17
    进入keepalived的源码包cd /usr/local/src/keepalived #源码所在目录(根据实际情况进入对应目录)执行卸载程序make uninstall删除相关文件rm -f /usr/local/sbin/keepalived rm -f /usr/local/etc/rc.d/init.d/...
  • Mysql的卸载与安装

    2020-07-25 13:41:15
    3、删除遗留文件 根据自己的安装目录来 C:\ProgramData\MySQL 4、点背,终极卸载 (1)使用360 卸载 (2)删除注册表 window+R regedit A.HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\...
  • 3、接下来程序会查找当前目录中的可执行文件并过滤程序本身和有时我们复制进来的带有vhost的文件,并列出列表让操作者选择(一般情况下只有一个) 4、根据用户所选进行安装或卸载操作 5、由于可能重复操作,需要递
  • Mysql卸载的三种方法

    2020-07-29 08:49:41
    1、控制面板->...3、删除遗留文件 根据自己的安装目录删除 4、点背,终极卸载 (1)使用360卸载 (2)删除注册表 window+R regedit *(3)geek.exe 彻底卸载软件 不需要手动删除注册表 ...
  • macOS卸载应用不彻底

    2019-01-18 08:27:00
    配置文件根据Unix的习惯应该存放在用户目录下,还需要删除这些文件。 ~/Library/Application Support/(应用程序名称) ~/Library/Preferences/(应用程序名称) ~/Library/Caches/(应用程序名称) 转载于:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 671
精华内容 268
关键字:

根据文件卸载程序