如何才能在不修改文件、不修改注册表、不联网的情况下判断是否首次打开软件?

【没啥用】文件名称交换器Filename Exchanger(2.2)继续讨论:

起因于此

原始目的是判断是否用户首次打开程序:
若是,提示,若否,不操作。

总不能通过套娃的方式实现吧……那也太不优雅了:

有A、B两个程序,A程序的唯一作用就是在首次打开时显示提示并释放作为内部资源的B程序。而后B程序悄悄替换掉原有的A程序,并行使程序的主要功能……

那也太不优雅了吧……但是确实是我能想到的唯一一种邪门办法了……

加个ini配置文件即可

哥们,看题,不修改文件啊

要不然我头疼啥呢

要不要直接取消啟動提示
然後在github上強調初次使用先點提示按鈕這樣

或者可以在temp區弄一個資料夾,雖然算是有修改(新增)文件
但是大家不會看到,然後windows不會清除temp的資料夾
以此來檢測是否有使用過,也是一個辦法

啊,这的有人看git的readme嘛……
我以为和那个图一样的……(把“你宝贵的意见”换成“您用心写的readme”)

不可能的,相信国产软件的勤奋清理

我啊
勞資還特地找密碼登錄上去打星了呢 :doge:

清理軟件是個問題,不過我用的那款也沒在清 空的資料夾 就是了

啊,未曾设想,感激涕零 :xk:

我再等等其他网友看看还有没有新思路,实在不行真就直接删除首次提醒了……

我想了一圈也沒想到好方案

因為變數沒辦法寫回軟件,倒是可以對主程式竄改
(但是這種火辣操作也許很容易被某些防毒針對
而且操作不可逆

ini算個好主意,但是多一個配置檔就不夠簡潔
管理單檔軟件時看到那個也糟心

註冊表是最簡單直接的方法
但是同上,還可能引發被綁過註冊表的用戶的PTSD
聯網更是不用說,大家疑神疑鬼後會pass掉

如果直接以ram來記憶程序,那未知的潛在問題會更多
而且好好一個小程序搞這麼複雜也不科學

如此一來,還是把提示取消掉,省了一大把操心 :joy:

很有道理,使我的脑子旋转。

决定取消提示,不过先不结贴,还是很想知道有没有网友能给我整出什么其他的花活来

我有想到過一種花活,但不會此招的人來支招總感覺怪怪的就沒說

就是,系統右下角常駐時,那個圖示只要出現過我記得系統就會有紀錄

如果你能反向調出那個紀錄,或許就能實現這種騷操作

但這只是理論上來說,我不確定怎麼弄

权限问题解决不了,似乎是要system权限……

取消提示,连使用说明都不愿读的用户就不管了。

阿,我想到了一個很簡單的方法…

把說明文件與主程序壓縮在一起,然後想讀的一定會看到
熟悉操作的就只留下主程序,完美…

啊,已经发版了,就是这个思路

我嫌麻烦 :doge: 每次发版还得手动压缩

github action?

如果真想不写文件不写注册表又不修改或替换你的程序的话,可以研究研究ntfs 交换数据流(ADS),首次运行写一个数据到你程序文件的ADS里(正常资源管理器不可见,而且会随着你程序移动).
除此之外如果不怕用户骂你还有很多地方可写:服务,计划任务,驱动程序,证书,磁盘主引导分区等等木马喜欢利用的地方。(doge

1 个赞

稀烂的文档是个人开发者软件的显著特征 :rofl:

你问是否有人看 git 里的 readme。给你康康我的,把 readme 当成 wiki 用 :rofl:

只修改软件自身二进制可以做到。在软件启动后,将本机的任意识别信息(比如MAC地址)写入资源段即可。可以实现识别到在同一台机器上的首次运行。将二进制拷贝到其他机器也可以识别到首次打开。

当然这个方法似乎违反了你的“不修改文件”的要求。