V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  henix  ›  全部回复第 4 页 / 共 4 页
回复总数  76
1  2  3  4  
322 天前
回复了 feirisu 创建的主题 程序员 Windows 下开发小应用 GUI,真的很难选方案
传统 GUI 库除了 QT 还有很多啊,GTK+、wxWidgets 之类的,还有 https://www.fltk.org/
如果不限语言的话,还有 https://www.tecgraf.puc-rio.br/iup/ 和 Tcl/Tk
324 天前
回复了 seedhk 创建的主题 C++ C++Windows 程序开发该从哪里开始
先学一些 C / C++ 基础,如果你要逆向的程序用了 C++ 的话那也得会,而且逆向可能需要会一点汇编。

你需要学一些 Windows 系统级 API 的使用,也就是 Win32 API 。

不妨以开发一个简单的 Windows 窗口应用为目标,但是一些操作系统的基本概念也是需要了解的,比如进程线程、文件 IO 、网络 IO 等等。

推荐书籍:

* Windows 程序设计 https://book.douban.com/subject/5273955/ 注意不是讲 Win8 的那个新版,是这个旧版,了解 Win32 API 和窗口
* Windows 系统编程 https://book.douban.com/subject/5323432/ 了解其他 Win32 API
* Windows 环境下 32 位汇编语言程序设计 https://book.douban.com/subject/24846626/ 了解窗口相关 API 和消息循环,学完之后你可以创建自己的窗口应用程序了
* 程序员的自我修养 链接、装载与库 https://book.douban.com/subject/3652388/ 进阶内容,了解 DLL 动态运行库的原理

由于以上书籍较老,里面的代码可能有些不能用了,自己写代码的时候可以参考最新的 MSDN ,例如: https://learn.microsoft.com/zh-cn/windows/win32/api/winuser/nf-winuser-createwindowa 看一下后面的样例
336 天前
回复了 cxytz01 创建的主题 程序员 老码农请教 js/ts 入门。
js 本身比较简单,如果你已经会其他语言,推荐这本蝴蝶书: https://book.douban.com/subject/3590768/
我也安卓,64 GB ,2017 年买的,用到现在也没啥问题,还可以继续苟……不过我不玩手游

常规方案:对一些占用空间比较大的应用,清除缓存 + 清除存储空间(相当于退出登录,需要重新登录)

但是以上方案也可能有没有清理到的部分

需要技术力的方案:adb shell 进去,使用 du -hcs 看看哪个目录占空间最多,然后一层一层往下找,看看有什么卸载残留之类的,你不用的应用但是占了很多空间

这里可以盲猜微信占用了很大的空间,优化微信:

1. 微信设置 -> 通用 -> 存储空间,清理一下缓存,聊天记录中可以删除 3 个月之前的不重要的聊天记录
2. 如果“其他数据”占空间很大,可以用电脑微信的“迁移与备份”,先把聊天记录备份到电脑上,再把手机上的微信卸载重装,再把聊天记录恢复回去

需要中等技术力的方案:电脑上下载一个安卓模拟器( mumu 、夜神、BlueStack 之类的),然后把不需要随时随地使用的应用安装到模拟器中,并从手机上卸载

我觉得我们应该对手机上安装的应用划分优先级:哪些应用需要我们出门之后随时随地使用的?可能是地图、支付、聊天之类。而很多应用只是需要的时候才拿出来用一下,那只需要在电脑上能访问就行了。理想情况应该是网页访问,但是架不住现在什么东西都要求你装一个 app ,只能模拟器伺候。
343 天前
回复了 ilee1989 创建的主题 JavaScript 求助:前端 JS 加密,防止被爬虫爬
反爬需要前后端配合,确实如同楼上说的。可以考虑:1. 限制 ip 每秒请求数 2. 要求用户必须注册,限制用户请求数 3. 加验证码或直接用极验之类的方案 4. 加工作量证明( proof of work ),要求每次请求必须完成一些复杂计算
348 天前
回复了 yaott2020 创建的主题 Linux 你倾向于哪个 Linux 桌面发行版?
Archlinux + awesome
https://syncthing.net/ 的电脑端就是这么做的,直接调用了用户的浏览器
可能最好的办法是用 Python 调用 Keil 的命令行工具,实现你要的操作。因为 subprocess.Popen 主要是针对命令行程序。但我对 Keil 不了解,不知道能否纯用命令行实现。

