//注册表操作 - 添加系统搜索路径 import win.ui; import win.dlg.message; /*DSG{{*/ var winform = win.form(text="添加到系统搜索路径";right=640;bottom=225;max=false) winform.add( btnAdd={cls="button";text="添加到系统搜索路径";left=25;top=114;right=474;bottom=181;color=14120960;font=LOGFONT(h=-14);note="添加后可按 Win + S 输入名字或在资源管理器地址栏直接输入名字打开";z=1}; cmbPath={cls="combobox";left=60;top=49;right=581;bottom=73;edge=1;items={};mode="dropdown";z=2}; static={cls="static";text="可输入 EXE 名搜索运行过的程序路径:";left=60;top=26;right=485;bottom=45;color=6974058;transparent=1;z=3} ) /*}}*/ import win.debounce; import process.cache; winform.cmbPath.onEditChange = win.debounce(function(){ var filename = winform.cmbPath.text; filename = string.trim(filename,` "`); if(io.exist(filename)) return; var lst = process.cache.list(false); var files = table.filter(lst,function(v,index){ var f = io.splitpath(v).file; return(f &&..string.startsWith(f,filename,true)); }) winform.cmbPath.autoComplete(files:{},1) //更新下拉列表 },300) import sys.reg; winform.btnAdd.oncommand = function(id,event){ if(!io.exist(winform.cmbPath.text)){ return winform.cmbPath.editBox.showErrorTip("请指定有效程序路径"); } /* 不用复制文件到系统目录,不用改环境变量,不需要管理权限。 简单的改一下注册表,就可实现按 Win + S 输入名字或在资源管理器地址栏直接输入名字打开程序 */ var tPath = io.splitpath(winform.cmbPath.text); sys.reg.setValue("",winform.cmbPath.text,`SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\` + tPath.file); winform.msgGreat("已添加到系统搜索路径"); } winform.cmbPath.editBox.modifyStyle(,2/*_ES_RIGHT*/);//右对齐 //拖动文件到窗口 winform.onDropFiles = function(files){ winform.cmbPath.text = files[1]; } winform.btnAdd.setFocus(); winform.show(); win.loopMessage();