一个执行字符串的API问题(急)

yingxiangchen 2005-12-10 11:14:17
Private Declare Function EbExecuteLine Lib "vba6.dll" ( _
ByVal pStringToExec As Long, _
ByVal Unknownn1 As Long, _
ByVal Unknownn2 As Long, _
ByVal fCheckOnly As Long) As Long
以上是一个执行字符串的涵数,我不太会用,我用它去调用一个过程,好象不行,我是这样写的:EbExecuteLine StrPtr(我用来调用过程的语句), 0, 0, 0 
好象没有效果,(我给它的语句是一个调用过程的语句,和VB中调用过程的一样)不知道为什么不行,请达人请教

 其中参数pStringToExec是要执行的字符串,请问Unknownn1,Unknownn2,fCheckOnly的意义是什么?
...全文
213 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
winehero 2005-12-13
  • 打赏
  • 举报
回复
rainstormmaster(暴风雨 v2.0) 说的不错,这个东西编成EXE就不行了...

建议使用脚本控件MSScript.ocx (Microsoft Script Control)
faysky2 2005-12-13
  • 打赏
  • 举报
回复
CallByName 函数


执行一个对象的方法,或者设置或返回一个对象的属性。

语法

CallByName(object, procedurename, calltype,[arguments()])

CallByName 函数的语法有以下部分:

部分 描述
object 必需的;变体型(对象)。函数将要执行的对象的名称。
procedurename 必需的;变体型(字符串)。一个包含该对象的属性名称或者方法名称的字符串表达式。
calltype 必需的;常数。一个 vbCallType 类型的常数,代表正在被调用的过程的类型。
arguments() 可选的:变体型(数组)。


说明

CallByName 函数用于获取或者设置一个属性,或者在运行时使用一个字符串名称来调用一个方法。

在下面的例子中,第一行使用 CallByName 来设置一个文本框的 MousePointer 属性,第二行得到 MousePointer 属性的值,第三行调用 Move 方法来移动文本框:

CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet)
CallByName Text1, "Move", vbMethod, 100, 100
南山明月 2005-12-13
  • 打赏
  • 举报
回复
你在什么场合用,看看能不能用其它方法
rainstormmaster 2005-12-11
  • 打赏
  • 举报
回复
别研究 EbExecuteLine了,这个只能在vb的ide中使用,编译成exe后无法执行
northwolves 2005-12-10
  • 打赏
  • 举报
回复
调用过程可以用CALLBYNAME,如:

Sub msg()
MsgBox "I will tell you how to use Callbyname"
End Sub
Private Sub Command1_Click()
Dim x As String
x = "msg"
CallByName Me, x, VbMethod
End Sub
northwolves 2005-12-10
  • 打赏
  • 举报
回复
一个老例子,表达式计算的:

Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long ' API

Private Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function
Private Function result(ByVal x As String) As Single '计算表达式的结果
ExecuteLine "dim x as single"
ExecuteLine "x= " & x
ExecuteLine "clipboard.settext x" '发送到剪切板
result = Clipboard.GetText '从剪切板获取
Clipboard.Clear '清空剪切板
End Function

Private Sub Command1_Click()
Dim test As String
test = "1.5*(2.5+3.5)-(5.5-1)/3"
MsgBox test & "=" & result(test)
End Sub

1,485

社区成员

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

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