急问delphi编程的问题(高分赠送)(200分)

  • 主题发起人 hippoGao
  • 开始时间
H

hippoGao

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个程序,该程序在执行时会调用winexec来执行一个命令行程序,然后主程序就
退出,我在桌面上点击该文件可以正常执行,但是当我把它加到注册表的RUN下,希望开机
后自动执行,主程序可以执行,但是调用的命令行程序就不会执行。
操作系统时windows2000,winexec在formcreate里调用,调用后主程序自动退出。
急问急问,大家帮忙
 
应该是路径问题
 
把它直接放在主程序里试一下!
 
我在程序中使用的是全路径,应该没有问题吧
还有“把它直接放在主程序里试一下!”是什么意思?不是很明白的说
 

ShellExecute(Application.Handle,
nil,
PChar(sFileName),
nil,
nil,
SW_MAXIMIZE);
uses SHellAPI;
我试过是可以的
 
可能在启动时窗口站未初始化吧,winexec就不成功了。
用CreateProcess来做应该可以。
或者笨点用个定时器,延时一下。
 
我写了一个程序自己试了一下可以成功
uses shellapi;
procedure TForm1.FormCreate(Sender: TObject);
begin
showmessage(inttostr(ShellExecute(0,'open','c:/project1.exe',nil,nil,SW_NORMAL)));
Application.Terminate;
end;
你再试一试将返回值show出来,如果是42就表示ok了
其他返回值ERROR_FILE_NOT_FOUND,或者ERROR_PATH_NOT_FOUND等等,你自己根据返回值查帮助就可以清楚
错误原因了
 
呵呵,搞定了,原来是用getcurrentdir的错,在启动的时候一直是c:/
谢谢大家了,分数平分平分:)
 
顶部