- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我们的想法是制作一种仅在.txt
文件上工作的加密软件,并在其上应用一些加密功能并生成一个新文件。为了避免用户不得不拖放文件的麻烦,我决定在此处选择与我的防病毒类似的选项。
我想学习如何针对各种OS制作这些文件,无论其体系结构是什么:)
main()
方法,然后将其余的处理留给我:)
最佳答案
可能不完全是您想要的答案,但这似乎是一件相当复杂的事情。无论如何,我将分享我对它的了解,并且希望它将证明足以(至少)使您入门。
不幸的是,使用Java创建上下文菜单的最简单方法是编辑注册表。我将尝试总结总体要求的里程碑以及实现我们目标的步骤。
<更新>
请参阅文章末尾的示例代码链接和有效的演示。
需要做什么
.txt
,.doc
,.docx
)的上下文菜单中添加一个附加条目(对于我们的java-app)。...\Classes\.txt
,我们可能需要编辑...\Classes\txtfile
类关联的.txt
。 javaw.exe
的目录在PATH变量中)。 main
方法期望一个String数组,该数组包含一个值,该值对应于我们需要处理的文件的路径(嗯,这很容易-只是显而易见) 。 .TXT
文件-可以对每个文件类别应用相同的步骤。 HKCR\
(例如HKCR\txtfile
)下编辑注册表项,这需要管理权限。HKCU\Software\Classes
(例如HKCU\Software\Classes\txtfile
)下编辑 key ,这不需要而不是需要管理权限。REG ADD/DELETE
命令中,将HKCU\Software\Classes\...
替换为HKCR\...
(在REG QUERY
命令中将替换为,而不是)。 REG Operation [Parameter List]
形式的命令来实现编辑注册表,并执行涉及ADD
,DELETE
和QUERY
的操作(稍后会详细介绍)。String[] cmd = {"REG", "QUERY", "HKCR\\.txt", "/ve"};
new ProcessBuilder(cmd).start();
// Executes: REG QUERY HKCR\.txt /ve
getInputStream()
方法来完成。但这属于“实现细节”的范围....txt
文件类,除非与另一个文件类关联。我们可以使用以下命令对此进行测试:// This checks the "Default" value of key 'HKCR\.txt'
REG QUERY HKCR\.txt /ve
// Possible output:
(Default) REG_SZ txtfile
txtfile
,因此我们需要编辑节点HKCU\Software\Classes\txtfile
。 javaw.exe
的路径)不在此答案的范围内,但是应该有很多方法可以做到(尽管我不知道我会100%信任)。System.getenv("java.home");
)。 HKLM\Software\JavaSoft\Java Runtime Environment\<CurrentVersion>\JavaHome
的值。 C:\Program Files[ (x86)]\Java\
)中查找。 javaw.exe
(和其他实用程序)的副本,因此也值得检查一下。
HKCU\Software\Classes\txtfile
-node应该如下所示:
HKCU
|_____Software
|_____Classes
|_____txtfile
|_____Shell
|_____MyCoolContextMenu: [Default] -> [Display name for my menu-entry]
|_____Command: [Default] -> [<MY_COMMAND>]*
*: in this context, a '%1' denotes the file that was right-clicked.
"C:\Path\To\javaw.exe" -jar "C:\Path\To\YourApp.jar" "%1"
请注意,
javaw.exe
通常位于
...\jre\bin\
中(但并不总是
仅存在于中-最近我也在
C:\Windows\System32\
中找到了它)。
REG ADD HKCU\Software\Classes\txtfile\Shell\MyCoolContextMenu /ve /t REG_SZ /d "Click for pure coolness" /f
REG ADD HKCU\Software\Classes\txtfile\Shell\MyCoolContextMenu\Command /ve /t REG_SZ /d "\"C:\Path\To\javaw.exe\" -jar \"C:\Path\To\Demo.jar\" \"%%1\" /f"
// Short explanation:
REG ADD <Path\To\Key> /ve /t REG_SZ /d "<MY_COMMAND>" /f
\_____/ \___________/ \_/ \_______/ \_______________/ \_/
__________|_______ | | |___ | |
|Edit the Registry | | _______|________ | _______|_______ |
|adding a key/value| | |Create a no-name| | |Set the data | |
-------------------- | |(default) value | | |for this value.| |
| ------------------ | |Here: a command| |
_______________|______________ | |to be executed.| |
|Edit this key | | ----------------- |
|(creates the key plus | ____|_________ _________|_____
| any missing parent key-nodes)| |of type REG_SZ| |No confirmation|
-------------------------------- |(string) | -----------------
----------------
txtfile
)是否已经有一个名为“MyCoolContextMenu”的上下文菜单条目,或者我们可能会覆盖一个现有条目(这不会使我们的用户感到高兴),这可能是一个好主意。 。 /d
之后和/f
之前的部分)括在""
中,因此请记住,可以将字符串内的"
转义为\"
。%1
进行转义,以便将其按原样存储在注册表值中(将其转义为:%%1
)。 REG DELETE HKCU\Software\Classes\txtfile\Shell\MyCoolContextMenu /f
/f
可能会提示“用户”(在这种情况下为您的应用)进行确认,在这种情况下,您需要使用Process的 getOutputStream()
方法来输出"is"以进行操作要完成的。/f
)避免不必要的交互。 txtfile
类别中为我们的文件注册的上下文菜单项(请注意,它不限于.TXT文件,而是适用于与系统有关的所有文件“txtfiles”)。 main()
方法将传递一个String数组,其中包含右键单击.TXT文件的路径。 关于java - 如何为我的软件制作上下文菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16771006/
使用 Foundation 6.3.1,我希望在桌面上显示 Canvas 外菜单,在移动设备上显示 Accordion 菜单。例如 This is the desktop view with a co
function HideandUNhideObj(ThisObj) { var nav = document.getElementById(ThisObj).style if (nav.displ
我正在处理一个页面,该页面有一个显示“更新”的链接。当用户单击此链接时,我希望表单使用幻灯片效果并显示在链接下方。提交表单后,它会更新数据库,并且菜单会显示。 我知道这可以用 JavaScript 来
这是我的运行时创建菜单的关键部分: GtkWidget *menu, *menu_item; menu = gtk_menu_new(); menu_item = gtk_image_menu_ite
您好,我想实现一个像这样的 donut 菜单 http://dribbble.com/shots/610433-Wheel-Nav我知道有一种在 css3 中制作 donut 的简单方法。 .doug
我的应用程序中有一个菜单,当菜单打开时我会触发触觉反馈(来自 onTagGesture Action )。 然而 有时当我点击菜单打开触发器时,菜单实际上不会打开,但我仍然收到触觉反馈。我只在菜单实际
也许这是一个简单的解决方案,但我坚持了下来。 这里有我的代码 http://jsbin.com/ejomuv纯CSS菜单 我想要做的是在悬停时在下拉按钮底部设置 0px 边框半径,但仅在下拉菜单上设置
下拉列表、菜单和组合框都是非常常见的用户界面元素。用户习惯于在 native 应用程序和 Web 应用程序中看到这些元素,但它们存在一些问题。 您必须瞄准鼠标。当您将鼠标移开时,有些菜单会折叠,而有些
我有 codeigniter 背景。现在,我正在学习 Laravel。所以,我处于这种情况(示例),我正在尝试创建一个具有多个用户的 web 应用程序。用户类型 A ,他们可以访问菜单 a、菜单 b
我正在学习 JQuery 的基础知识,我的老师显示的 menu() 看起来根本不像我的。 这是我创建的菜单的 LAF: 代码: Hello Hi Welcome World
- SELECT - 上面的显示:none不起作用。我也尝试过“隐藏”,但没有成功。 如何隐藏此选择菜单? 最佳答案 换行与 或并将 id 添加到标签。 - SELECT
我使用 Jquery 创建菜单,如下所示: homeinfo2info3 Jquery 代码如下: $(document).ready(function(){ $(".prof_info1").unb
我是 C 新手,我需要为项目构建一个带有循环的菜单。我有两个问题。 1) 我想在 else 中添加一个字符,如果在主菜单中按“2”后询问某事,问题将是“你要去参加事件吗?”用户可以输入聊天“Y”或“N
大家好,过去几个小时我一直在为类(class)编写这个程序,但似乎无法解决最后两个问题。它基本上是一个略微修改的 CashRegister 类,通过菜单提供基本功能。我遇到的问题是: 1) 用户第一次
List studentInfo = new LinkedList(); int choice; boolean flag = true; Student student =
我正在使用 bootsrap 4 alpha 6 和 midnight.js 来更改导航菜单切换器的颜色。我想在它旁边插入一个文本(菜单)。捕获中的示例。对于文本切换器,我使用 fontawesome
我正在尝试使用 CSS 菜单解决菜单在 IE 6 中无法正确显示的问题 alt text http://content.screencast.com/users/Dokmanc/folders/Jin
我无法让这段代码工作 - 我想要的是当我将鼠标悬停在圆圈上时,菜单会出现,然后如果我将鼠标从圆圈或菜单上移开,它就会消失。我尝试做的任何事情都是非常错误的,例如 onmouseover 在圆圈上然后在
我有一个典型的 CSS 顶部导航,当您滑过不同的父菜单项时,它会显示一个子菜单。如何更改代码以保持显示事件子菜单。因此,如果您在该父菜单项或其子项之一的页面上,它将保持显示该子菜单,除非您将鼠标悬停在
我很亲近。我怎样才能在我的 上有 MENU 1。 fiddle显示为默认菜单选项,然后在 MENU 2 悬停时更改? 提前致谢。继续编码! :) 最佳答案 要根据您的响应完全远离 jquery 进行编
我是一名优秀的程序员,十分优秀!