V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  geelaw  ›  全部回复第 7 页 / 共 184 页
回复总数  3664
1 ... 3  4  5  6  7  8  9  10  11  12 ... 184  
175 天前
回复了 w568w 创建的主题 C# C# 有哪些显著的缺点?
@w568w #30 数组可变性是从 JVM 抄到 CLR 里最恶心的特性之一,根本不应该支持。解决方法是 public readonly struct S<T> where T : class { public readonly T O; public S(T o) { O = o; } } 然后用 S<T>[]。
@GuoJikun #7 Alt+P 是官方的预览方式(但很可惜在 pickerhost 里不行)
@geelaw #3 那个文件的名字是 Magnify.lnk 。另外要让 notepad.exe 显示所有文件,只要在文件名里面输入 * 再按一下回车。
答案是不要尝试做这件事情。

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 问题。
176 天前
回复了 w568w 创建的主题 C# C# 有哪些显著的缺点?
@geelaw #6 “数组逆变”应该更正为“数组协变”。
176 天前
回复了 w568w 创建的主题 C# C# 有哪些显著的缺点?
有一些很坏的特性,比如数组逆变(性能有极大损失),类型兼容性版本太多并且不一致(比如装箱 int 不可以拆箱为 uint ,但装箱的 int enum 可以拆箱为 int ,但 int[] 是 uint[],并且我永远记不住 int[] 是不是 int enum 数组;完全采用依名判定会简单很多),再比如实现多个可变接口时可变接口解析的歧义性,当然这都是 CLR 的问题。

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

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

窗口可以选择自己的最大最小宽度高度(所谓 maximum/minimum tracking size ),因此答案是找你想要调整到更大的软件的开发商,让他们修改代码放宽限制。
震惊,难道现在的人都默认会读心术了吗?但至少楼主把本次的解决方法贴出来了,对我们不会读心术的人十分友好。
191 天前
回复了 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 。
200 天前
回复了 OneLiteCore 创建的主题 程序员 一种基于邮箱的用户付费系统构想
单从密码学的角度考虑,不太理解 UUID 的作用是啥,是要绑定第一段邮箱验证,还是要绑定第二段激活?为什么要把 hash 算法(签名的实现细节)暴露在抽象的协议描述上?

从安全与易用性的角度考虑,UUID 需要保存吗?如何教育用户让他们保存?
AutoHotKey ,搜索 ControlSend
1 ... 3  4  5  6  7  8  9  10  11  12 ... 184  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5113 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 50ms · UTC 01:17 · PVG 09:17 · LAX 18:17 · JFK 21:17
Developed with CodeLauncher
♥ Do have faith in what you're doing.