如何得知SQLSERVER的自动安装程序已经运行完毕

huajun_0 2007-01-25 01:31:32
我的目的是,用PB调用SQLSERVER的无人置守安装,等sqlserver安装完成后,再接着执行启动数据库的代码。但是怎么处理才能使SQLSERVER的无人置守安装完成后,再执行下面的代码呢?原来想着用调用批处理文件来运行,但是又不知到用户计算机的算符,所以没法写那个批处理文件。

...全文
365 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
接分先!
jdsnhan 2007-01-30
  • 打赏
  • 举报
回复
// 检测进程
PROCESSENTRY32 Process
Long ll_ProcSnap,ll_mainid
string ls_proname,ls_main
Integer li_result,li_Return

ll_ProcSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)

// 取得系统进程失败,则直接返回
If ll_procSnap <= 0 Then Return 0

Process.dwsize = 1060 // 通常用法
Process32First(ll_ProcSnap,Process)

If Not ab_main Then
Do Until Process32Next(ll_ProcSnap, Process) < 1 // 遍历所有进程直到返回值为False
ls_proname = Left(process.szexefile,Len(Process.szexefile) - 4)
If This.of_question( ls_proname,Process.th32processid) <> 0 Then Return 1
Loop
Else
Do Until Process32Next(ll_ProcSnap, Process) < 1 // 遍历所有进程直到返回值为False
ls_proname = Left(process.szexefile,Len(Process.szexefile) - 4)
If lower(ls_proname) = "newstart" Then ll_mainid = Process.th32processid
li_result = This.of_question( ls_proname,Process.th32processid,True)
li_Return = li_return + li_result
Loop
huajun_0 2007-01-29
  • 打赏
  • 举报
回复
有这几个函数的例子吗?或者用法?谢谢。
jdsnhan 2007-01-29
  • 打赏
  • 举报
回复
在循环中,判定进程吧.如有安装的这个进程,就等待,然后再次判定.
判断进程一般比判定窗口准确的多。

可以使用CreateToolhelp32Snapshot,Process32Next等几个函数判定!
huajun_0 2007-01-26
  • 打赏
  • 举报
回复
急用,请指教
huajun_0 2007-01-25
  • 打赏
  • 举报
回复
但是如何得到进程呢?我用下列方法:
run(ls_sqlpath)//ls_sqlpath为sqlserver无人置守安装命令的路径
ll_l=GetModuleHandleA( "SETUPSQL ")
messagebox(string(ll_l), " ")
得到的消息值是0
long ll_l
ll_l=GetModuleHandleA( "SETUPSQL ")
messagebox(string(ll_l), " ")
do
Yield()
loop until GetModuleHandleA( "SETUPSQL ")=0
还是没用.
huajun_0 2007-01-25
  • 打赏
  • 举报
回复
但是如何得到进程呢?我用下列方法:
ll_l=GetModuleHandleA("SETUPSQL")
messagebox(string(ll_l),"")
得到的消息值是0
long ll_l
ll_l=GetModuleHandleA("SETUPSQL")
messagebox(string(ll_l),"")
do
Yield()
loop until GetModuleHandleA("SETUPSQL")=0
还是没用.
霖湘凝 2007-01-25
  • 打赏
  • 举报
回复
1、run(。。。)
2、检查安装进程是否存在,如存在则已经开始安装,
3、Yield(),反复检查安装进程是否存在,如不存在则结束
洛阳老马 2007-01-25
  • 打赏
  • 举报
回复
楼主,我觉得你这样做是完全不必要的。如果你的应用必须运行在SQL Server上,你只需要让用户自己去装了之后,在你启动的时候判断自己的数据库连接是否有效就行了,你这样费大力气去搞定这个问题有什么意义呢?难不成你要在程序运行时把所有的与环境相关的东西都替用户做了?

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