编写的程序在封装后,安装下测试机内,安装程序把程序安装在“C:\Program Files (x86)\公司名\软件名”下,程序启动时需要检查是否存在数据库文件“DATA.DB”,路径使用了“Application.StartupPath\data.db”来查找,如果不存在,则新建,还是用这个路径建立,但是新建“DATA.DB”时保存在了:
C:\Users\用户名\AppData\Local\VirtualStore\Program Files (x86)\公司名\软件名\data.db
测试1:把安装后的程序目录复制到桌面,目录里没有data.db,打开程序,在桌面的程序目录里自动建立data.db;
测试2:把安装后的程序目录更名为“软件名1”,启动程序,“DATA.DB”自动建立在:
C:\Users\用户名\AppData\Local\VirtualStore\Program Files (x86)\公司名\软件名1\data.db
证明:在“C:\Program Files (x86)”里的程序使用“Application.StartupPath”创建文件时都会保存在“C:\Users\用户名\AppData\Local\VirtualStore\Program Files (x86)\公司名\软件名”下。
百度:
這是虛擬轉儲,用途是如果應用程序沒有系統目錄的寫入權限,但是需要寫入文件時,系統就會把文件就會轉存到這裡,然後騙程序說存進去了,UAC就算關閉,這個功能也仍然存在(Windows目錄下的文件一律轉儲),這是爲了多用戶考慮的(任何用戶不能隨便修改系統關鍵目錄的文件).
测试3:用管理员身份启动程序,的确在“C:\Program Files (x86)\公司名\软件名”建立了数据库
疑问:测试3成功,但每次都要弹出UAC警告,由于要发送给多用户,不想说服多用户半闭UAC,怎么处理?