为什么Delphi运行程序时一闪而过?

为什么Delphi运行程序时一闪而过?,第1张

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

用Delphi的控制台写了一个简单的程序,可是运行时屏幕却是一闪就没了,这是怎么回事?是不是Delphi里面也有像C里面类似getch停屏的指令?源程序如下:

program graph(input,output)

{$APPTYPE CONSOLE}

uses

SysUtils

const

pi= 3.14159

var

i, wide: integer

y: real

begin

{ TODO -oUser -cConsole Main : Insert code here }

for i:=0 to 24 do

begin

y:=sin(i*15*pi/180)

wide :=round (35*y+40)

writeln('*',wide)

end

end.

解析:

用ReadLn就行了

1.修改注册表

这些地方可以修改:

HKEY_LOCAL_MACHINE\Software\Windows\CurrentVersion\Run(一般加载)

HKEY_LOCAL_MACHINE\Software\Windows\CurrentVersion\RunOnce(加载1次后就删除)

HKEY_LOCAL_MACHINE\Software\Windows\CurrentVersion\RunService(以系统服务的方式加载)

上面的是对该电脑上的每个拥护都有用,如果是对单一的拥护:

HKEY_CURRENT_USER\Software\Windows\CurrentVersion\Run(一般加载)

HKEY_CURRENT_USER\Software\Windows\CurrentVersion\RunOnce(加载1次后就删除)

HKEY_CURRENT_USER\Software\Windows\CurrentVersion\RunService(以系统服务的方式加载)

或者修改 win.ini(好象还是system.ini),有个地方有load=,后面加上你的程序的地址。

以及最原始的方法,将你的程序的快界方式扔到启动组中。

Delphi 启动外部程序,,推荐使用 ShellExecute ,不推荐winexec!

winexec是16位代码,,有时会被杀软误报。。;另外winexec不能指定默认目录,有时启动的外部程序会出错!

在使用,ShellExecute 启动外部程序的时候,,如果这个外部程序不是和你的程序在同一个目录里,一定要指定一下,默认目录。例如,你启动的是 c:\windows\2.exe ,加上他的默认目录,如下:

ShellExecute(Handle,'open','c:\windows\2.exe', nil, {这里写2.exe的默认目录}'c:\windows\', SW_NORMAL)

你的意思是不是,象你这样写,就是先启动hypmain.exe 完以后才启动的2.exe!你想在同一时间启动这两个程序!

其实你就直接写成如下的,,时间间隔也就是几毫秒而已:

procedure TForm1.XPButton2Click(Sender: TObject)

begin

if (suiedit1.Text='1234')and(suiedit2.Text='1234') then

begin

ShellExecute(self.Handle,'open','internet\hypmain.exe', nil, nil, SW_NORMAL)

ShellExecute(self.Handle,'open','c:\windows\2.exe ', nil, nil, SW_NORMAL)

end

else

begin

Showmessage('输入的用户名或密码错误!')

end

end


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12134293.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存