精华内容
下载资源
问答
  • 本文内容文件关联注册一个文件类型取一个应用程序标识符在注册表中添加文件关联为关联的程序添加谓词反注册文件类型一个完整的文件关联示例 文件关联 Windows 上的文件关联是通过文件扩展名来实现的。有些文件类型...

    对于 Windows 桌面应用来说,让应用关联一种或多种文件类型是通过修改注册表来实现的。

    本文介绍如何为你的应用关联自定义的文件类型或者关联被广泛使用的文件类型。


    文件关联

    Windows 上的文件关联是通过文件的扩展名来实现的。有些文件类型是被广泛使用的公共类型,例如 .txt、.png、.mp4 文件;有些则是你自己的应用程序使用的私有类型,例如我自己定义一个 .lvyi 扩展名的文件类型。

    我们会关联这些广泛使用的类型可能是因为我们自己写了一个自己的文本编辑器,于是我们会关联 .txt 或者 .md 类型。而我们关联自定义的文件类型是因为我们需要为我们自己的应用生态产生一些文件数据。

    那么问题来了,我怎么知道我现在准备使用的扩展名是不是已经被广泛使用的公共类型呢?请进入此网站查看:Media Types

    注册一个文件类型

    要在 Windows 系统上注册一个文件类型,你需要做三个步骤:

    1. 取一个应用程序标识符(ProgID
    2. 在注册表中添加文件关联(用于告知 Windows 这个文件已经被关联)
    3. 为关联的程序添加谓词(用于打开这个文件)

    取一个应用程序标识符

    没错,我说的就是取名字,而且要求在 Windows 系统上全局唯一;所以这里取名字也是有讲究的。关于应用程序标识符的相关内容,可以阅读微软的官方文档:Programmatic Identifiers - Windows applications - Microsoft Docs

    微软建议的 ProgID 的取名方式是这样的:

    厂商名.应用名.版本号
    

    这里的版本号通常是指的大版本号。例如版本号为 1.6.0.97 的应用,通常只取第一位,即 1。一个典型的建议的取名示例是这样的:

    Walterlv.Foo.1
    

    还是看微软自己的命名示例会更权威一点:

    来自微软的 ProgID 命名示例

    竟然取一个名字也能写这么多篇幅,看来程序员的命名果然是世界上的一大难题呀!赶紧试用一下我的命名神器吧 —— 点击下载,其原理可阅读 冷算法:自动生成代码标识符(类名、方法名、变量名) - 吕毅

    在注册表中添加文件关联

    你需要在注册表的 HKEY_LOCAL_MACHINE\Software\Classes 或者 HKEY_CURRENT_USER\Software\Classes 添加一些子键:

    HKEY_CURRENT_USER\Software\Classes
        .walv
            (Default) = Walterlv.Foo.1
        .lvyi
            (Default) = Walterlv.Foo.1
        Walterlv.Foo.1
            (Default) = 吕毅的示例文件
            Shell
                Open
                    Command
                        (Default) = "C:\Users\lvyi\AppData\Local\Walterlv.Foo\walterlv.exe" "%1"
                          
    

    前面的 .walvlvyi 是我自己定义的两种文件类型,我将它们的 (Default) 值设置成 Walterlv.Foo.1;而 Walterlv.Foo.1 就是前面说的应用程序标识符(ProgID)。后面的又新建了一个 Walterlv.Foo.1 的键,其 (Default) 值设置成了我们这个应用关联时使用的名称,也就是资源管理器中显示这个文件的时候使用的名称。

    在注册表中的 Walterlv.Foo.1

    只要我们完成了以上的步骤,我们就能在资源管理器中看到我们的文件关联(虽然双击打不开):

    在资源管理器中看到的文件关联

    关于注册表路径的说明

    HKEY_LOCAL_MACHINE 主键是此计算机上的所有用户共享的注册表键值,而 HKEY_CURRENT_USER 是当前用户使用的注册表键值。而我们在注册表的 HKEY_CLASSES_ROOT 中也可以看到跟 HKEY_LOCAL_MACHINE\Software\ClassesHKEY_CURRENT_USER\Software\Classes 中一样的文件关联项,是因为 HKEY_CLASSES_ROOTHKEY_LOCAL_MACHINE\Software\ClassesHKEY_CURRENT_USER\Software\Classes 合并之后的一个视图,其中用户键值会覆盖此计算机上的相同键值。

    也就是说,如果你试图修改文件关联,那么需要去 HKEY_LOCAL_MACHINE\Software\ClassesHKEY_CURRENT_USER\Software\Classes 中,但如果只是去查看文件关联的情况,则只需要去 HKEY_CLASSES_ROOT 中。

    写入计算机范围内的注册表项需要管理员权限,而写入用户范围内的注册表项不需要管理员权限;你可以酌情选用。

    为关联的程序添加谓词

    我们需要为关联的程序添加谓词才能够使用我们的程序打开这个文件。通常进行文件关联时最常用的谓词是 open,添加路径为 HKEY_CURRENT_USER\Software\Classes\Walterlv.Foo.1\shell\Open\Command。添加后,我们可以在文件资源管理器中通过双击打开这个文件。

    Walterlv.Foo.1
        (Default) = 吕毅的示例文件
        shell
            Open
                Command
                    (Default) = "C:\Users\lvyi\AppData\Local\Walterlv.Foo\walterlv.exe" -f "%1"
    

    其中路径后面的 "%1" 是文件资源管理器传入的参数,其实就是文件的完整路径。我们加上了引号是避免解析命令行的时候把包含空格的路径拆成了多个参数。

    还可以添加其他谓词,有一些是预定义的谓词,你也可以随便写其他的谓词。另外,还可以定义文件的图标。

    Walterlv.Foo.1
        (Default) = 吕毅的示例文件
        DefaultIcon = "C:\Users\lvyi\AppData\Local\Walterlv.Foo\lvyi-icon.ico"
        shell
            Open
                Command
                    (Default) = "C:\Users\lvyi\AppData\Local\Walterlv.Foo\walterlv.exe" open -f "%1"
            用逗比的方式打开
                Command
                    (Default) = "C:\Users\lvyi\AppData\Local\Walterlv.Foo\walterlv.exe" open -f "%1" --doubi
    

    反注册文件类型

    当你卸载你的程序的时候,需要反注册之前注册过的文件类型;而反注册的过程并不是把以上的过程完全反过来。

    微软推荐我们只删除 ProgID 的键,而不删除文件扩展名的键;因为其他的程序可能已经关联了我们的文件扩展名。就算我们使用的是私有的格式,也有可能是我们程序的未来版本会关联这个扩展名。

    总之,你需要做的,只是删除 ProgID 的键,文件扩展名的键不要去动它,Windows 自己会处理好 ProgID 删除之后文件关联的问题的。

    一个完整的文件关联示例

    HKEY_CLASSES_ROOT
        .walv
            (Default) = Walterlv.Foo.1
        .lvyi
            (Default) = Walterlv.Foo.1
            Content Type = text/xml
        Walterlv.Foo.1
            (Default) = Walterlv Foo
            AlwaysShowExt = 1
            DefaultIcon = "C:\Users\lvyi\AppData\Local\Walterlv.Foo\lvyi-icon.ico"
            FriendlyTypeName = 吕毅的示例文件
            shell
                Open
                    Command
                        (Default) = "C:\Users\lvyi\AppData\Local\Walterlv.Foo\walterlv.exe" open -f "%1"
                用逗比的方式打开
                    Command
                        (Default) = "C:\Users\lvyi\AppData\Local\Walterlv.Foo\walterlv.exe" open -f "%1" --doubi
                Edit
                    Command
                        (Default) = "C:\Users\lvyi\AppData\Local\Walterlv.Foo\walterlv.exe" edit -f "%1"
                print
                    command
                        (Default) = "C:\Users\lvyi\AppData\Local\Walterlv.Foo\walterlv.exe" print -f "%1"
                printto
                    command
                        (Default) = "C:\Users\lvyi\AppData\Local\Walterlv.Foo\walterlv.exe" print -f "%1" -t "%2"
    

    参考资料


    我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。

    如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

    知识共享许可协议

    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

    展开全文
  • 什么是可扩展应用程序呢?可扩展的意思是不需要修改原始代码,就可以扩展应用程序的功能。我们将应用程序做成插件或者模块。 这样可以在不修改原应用的基础上,对系统功能进行升级或者定制化。 本文将会向大家...

    简介

    什么是可扩展的应用程序呢?可扩展的意思是不需要修改原始代码,就可以扩展应用程序的功能。我们将应用程序做成插件或者模块。

    这样可以在不修改原应用的基础上,对系统功能进行升级或者定制化。

    本文将会向大家介绍如何通过java中的SPI机制实现这种可扩展的应用程序。

    SPI简介

    SPI的全称是Java Service Provider Interface。是java提供的一种服务发现的机制。

    通过遵循相应的规则编写应用程序之后,就可以使用ServiceLoader来加载相应的服务了。

    SPI的实现主要分为4个部分:

    1. Service Provider Interface: SPI是一个interface或者是抽象类,其中定义了我们需要扩展实现的功能。
    2. Service Providers:这是SPI的具体实现,提供了具体的实现功能
    3. SPI Configuration File:SPI的配置文件,通过在配置文件我们来配置相关的SPI发现信息。
    4. ServiceLoader: ServiceLoader是用来加载和发现服务的java类,并提供了很多有用的方法。

    SPI的普通java实现

    讲完SPI的定义,大家可能还是不清楚SPI到底是做什么的,又该怎么使用它。

    不用急,我们下面通过一个例子来说明。

    首先创建一个module:SPI-service,里面主要定义了一个ModuleService接口:

    public interface ModuleService {
    }
    

    然后再分别创建两个module,作为ModuleService的实现:

    public class ModuleServiceA implements ModuleService {
    
        public ModuleService getModuleService(){
            return new ModuleServiceA();
        }
    }
    
    public class ModuleServiceB implements ModuleService {
    
        public ModuleService getModuleService(){
            return new ModuleServiceB();
        }
    }
    

    接着分别在两个module中创建META-INF/services文件夹,并且在里面创建两个以 Service Provider Interface限定名为名字的文件,这里文件名是:com.flydean.base.service.ModuleService,文件里面存放的是SPI的具体实现类:

    com.flydean.base.servicea.ModuleServiceA
    com.flydean.base.serviceb.ModuleServiceB
    

    最后,我们需要创建一个使用SPI的类:

    public class ModuleController {
    
        public static void main(String[] args) {
            List<ModuleService> moduleServices = ServiceLoader
                    .load(ModuleService.class).stream()
                    .map(ServiceLoader.Provider::get)
                    .collect(toList());
            log.info("{}", moduleServices);
        }
    }
    

    为了更好的展示扩展应用的实际使用,我们分别创建4个模块。在实际应用中,只需要将这些jar包加入应用程序的classpath即可。

    运行看下输出结果:

    [com.flydean.base.servicea.ModuleServiceA@16f65612, 
    com.flydean.base.serviceb.ModuleServiceB@311d617d]
    

    从结果看到,我们获得了两个ModuleService。证明系统扩展成功。

    SPI在JPMS模块化系统下的实现

    上面我们讲的是基本的操作,考虑一下,如果是在JDK9之后,引入了JPMS模块化系统之后,应该怎么使用SPI呢?

    代码肯定是一样,我们需要修改的是SPI配置文件。

    如果在JPMS中,我们就不需要使用META-INF/services了,我们只需要创建相应的module-info.java文件即可。

    先看下SPI模块的module-info.java文件:

    module com.flydean.service {
        exports com.flydean.service;
    }
    

    这个模块我们对外暴露了service package,供其他模块调用。

    接下来是SPI的实现模块:

    module com.flydean.servicea {
        requires com.flydean.service;
        provides com.flydean.service.ModuleService with com.flydean.servicea.ModuleServiceA;
        exports com.flydean.servicea;
    }
    

    这里我们使用了provides命令,定义了两个类的关联关系。

    最后是调用的模块:

    module com.flydean.controller {
        uses com.flydean.service.ModuleService;
        requires com.flydean.service;
        requires lombok;
        requires slf4j.api;
    }
    

    这里我们使用uses关键词来引用ModuleService。

    总结

    本文介绍了SPI在模块化和非模块化系统中的应用。

    本文中的例子:learn-java-base-9-to-20

    本文已收录于 http://www.flydean.com/java-spi-for-extensible-app/

    最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

    欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!

    展开全文
  • 在“应用程序扩展”中,可以设定对特定扩展名的请求的处理方式,比如.aspx,.ascx,.asmx,.ashx这几个都设定为由“c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll”来处理。我们可以添加一个新
    
    
    1. 在“应用程序扩展”中,可以设定对特定扩展名的请求的处理方式,比如.aspx,.ascx,.asmx,.ashx这几个都设定为由“c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll”来处理。我们可以添加一个新的扩展名,如.happy,也将它交给“c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll”来处理。
    2. 在“应用程序扩展”中,添加新的映射时,扩展名一栏不能直接填“.*”,而只能填写形如“.aspx”之类具体的扩展名,这就是“通配符应用程序映射”的用处了。插入一个“通配符应用程序映射”后,比如,插入“c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll”,则所有扩展名的请求都会由“c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll”来处理。
    3. 当我们在“应用程序扩展”中添加了对应于.happy扩展名的映射,或者干脆直接添加了“通配符应用程序映射”后,在地址栏中直接输入形如“http://localhost/WebApplication1/haha.happy”的请求时,还是会报错,因为“c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll”默认也没有提供对.happy这种请求的处理,所以,我们还需要在web.config文件中添加用来处理.happy请求的handler,比如:                                            <httpHandlers>
                <add verb="*" path="*.happy" validate="false" type="WebApplication1.MyHandler, WebApplication1"/>
      </httpHandlers>当然,其中的WebApplication1.MyHandler这个类是需要我们自己写的,实现IHttpHandler接口即可。
    展开全文
  • chrome扩展程序安装Try to install an extension from outside the Chrome Web Store and Chrome will tell you that extensions “can only be added from the Chrome Web Store.” However, this message is ...
    chrome扩展程序安装

    chrome扩展程序安装

    image

    Try to install an extension from outside the Chrome Web Store and Chrome will tell you that extensions “can only be added from the Chrome Web Store.” However, this message is incorrect – you can still install extensions from elsewhere.

    尝试从Chrome网上应用店外部安装扩展程序,Chrome会告诉您“只能从Chrome网上应用店添加扩展程序”。 但是,此消息不正确-您仍然可以从其他位置安装扩展。

    This restriction is in place to prevent malicious websites from installing bad extensions, apps, and user scripts. You should only install extensions from legitimate websites you trust – the LastPass website, for example.

    设置此限制是为了防止恶意网站安装错误的扩展程序,应用程序和用户脚本。 您应该仅从您信任的合法网站(例如LastPass网站)安装扩展程序。

    手动安装扩展 (Manually Installing an Extension)

    To install an extension manually, click the wrench menu, point to Tools, and select Extensions to open the Extensions page.

    要手动安装扩展程序,请单击扳手菜单,指向工具,然后选择扩展程序以打开“扩展程序”页面。

    image

    If you’re seeing the message, Chrome has already downloaded the extension, app, or user script to your computer. You’ll find it in Chrome’s default download folder. Extensions and apps have the .crx file extension, while user scripts have the .user.js file extension.

    如果您看到此消息,则Chrome已将扩展程序,应用程序或用户脚本下载到您的计算机上。 您可以在Chrome的默认下载文件夹中找到它。 扩展名和应用程序具有.crx文件扩展名,而用户脚本具有.user.js文件扩展名。

    If it didn’t download to your computer, right-click the extension installation link on the page and use the Save As option to save it to your computer.

    如果未下载到计算机,请右键单击页面上的扩展安装链接,然后使用“另存为”选项将其保存到计算机。

    image

    Drag and drop the CRX (or user.js) file onto the Extensions page to install it.

    将CRX(或user.js)文件拖放到“扩展”页面上进行安装。

    image

    You’ll be prompted to confirm installation of the extension, just as if you had installed it from the Chrome Web Store.

    系统会提示您确认扩展程序的安装,就像从Chrome网上应用店中安装了该扩展程序一样。

    image

    一律允许来自Chrome网上应用店外部的扩展程序 (Always Allow Extensions From Outside the Chrome Web Store)

    If you frequently install extensions from outside the Web Store, you can allow extension installation from any website by adding a command-line flag.

    如果您经常从Web Store外部安装扩展程序,则可以通过添加命令行标志来允许从任何网站安装扩展程序。

    To add a command-line option, you’ll have to edit the Chrome shortcut’s properties. To access these on Windows 7, assuming you launch Chrome from your taskbar, right-click the Chrome icon on your taskbar, right-click Google Chrome in the menu that appears, and select Properties.

    要添加命令行选项,您必须编辑Chrome快捷方式的属性。 要在Windows 7上访问它们,假设您从任务栏启动Chrome,请右键单击任务栏上的Chrome图标,右键单击出现的菜单中的Google Chrome,然后选择属性。

    If you launch Chrome from your Start menu or your desktop, right-click the shortcut on your Start menu or desktop instead.

    如果您从“开始”菜单或桌面启动Chrome,请右键单击“开始”菜单或桌面上的快捷方式。

    image

    Select the Shortcut tab and add the following text to the end of the Target box:

    选择“快捷方式”选项卡,并将以下文本添加到“目标”框的末尾:

    –enable-easy-off-store-extension-install

    –启用容易的商店扩展安装

    image

    After changing this setting, close all Chrome windows and launch Chrome from the shortcut you modified. You may want to wait a few moments after closing all Chrome windows to ensure Chrome is no longer running in the background

    更改此设置后,关闭所有Chrome窗口,然后从您修改的快捷方式启动Chrome。 您可能要在关闭所有Chrome窗口后稍等片刻,以确保Chrome不再在后台运行

    Try to install an extension from a web page and you’ll see a familiar installation prompt – click Continue to the install the extension.

    尝试从网页安装扩展程序,您会看到一个熟悉的安装提示–单击继续以安装扩展程序。

    image

    更改Chrome政策 (Changing Chrome Policies)

    Chrome includes policy settings designed for system administrators. If you use Chrome in your business and want to allow extension installation from a specific website or two, you can modify Chrome’s policies. This setting is changed in the registry on Windows, and in Chrome’s preferences files on Mac and Linux.

    Chrome包含专为系统管理员设计的策略设置。 如果您在企业中使用Chrome,并且希望允许从一两个特定的网站安装扩展程序,则可以修改Chrome的政策。 在Windows上的注册表中以及Mac和Linux上的Chrome的首选项文件中更改了此设置。

    For example, on Windows, you could add the following registry entry to allow extension installation from lastpass.com:

    例如,在Windows上,您可以添加以下注册表项以允许从lastpass.com安装扩展名:

    Software\Policies\Google\Chrome\ExtensionInstallSources\1 = “https://lastpass.com/*”

    Software \ Policies \ Google \ Chrome \ ExtensionInstallSources \ 1 =“ https://lastpass.com/*”

    For more information about this Chrome policy setting and other Chrome policy settings, consult the Policy List page on the Chromium Project’s website.

    有关此Chrome策略设置和其他Chrome策略设置的详细信息,请参阅Chromium项目网站上的“策略列表”页面

    翻译自: https://www.howtogeek.com/120743/how-to-install-extensions-from-outside-the-chrome-web-store/

    chrome扩展程序安装

    展开全文
  • 扩展程序 crx 离线安装 离线下载 网上应用店 chrome google浏览器 插件 plugin
  • 1.下载扩展程序 国内插件市场:https://www.chromefor.com/ 里面有丰富的插件供你下载 2.将.crx结尾的插件文件修改为可用的压缩包 如果下载的文件是.crx结尾的文件则 将后缀改为rar或者zi...
  • 二、扩展程序介绍 1、Convertio 下载地址:Chrome应用商场直达链接 在线将文件从一种格式转换为另一种格式. 支持超过 2500 种不同的转换。 在线将文件从一种格式转换为另一种格式。 支持超过 2500 种不同的转换: ✓...
  • python文件后缀总结:(1).py:这通常是您编写的输入源代码。(2).py3:Python3脚本(Python3脚本通常以.py而不是.py3结尾,很少使用)。(3).pyc:这是编译好的字节码。如果导入一个模块,python将生成一个*.pyc...
  • 1.打开扩展介绍页面(在 三道杠图标&gt;工具&gt;扩展程序 里相应扩展的"访问网站"处也可以获得) 如:"... ...2....
  • App Extension应用扩展

    千次阅读 2018-05-31 12:06:26
    应用程序扩展不是一个应用,相反,它是主体应用程序(containing app)中一个单独的包,并能生成单独的二进制文件。与主体应用程序不同,应用扩展实现的是一个特定的、狭义范围内的任务,并且要严格遵循扩展点...
  • 利用插件扩展 Qt 应用程序

    千次阅读 热门讨论 2017-09-01 16:01:14
    不仅 Qt 本身可以通过插件进行扩展,而且 Qt 应用程序也可以通过插件来扩展,这需要应用程序使用 `QPluginLoader` 检测和加载插件。在这种情况下,插件可能提供任意功能,不限于数据库驱动程序、图像格式、文本编...
  • Linux关联文件扩展名和打开程序

    千次阅读 2017-12-06 20:31:35
    Linux关联文件扩展名和打开程序 手动为Linux关联文件扩展名与打开程序。 当Linux不认识某种扩展名的时候,需要为此扩展名创建一个MIME类型。Linux是依据MIME类型而不是扩展名来决定打开程序的。 再将此种MIME类型...
  • 编译Java源程序文件后将产生相应的可执行字节码文件,这些文件扩展名为( )。答:class恒温下,对同一反应来说,下列叙述正确的是答:转化率和平衡常数都可以表示化学反应的进行程度老瞎子在一个名为野羊岰的小山村...
  • Chrome最新版已经禁止安装本地插件,也就是说,禁止离线安装扩展crx。 如图: 使用破解工具——Chrome插件伴侣,可保证无损,轻松解决,只需3秒钟。 工具下载地址1:点击打开链接 工具下载地址2:点击启动下载...
  • 1、先将下载下来的crx文件的后缀名改为.zip ...3、打开Chrome浏览器的扩展程序,更多工具 -> 扩展程序,打开开发者模式,然后点击“加载已解压的扩展程序”,如下图 4、定位到之前解压的文件夹即可 ...
  • Python程序文件扩展名主要有________和________两种,其中后者常用于GUI程序答:py;pyw;中国大学MOOC: 下列关于我国增值税税率的表述中,不正确的是( )。答:煤炭适用9%的税率环比是指与历史同时期进行比较得到的...
  • 解决Chrome无法从该网站添加应用扩展程序或脚本

    万次阅读 多人点赞 2019-05-27 15:29:47
    1、先将后缀名为.crx的扩展文件的后缀名改为.rar。 2、然后将这个压缩文件解压到新文件夹中。 3、打开Chrome浏览器的扩展程序,更多工具 -> 扩展程序 4、打开开发者模式,然后点击“加载已解压的扩展程序”。 ...
  • 在我们自己编写的应用中,经常会用自定义类型的文件来保存与应用相关的数据,比如.osf文件就是应用程序的项目文件。如果没有向Windows注册表注册该文件类型,那么.osf文件的图标将是windows的文件默认图标,并且你...
  • 创建了一个类HelloWorld 代码部分 下面是错误提示 这是因为写完代码后没有保存(ctrl+c),并且eclipse启动前保存设置...配置好以后,eclipse在编译运行项目之前自动保存修改的文件,就可以不用一直Ctrl+C了
  • Qt插件化(Plugins)开发扩展应用程序

    千次阅读 热门讨论 2019-09-01 20:55:05
    Qt扩展应用程序 要想使用插件来扩展应用程序,那么首先在主程序中的步骤如下: 定义一组用于与插件通信的接口(只有纯虚函数的类) 使用 Q_DECLARE_INTERFACE() 宏来告诉 Qt 元对象系统有关接口的情况 在应用程序中...
  • 急急急!!!!!!!!!!...我自己写了个多屏幕显示的例子,通过movewindow,将...但是有时候点击任务栏上应用程序的图标时候(在扩展平上显示的),在扩张屏幕上显示的应用程序却跑到主屏幕上来。希望大神们可以帮我下,谢谢!!!!!!
  • 前不久从Palemoon定制的FF8便携版换到360定制的chrome16使用,折腾了一翻感觉挺不错,...在网上一搜索,发现好多人遇到此问题,有高手给出了替换大法:1、获得扩展程序的ID,比如说【Xmarks Bookmark Sync】扩展程...
  • 1. 电脑连WIFI时,总是显示找不到应用程序,这种情况是怎么回事1. 确定FN快捷键已经打开,确定FN快捷键驱动,电源管理软件和无线网卡驱动正常安装;2. 确认是否开启了硬件开关;3. 确定在更改适配器设置中已经启用无线...
  • Chrome添加扩展程序

    万次阅读 2019-05-12 16:05:16
    Chrome之所以强就强在它的扩展程序,那么如何添加Chrome扩展程序呢? 如果进行翻墙的话,那样最好,可以...但是在进行安装的过程中,有的电脑会出现无法安装的情况,提示信息【无法从该网站添加应用扩展程序和应...
  • Chrome扩展程序(一)——HelloWorld

    千次阅读 2018-10-31 22:13:14
    功能强大,又开发简单的Chrome扩展程序
  • 在谷歌浏览器安装插件时,经常会遇到如下图的问题,“无法从该网站添加应用扩展程序和用户脚本”的问题,导致安装失败。 解决过程: 1、要先看一下开发者模式是否打开。打开扩展管理页面。浏览器输入地址“ ...
  • xwiki功能-应用程序&扩展

    千次阅读 多人点赞 2018-05-21 10:14:14
    应用程序 正如你从编程功能学到的,xwiki能把代码嵌入到页面。你可以将多个页面合在一起,形成一个应用程序。换言之,一个应用程序只是一组独立的页面。您可以将这些页面导出XAR格式的文件,然后可以将其导入到其他...
  • 在xp的iis5中添加.php的扩展名映射这一步时,当他在可执行文件扩展名那都填写上正确的参数后,确定按钮一直都是灰色的,无法确定。原因是扩展名那里填写“.php”,而不是”php”,另外也有可能是文件路径过长,超过...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 955,993
精华内容 382,397
关键字:

应用程序扩展文件