V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  geelaw  ›  全部回复第 1 页 / 共 178 页
回复总数  3543
1  2  3  4  5  6  7  8  9  10 ... 178  
10 小时 21 分钟前
回复了 GuoJikun 创建的主题 程序员 在 rust 中如何获取文件选择弹窗中鼠标选中的文件路径
@GuoJikun #7 Alt+P 是官方的预览方式(但很可惜在 pickerhost 里不行)
11 小时 43 分钟前
回复了 GuoJikun 创建的主题 程序员 在 rust 中如何获取文件选择弹窗中鼠标选中的文件路径
@geelaw #3 那个文件的名字是 Magnify.lnk 。另外要让 notepad.exe 显示所有文件,只要在文件名里面输入 * 再按一下回车。
11 小时 44 分钟前
回复了 GuoJikun 创建的主题 程序员 在 rust 中如何获取文件选择弹窗中鼠标选中的文件路径
答案是不要尝试做这件事情。

IShellWindows 枚举的是 shell (Explorer) 里面打开的窗口,其他程序打开的文件选择对话框和 shell 没什么必然关系。

使用 GetWindowTextW 得到的是 hwnd 里面的文字,首先在那个文件对话框里面,对话框本身和对话框里面的文件名组合框(可以输入文本、可以下拉选择,也可以通过选定项目改变的,左边写着“文件名(&N):”的框),是两个窗口(甚至有可能那个组合框是无窗口控件),它们的 hwnd 都不一样,在对话框的 hwnd 上调用 GetWindowTextW 得到的是对话框的标题,和文件名没有关系。

那个组合框里的文本可以是用户乱写的,不一定对应任何一个文件。

即使用户通过选择一个文件导致组合框显示了文件名,它显示的名字也不一定是你期待的那一个——你可以在 notepad.exe 里面打开“打开”对话框,然后导航到 C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessibility ,选定放大镜的快捷方式,你会发现:

1. 显示的名字没有 .lnk
2. 显示的名字不是 Magnify.lnk 而是(中文)“放大镜”或者(英文)“Magnifier”

但是那个文件的名字是 Magnifier.lnk ,显示的名字是通过 desktop.ini 控制的。

————

最好直接问你想要做什么最终用户受益的事情,而不是怎么做你想到的一种可能的做法,避免 X-Y 问题。
18 小时 43 分钟前
回复了 w568w 创建的主题 C# C# 有哪些显著的缺点?
@geelaw #6 “数组逆变”应该更正为“数组协变”。
18 小时 44 分钟前
回复了 w568w 创建的主题 C# C# 有哪些显著的缺点?
有一些很坏的特性,比如数组逆变(性能有极大损失),类型兼容性版本太多并且不一致(比如装箱 int 不可以拆箱为 uint ,但装箱的 int enum 可以拆箱为 int ,但 int[] 是 uint[],并且我永远记不住 int[] 是不是 int enum 数组;完全采用依名判定会简单很多),再比如实现多个可变接口时可变接口解析的歧义性,当然这都是 CLR 的问题。

C# 自己的问题大概是加入一些不必要的限制,比如古代的 C# 语言不许用 Enum 作为范型约束,虽然它完全有意义并且自古以来就受到 CLR 的支持。
这个入口居然没有从 OneDrive for Business 迁移的功能(当然可能这个功能就不存在)
4 天前
回复了 geelaw 创建的主题 站长 求指导 .cn 域名的使用方法
@summerwar #3 我关于备案的疑惑主要就是 CNNIC 控制 .cn 这一点……如果我用的是 .cn 域名,那么理论上 CNNIC 可以强行修改 name server 所以 name server 在不在国内应该没有任何区别才对。
测试了一下,看起来是软件自己拒绝比屏幕宽。记事本、文件资源管理器、OneNote 、Edge Chromium 都拒绝,但是 Slack 、Skype 都可以。查阅资料表明

https://learn.microsoft.com/en-us/windows/win32/winmsg/wm-getminmaxinfo