如果你要自动化地打开一个 GUI 程序再关闭,可以在 Win32 的层面使用 Win32 API 来自动化。

大致的原理是:

1. 使用 FindWindow 或其他方法得到窗口句柄
2. 向该窗口发送 WM_CLOSE 消息

参考:

https://learn.microsoft.com/zh-cn/windows/win32/learnwin32/closing-the-window
https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-findwindowa
https://stackoverflow.com/questions/5402158/using-sendmessage-to-send-wm-close-to-another-process

但是以上是 C++ 层面的 API ,如果用 Python 又该怎么做呢?可以使用 pywinauto 。代码大概如下:

```py
import time
from pywinauto.application import Application

app = Application().start("???.exe")
time.sleep(10)
app.kill(soft=True)
```

另一种方法是找到顶层窗口之后 close:

```py
import time
from pywinauto.application import Application
from pywinauto.controls.hwndwrapper import HwndWrapper

app = Application().start("???.exe")
time.sleep(10)
root: HwndWrapper = app.top_window()
root.set_focus()
root.close()
```
2023-11-03 15:01:03 +08:00
回复了 ThinkStu 创建的主题 程序员 转语言真的这么容易吗?
我觉得编程语言之间还是有很多共性的,如果你见得多了,多思考,我认为转语言不难。

例如 Java, Python, js 都有迭代器( iterator )概念,Python 和 js 都有生成器( Generator )概念。Java 和 Python 都是面向对象,但 js 就不是,而是基于原型( Prototype-based )的,另一个基于原型的语言是 Lua 。而 Go 就更不面向对象,Go 的抽象方法是 interface ,是基于胖指针( fat pointer )的,另一个与之类似的是 Rust 的 trait 。

有些语言是静态类型,还有些语言是动态类型。你会发现静态类型语言有一些相似的处理方法,比如 Go 中 json 转换是声明一个类型然后用 tag 标注字段名,而 Java 的 gson 也可以用注解来标注字段名。而动态语言的 json 转换就完全不同。

推荐在你现在的基础之上再学习一门动态语言,例如 js 或 Python ,有了更多实际经验就能思考语言之间的共性和个性。
2023-10-29 17:12:06 +08:00
回复了 PerryHe 创建的主题 Ubuntu 求推荐本地文件夹同步工具
@PerryHe 把命令放在后台执行,你需要 tmux https://ruanyifeng.com/blog/2019/10/tmux.html
2023-10-25 20:50:52 +08:00
回复了 skyrem 创建的主题 信息安全 自用开发服务器被黑了,怎么看黑客在我机器上做了什么?
journalctl -b 看看系统日志?看看黑客执行了些啥高权限操作。不过这个也有可能被清了
2023-10-21 08:05:58 +08:00
回复了 yajuusenpai 创建的主题 Jupyter Jupyter Notebook 到底是用来干啥的?
后一个问题,如果只是画图,用 matplotlib 的 savefig 即可,可以不用 jupyter notebook
2023-10-07 20:40:10 +08:00
回复了 iorilu 创建的主题 Python Python 有没有好用的本地文件实现的 key, value 存储
可以试试 LMDB ,有很多开源项目都在用,比如 samba 、bind 、Caffe 等

或者 RocksDB ,也有很多数据库在用,比如 TiDB 、Flink 等
1  2  3  4  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3257 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 12:09 · PVG 20:09 · LAX 04:09 · JFK 07:09
Developed with CodeLauncher
♥ Do have faith in what you're doing.