首页
壁纸
直播
留言板
更多
视频
统计
友情链接
实用工具
Search
1
给孙小姐的一封情书
98 阅读
2
armUbuntu系统构建
47 阅读
3
armUbuntu | uboot常用指令
47 阅读
4
Linux | Linux通过stty命令操作串口设备(linux串口操作命令)
47 阅读
5
编译 openwrt 及初始配置-及部分排错
45 阅读
取次花丛懒回顾
默认分类
C#
MySQL
LabVIEW
Java
Android
PHP
Python
handsome
相册
百度地图
嵌入式
嵌入式Ubuntu
linux
Unity
Golang
Rust
Search
标签搜索
C#
handsome
Git
动态壁纸
开源
Unity3d
Unity
csharp
魔傲手记
累计撰写
115
篇文章
累计收到
18
条评论
首页
栏目
取次花丛懒回顾
默认分类
C#
MySQL
LabVIEW
Java
Android
PHP
Python
handsome
相册
百度地图
嵌入式
嵌入式Ubuntu
linux
Unity
Golang
Rust
页面
壁纸
直播
留言板
视频
统计
友情链接
实用工具
搜索到
92
篇与
的结果
2024-07-05
RAMOS:把 WIN11 安装到内存里面,性能无敌!
众所周知影响电脑性能的瓶颈就是机械硬盘,所以现在的电脑基本上都是采用固态硬盘当系统盘,机械硬盘当资料数据盘。如果你的老电脑还在用机械硬盘,之前锋哥也分享过 PrimoCache 软件,利用内存作为硬盘的缓存,提高性能。或者购买英特尔傲腾内存来作为缓存加速。但是追求极限性能的用户,会选择把系统安装到内存里面,你没听错,是安装到内存里面。内存甩固态硬盘几条街的速度,系统安装进去后,性能起飞。所以今天就要来给大家介绍 RAMOS 制作内存系统的工具。RAMOS介绍根据介绍在 2015年2月,无忧启动论坛的 zhchsgdtc 大神发布了《Primo单镜像RamOS详细图文教程》制作教程,从此拉开了广大 RAMOS 爱好者研究制作基于 Primo 驱动 RAMOS 的热潮。原理就是利用 Primo Ramdisk 软件,把内存虚拟成硬盘出来,再把系统复制进去虚拟内存盘,然后通过引导来启动系统,不过整个折腾流程太复杂,所以就有了 RAMOS 一键安装内存系统的脚本。由于锋哥目前手头只有一台电脑,所以不方便用来测试,下面的内容和截图部分来源无忧论坛和网友。1.内存要求:体验内存系统,首先你的内存当然是越大越好,物理内存要比 C 盘容量大 3G 以上。如果你的内存实在不够,也可以考虑用精简版的系统,例如之前给大家分享过的只有 200M 大小的 Windows 7。详情看这篇:只有 200M 的 Win7 系统,老爷机狂喜!文章。2.系统要求:必须 Windows 7 以上,包括 32 / 64 版本。3.安装系统:把系统全新安装后,安装硬件驱动,然后建议关闭虚拟内存和休眠功能,以及一些垃圾文件之类的,节省点容量出来。4.下载 Primo Ramdisk:安装好后,然后以管理的身份运行 "RAMOS一键批处理多合一.CMD" 脚本开始制作内存系统。注意1:需要使用 Primo Ramdisk 5.6.0 的版本才能兼容一键处理脚本。注意2:主板 Bios 里面关闭安全启动才能引导。注意3:不要把这个脚本放到 C 盘里运行。(截图来源:存储极客)5.模式选择:推荐用模式 2 "R驱+P驱SCSI模式",想要节省点容量空间可以用模式1,但是需要等待 Compact 压缩解压时间。如果引导失败尝试用模式 0,也就是 BIOS + MBR 引导方式。6.保存 VDF 文件,选择 D 盘或者其它盘符,并自定义镜像文件目录,接着批处理会全自动制作好 RAMOS,自动重启即可。7.启动引导可以看到 RAMOS 启动项就表示成功了,选择后进入内存系统。8.当然是跑个分,可以下载 CrystalDiskMark 硬盘性能测试软件,根据网友提供的测试,可以看到跑分直接起飞,4K 的读写速度也是很爽。(截图来源:存储极客)内存系统缺点1.需要足够大的内存。2.数据无法保存,但是这可能对一些场景来说,也许是优点,不用担心中病毒流氓软件,每次开机都恢复到原来的状态。如果实在是想保存,可以通过热备份脚本,每次关机前来备份,就是麻烦点。3.开机启动速度略慢。总结想要体验极致的速度那么可以用 RAMOS 来把系统装入内存,工作机子不建议了,主要保存资料过于麻烦,如果突然断电会导致保存的资料全部丢失。当然如果换个思路和需求,其实这样可以作为影子系统来使用,例如家里人的长辈用电脑容易下载到一些全家桶流氓软件啥的,而使用这种方式每次开机都恢复到原来的状态,并且还能体验到极速的性能,同时也不会破坏原来的 C 盘系统。下载RAMOS一键批处理多合一:https://liuzhaoyzz.lanzoux.com/b00n7bcqfPrimo Ramdisk (付费软件):https://www.romexsoftware.com/zh-cn/primo-ramdisk/download.html相关教程评测研究论坛:http://bbs.wuyou.net/视频评测:把Win11装在128G的内存条里https://www.bilibili.com/video/BV17R4y1s7Ui致RAMOS新手:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=410562
2024年07月05日
8 阅读
0 评论
0 点赞
2024-07-04
Golang | Windows下增删改服务(调用 nssm 实现)
import ( "fmt" "log" "os/exec" ) /* 默认 是 自启动 开机自启 serviceName := "MyService" executablePath := "C:\\path\\to\\my-service.exe" if err := installService(serviceName, executablePath); err != nil { log.Fatalf("Error installing service: %v", err) } */ func InstallService(nssmPath, serviceName, executablePath string) error { cmd := exec.Command(nssmPath, "install", serviceName, executablePath) err := cmd.Run() if err != nil { return fmt.Errorf("failed to install service: %w", err) } log.Printf("Service '%s' installed successfully.\n", serviceName) return nil } /* serviceName := "MyService" parameters := "--config=config.ini --log=service.log" if err := setAppParameters(serviceName, parameters); err != nil { log.Fatalf("Failed to set AppParameters: %v", err) } */ func SetAppParameters(nssmPath, serviceName, parameters string) error { cmd := exec.Command(nssmPath, "set", serviceName, "AppParameters", parameters) err := cmd.Run() if err != nil { return err } log.Printf("AppParameters for service '%s' set to '%s'.\n", serviceName, parameters) return nil } // 设置服务的工作目录 /* if err := setAppDirectory(serviceName, directory); err != nil { log.Fatalf("Failed to set AppDirectory: %v", err) } */ func SetAppDirectory(nssmPath, serviceName, directory string) error { cmd := exec.Command(nssmPath, "set", serviceName, "AppDirectory", directory) err := cmd.Run() if err != nil { return err } log.Printf("AppDirectory for service '%s' set to '%s'.\n", serviceName, directory) return nil } // 设置服务的标准输出文件 /* if err := setAppStdout(serviceName, stdoutFile); err != nil { log.Fatalf("Failed to set AppStdout: %v", err) } */ func SetAppStdout(nssmPath, serviceName, filePath string) error { cmd := exec.Command(nssmPath, "set", serviceName, "AppStdout", filePath) err := cmd.Run() if err != nil { return err } log.Printf("AppStdout for service '%s' set to '%s'.\n", serviceName, filePath) return nil } // 设置服务的标准错误输出文件 /* if err := setAppStderr(serviceName, stderrFile); err != nil { log.Fatalf("Failed to set AppStderr: %v", err) } */ func SetAppStderr(nssmPath, serviceName, filePath string) error { cmd := exec.Command(nssmPath, "set", serviceName, "AppStderr", filePath) err := cmd.Run() if err != nil { return err } log.Printf("AppStderr for service '%s' set to '%s'.\n", serviceName, filePath) return nil } /* // 在main函数中调用 if err := startService(serviceName); err != nil { log.Fatalf("Error starting service: %v", err) } */ func StartService(serviceName string) error { cmd := exec.Command("nssm", "start", serviceName) err := cmd.Run() if err != nil { return fmt.Errorf("failed to start service: %w", err) } log.Printf("Service '%s' started successfully.\n", serviceName) return nil } /* * // 在main函数中调用 if err := stopService(serviceName); err != nil { log.Fatalf("Error stopping service: %v", err) } */ func StopService(serviceName string) error { cmd := exec.Command("nssm", "stop", serviceName) err := cmd.Run() if err != nil { return fmt.Errorf("failed to stop service: %w", err) } log.Printf("Service '%s' stopped successfully.\n", serviceName) return nil } /* * // 在main函数中调用 if err := uninstallService(serviceName); err != nil { log.Fatalf("Error removing service: %v", err) } */ func UninstallService(serviceName string) error { cmd := exec.Command("nssm", "remove", serviceName, "confirm") err := cmd.Run() if err != nil { return fmt.Errorf("failed to remove service: %w", err) } log.Printf("Service '%s' removed successfully.\n", serviceName) return nil }
2024年07月04日
10 阅读
0 评论
0 点赞
2024-07-04
Golang | 增删查改文件(文件夹),判断目录是否存在,解压 zip 文件
判断目录是否存在 dirPath := "C:\\WINDOWS\\system32\\mlb" if err := ensureDirExists(dirPath); err != nil { log.Fatalf("Error ensuring directory exists: %v", err) } log.Println("Directory ensured.") func EnsureDirExists(path string) error { // 检查目录是否存在 if _, err := os.Stat(path); os.IsNotExist(err) { // 如果目录不存在,尝试创建它 if err := os.MkdirAll(path, 0755); err != nil { return err } } return nil }删除指定文件 err := deleteFile("/path/to/your/file.txt") if err != nil { log.Fatal(err) } func DeleteFile(fileName string) error { err := os.Remove(fileName) if err != nil { return err } fmt.Printf("File %s has been successfully deleted.\n", fileName) return nil }递归删除文件夹及其文件夹内的东西 err := DeleteDirectory("/path/to/your/directory") if err != nil { log.Fatal(err) } func DeleteDirectory(dirName string) error { err := os.RemoveAll(dirName) if err != nil { return err } fmt.Printf("Directory %s and its contents have been successfully deleted.\n", dirName) return nil }解压 zip 文件 dirPath := "C:\\WINDOWS\\system32\\mlb" if err := ensureDirExists(dirPath); err != nil { log.Fatalf("Error ensuring directory exists: %v", err) } log.Println("Directory ensured.") func EnsureDirExists(path string) error { // 检查目录是否存在 if _, err := os.Stat(path); os.IsNotExist(err) { // 如果目录不存在,尝试创建它 if err := os.MkdirAll(path, 0755); err != nil { return err } } return nil }解压 zip 文件 err := unzipFile("/path/to/your/zipfile.zip", "/path/to/target/directory") if err != nil { log.Fatal(err) } func UnzipFile(zipFilePath string, targetDir string) error { // 打开 zip 文件 r, err := zip.OpenReader(zipFilePath) if err != nil { return err } defer r.Close() // 遍历 zip 文件中的每一个文件或目录 for _, f := range r.File { // 提取文件信息 fPath := filepath.Join(targetDir, f.Name) // 检查文件是否已经存在,如果存在则跳过 if _, err1 := os.Stat(fPath); !os.IsNotExist(err1) { log.Printf("File %s already exists, skipping...", f.Name) continue } if f.FileInfo().IsDir() { // 如果是目录,则创建目录 os.MkdirAll(fPath, os.ModePerm) } else { // 如果是文件,则创建并写入文件 outFile, err := os.OpenFile(fPath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode()) if err != nil { return err } rc, err := f.Open() if err != nil { return err } _, err = io.Copy(outFile, rc) if err != nil { return err } outFile.Close() rc.Close() } } return nil }
2024年07月04日
8 阅读
0 评论
0 点赞
2024-07-04
Golang | 通过网络下载文件
代码import ( "fmt" "io" "net/http" "os" "path/filepath" ) func DownloadFile(url, targetDir, customFileName string) error { resp, err := http.Get(url) if err != nil { return err } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { return fmt.Errorf("GET request failed with status: %d", resp.StatusCode) } // 确保目标目录存在 err = os.MkdirAll(targetDir, os.ModePerm) if err != nil { return err } // 使用自定义的文件名 // filePath := filepath.Join(targetDir, filepath.Base(url)) filePath := filepath.Join(targetDir, customFileName) // 创建文件 file, err := os.Create(filePath) if err != nil { return err } defer file.Close() // 将远程文件内容写入本地文件 _, err = io.Copy(file, resp.Body) if err != nil { return err } return nil }用法Windows 下 实测 不需要目录存在,会自动创建 err := downloadFile("https://example.com/file.zip", "/path/to/download/directory", "myCustomFileName.zip") if err != nil { log.Fatal(err) }
2024年07月04日
5 阅读
0 评论
0 点赞
2024-06-26
Android | 等待控件渲染完毕执行操作
以 ImageView 控件为例xml: <ImageView android:id="@+id/iv_canvas" android:background="@color/black" android:layout_width="match_parent" android:layout_height="match_parent"/>java: ImageView iv_canvas; iv_canvas = findViewById(R.id.iv_canvas); iv_canvas.post(()->{ // 获取当前画布宽高 double width = iv_canvas.getWidth(); double height = iv_canvas.getHeight(); showMsg("当前画布X" + width); showMsg("当前画布Y" + height); });
2024年06月26日
7 阅读
0 评论
0 点赞
1
2
3
4
...
19