窗口可以选择自己的最大最小宽度高度(所谓 maximum/minimum tracking size ),因此答案是找你想要调整到更大的软件的开发商,让他们修改代码放宽限制。
震惊,难道现在的人都默认会读心术了吗?但至少楼主把本次的解决方法贴出来了,对我们不会读心术的人十分友好。
16 天前
回复了 eatFruit 创建的主题 Windows windows 下用户权限管理
先走路再跑步。第一步是用手工( GUI )完成你说的步骤,确保没问题之后再转换为程序,然后如果出错的话只需要研究程序和手工的区别就行了。
第一个思路是 bitness 对不对,因为 Office 的 COM 插件是进程内服务,所以插件和 Office 本身的 bitness 必须一样。
@drymonfidelia #2 那你可能要精进一下 C#,在 C# 里面枚举的取值范围就是底层整数类型的范围,所以不存在 null 。

设 T : struct, Enum 那么 T? 即 Nullable<T> 当然可以取 null ,另外 obejct 、ValueType 、IComparable 、IConvertible 、IFormattable 、ISpanFormattable 类型的变量都可以用来存储 boxed enum 的引用或 null 。
标题不知所云,著作权是创造的那一刻就存在的,登记(所谓“申请软件著作权”)是一种留痕措施,和著作权的存在无关。

所截取片段:

>在侵害计算机软件著作权案件中,涉案软件开发者是否未尽开源义务和是否基于其独创性贡献享有涉案软件著作权并不必然相关。被诉侵权人仅以涉案软件开发者并未依据开源协议开源为由,抗辩其不侵害涉案软件著作权的,人民法院一般不予支持。

请仔细看案件细节。

1. 网某科技公司(原告)开发了 OfficeTen
2. 浙江亿某公司、苏州启某公司(被告)非法获得 OfficeTen 的代码并出售基于它的软件(下称 C )
3. 原告 诉 被告 侵犯 OfficeTen 的著作权
4. 被告 辩称 原告 不享有 OfficeTen 的著作权,因为 OfficeTen 是基于 GPLv2 授权的 OpenWRT 开发的,因此 OfficeTen 的著作权属于 OpenWRT 的著作权人

所截片段的意思:4 的论述是错误的。

根据我对著作权的理解:衍生作品是否遵守原作品的授权协议,不影响衍生作品的著作权的存在与归属。这里 衍生作品 = OfficeTen ,原作品 = OpenWRT ,衍生作品的著作权自然属于原告。

即使在 GPLv2 的框架内,原告没有任何义务向任何人分发 OfficeTen ,如果不存在分发 OfficeTen 之行为,自然不受到 GPLv2 的约束(约束只在分发软件的时候出现)。我不清楚原告是否分发了软件,但考虑如下情况:

1. 原告并不公开发行 OfficeTen (或许原告要收费)
2. 原告发行 OfficeTen 的时候以 GPLv2 授权
3. 被告从原告处盗取 OfficeTen 的源码

那么 3 的行为并不代表被告以 GPLv2 的授权得到了 OfficeTen ,因此被告没有权利使用 OfficeTen 。
25 天前
回复了 OneLiteCore 创建的主题 程序员 一种基于邮箱的用户付费系统构想
单从密码学的角度考虑,不太理解 UUID 的作用是啥,是要绑定第一段邮箱验证,还是要绑定第二段激活?为什么要把 hash 算法(签名的实现细节)暴露在抽象的协议描述上?

从安全与易用性的角度考虑,UUID 需要保存吗?如何教育用户让他们保存?
AutoHotKey ,搜索 ControlSend
31 天前
回复了 wxiao333 创建的主题 分享发现 发现 win11 的一个重大 bug
/t/1089658 建议禁用 Explorer 的撤销功能
1  2  3  4  5  6  7  8  9  10 ... 178  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2408 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 47ms · UTC 16:04 · PVG 00:04 · LAX 08:04 · JFK 11:04
Developed with CodeLauncher
♥ Do have faith in what you're doing.