|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
janker (janker) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2021/6/2 17:48:56 |
标题: |
win7 自启动程序的问题,救急啊...... |
浏览:1502 |
|
加入我的收藏 |
楼主: |
一个单机程序,运行在win7下,设置成开机自启动(注册表的RUN里面),win7系统取消了登录界面。(程序是在win10下开发的,32,delphi3.3) 一个奇怪的问题,我的程序拷贝到WIN7,然后运行,正常。 如果电脑重新开机,我的程序自启动运行,问题来了,程序不能读写如何的文件,比如ini,txt,sqlite的文件等等。退出程序到桌面,程序又可以读写文件了!!!! 排查了一天,确认是自启动的问题,如果不是自启动运行,就正常。 这是什么引起的问题啊,(我估计是WIN7取消了登录引起的?)。 但是电脑需求免登录,我的程序也需要开机自启动,要怎么搞???? 麻烦各位支支招啊,谢谢谢谢..........
----------------------------------------------
- |
作者: |
go_on (go_on) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2021/6/2 18:28:46 |
1楼: |
用计划任务实施,自动登录后启动,可以指定账号,可能是权限问题
----------------------------------------------
-
|
作者: |
|
2021/6/2 18:41:45 |
2楼: |
启动到0去了? 取运行目录+‘xxx’? ‘./123.ini’?
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
|
作者: |
|
2021/6/2 19:35:18 |
3楼: |
很可能是路径问题。自启动的话,你得到程序的默认路径,不一定是真实路径。有时候会被重定向到windows\system32,或者win32wow64。但不知道这方面,你的代码是怎么写的呢?
----------------------------------------------
只有偏执狂才能生存!
|
作者: |
|
2021/6/2 19:49:06 |
4楼: |
1楼说得有道理
----------------------------------------------
-
|
作者: |
janker (janker) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2021/6/3 8:46:58 |
5楼: |
谢谢各位了。。, 1楼的方法可以试试 3楼说到点子上啦,就是因为win7是64位的,所以32的程序自启动有问题,但是我的程序用了IOComp,波形图控件,不支持64,才造成了这个问题。 IOComp里面用了一些ASM,也不好改代码..... 重装32位 win7,反正是专用电脑,上位机
----------------------------------------------
-
|
作者: |
janker (janker) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2021/6/3 9:00:21 |
6楼: |
这里有个参考: https://blog.csdn.net/weixin_42314830/article/details/108651388
----------------------------------------------
-
|
作者: |
|
2021/6/3 10:08:16 |
7楼: |
还有一种方法,就是开机自启动不要放到注册表中, 而是放到开始菜单的启动项中。应该就没有这些问题了。
我都是这么做的。拖一下就完成了自动启动。没有出现过楼主这样的问题。
----------------------------------------------
武汉天气不好
|
作者: |
janker (janker) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2021/6/3 10:36:20 |
8楼: |
参考:https://blog.csdn.net/weixin_42314830/article/details/108651388, 全部用绝对路径访问也可以,这样就不管是32还是64位系统了。 哈哈 谢谢大家
----------------------------------------------
-
|
作者: |
|
2021/6/4 15:30:51 |
9楼: |
没登录的话,你的程序是服务拉起来的吧,用户是SYSTEM。 桌面注册表环境变量都不是你桌面用户的。 像前面人说的,用绝对路径。 或者放在注册表里,登录到桌面再用。 还有个办法就是你知道用户名密码,CreateProcessWithLogon或CreateProcessAsUser用桌面用户的账号创建进程。
----------------------------------------------
武稀松http://www.raysoftware.cn
|
作者: |
janker (janker) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2021/6/28 11:46:56 |
10楼: |
谢谢武大侠,真不知道有这个带用户账号的API..........
----------------------------------------------
-
|
作者: |
|
2021/6/28 23:44:50 |
11楼: |
https://dl3.downloadly.ir/Files/Software/Iocomp_Components_Full_Sources_Product_4.0.4_SP2_Delphi_Rio_Compatible_Downloadly.ir.rar
----------------------------------------------
-
|
作者: |
|
2021/7/1 1:13:28 |
12楼: |
如果不是服务,是桌面应用程序 1),control userpassword2 设置个自动登录的用户 2),把应用程序创建个快捷方式. 3),把快捷方式拷贝到该用户的开始菜单-启动里面去 该用户登录以后才会启动这个应用程序, 所有需要的环境都先准备好了.
----------------------------------------------
-
|
作者: |
janker (janker) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2021/7/1 17:55:17 |
13楼: |
不能用拖入启动菜单的方法,一是要人工操作,二是很容易被拿掉。 没有涉及到和登录账号关联什么的,目前用绝对路径的方法。
----------------------------------------------
-
|
|