AppActivate

panrongtao 2010-02-26 08:40:58
Private Sub Form_Load()
Dim a
a = Shell("calc.exe", 1)
AppActivate a
End Sub
这段代码我在xp下运行没问题,但是在windows7下就提示“无效的过程调用或参数”,怎么回事呢?
...全文
265 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
panrongtao 2010-02-28
  • 打赏
  • 举报
回复
加了类型还是不行的
如果真是弄不好我就结贴吧,专死在一个地方也不好
cbm6666 2010-02-27
  • 打赏
  • 举报
回复
是否你的 a 没定义型态 ?
试看这个, Win7我以前用过,代码中也用到了 AppActivate都很正常


Option Explicit
Dim ProcID&
Private Sub Command1_Click()
ProcID = Shell("calc.exe", vbNormalFocus) '打开计算器
End Sub

Private Sub Command2_Click()
AppActivate ProcID '让此进程ID获得焦点
End Sub
chinaboyzyq 2010-02-27
  • 打赏
  • 举报
回复
引用 5 楼 cbm666 的回复:
是否你的 a 没定义型态 ?
Dim ProcID&


定义长整变量值得一试。

dim a as long
liguicd 2010-02-26
  • 打赏
  • 举报
回复
奇怪的现象,帮顶
回复内容太短了!
panrongtao 2010-02-26
  • 打赏
  • 举报
回复
引用 2 楼 cbm666 的回复:
AppActivate 后面带的参数是 "窗口标题"

'让指定的窗口标题获得焦点
Option Explicit
Private Sub Command1_Click()
  Call Shell("calc.exe", vbNormalFocus)
  AppActivate "计算器" '让计算器获得焦点
End Sub

一样不行的,我把calc.exe换成notepad.exe倒是可以的,真不知道什么原因
cbm6666 2010-02-26
  • 打赏
  • 举报
回复
AppActivate 后面带的参数是 "窗口标题"

'让指定的窗口标题获得焦点
Option Explicit
Private Sub Command1_Click()
Call Shell("calc.exe", vbNormalFocus)
AppActivate "计算器" '让计算器获得焦点
End Sub
贝隆 2010-02-26
  • 打赏
  • 举报
回复
这是AppActivate的详细用法,楼主参考一下:
AppActivate 语句


激活一应用程序窗口。

语法

AppActivate title[, wait]

AppActivate 语句的语法具有以下几个命名参数:

部分 描述
title 必需的。字符串表达式,所要激活的应用程序窗口的标题。可以使用 Shell 函数返回的任务识别码来替换 title,以激活应用程序。
wait 可选的。Boolean 值,说明在激活另一个应用程序之前调用的应用程序是否有焦点。如果为 False(缺省),那么,即使调用的应用程序没有焦点,也直接激活指定的应用程序。如果为 True,则调用的应用程序会等到有焦点后,才激活指定的应用程序。


说明

AppActivate 语句将焦点移动到命名的应用程序或窗口,但并不影响焦点是否最大化或最小化。当用户采取行动改变焦点或将窗口关闭时,就会将焦点从活动的应用程序窗口移动出去。可用 Shell 函数启动一个应用程序并设置窗口样式。

在决定激活哪个应用程序时,请将 title 与每一个运行中的应用程序的标题字符串进行比较。如果没有完全匹配,就激活任何这样的应用程序,其标题字符串以 title 开头。如果以 title 命名的应用程序有很多实例,则激活任何一个实例。

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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