按键精灵调用VB的问题,怎么调用OpenProcess向已打开的IE进行操作?
我想用OpenProcess对IE进行控制。因为我网页本来是打开的,不用重新建立IE窗口,所以不用CreateObject,还有wqm经常跳出,所以不想用wqm~~---...
我想用OpenProcess对IE进行控制。因为我网页本来是打开的,不用重新建立IE窗口,所以不用CreateObject, 还有wqm经常跳出,所以不想用wqm~~
------------------
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Const STANDARD_RIGHTS_REQUIRED = &HF0000
Const SYNCHRONIZE = &H100000
Const SPECIFIC_RIGHTS_ALL = &HFFFF
Const STANDARD_RIGHTS_ALL = &H1F0000
//在这里,试调显示 缺少文字常数, Const PROCESS_ALL_ACCESS=STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF
Const PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF
Hwd = FindWindow(vbNullString, "百度一下,你就知道 - Windows Internet Explorer")
GetWindowThreadProcessId Hwd, Pid
//在这里,试调显示 缺少对象: 'QMLibrary.CallAPI3(...)',
Set ie = OpenProcess(PROCESS_ALL_ACCESS, False, Pid)
//上面那句运行不了下面的就没意义了.
ie.Visible = true
ie.document.frames.document.getElementById("wd").value="1234"
i = ie.document.getElementById("su").click
--------------
复制代码这段要怎么写啊?
兄弟~你这个是打开一个新IE窗口的呢~我要不打开新IE窗口,在原有的IE窗口里操作,这个真没办法实现吗?
//在这里,试调显示 缺少文字常数, Const PROCESS_ALL_ACCESS=STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF
这句是注释~~下面那句才是执行的~应该没重复~
嗯嗯。也就是说OpenProcess不能实现~只能是CreateObject罗?对现在已打开窗口进行操作要比较复杂的东西了。。除了直接用VB写,在按键里能用其它方法实现吗。。 展开
------------------
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Const STANDARD_RIGHTS_REQUIRED = &HF0000
Const SYNCHRONIZE = &H100000
Const SPECIFIC_RIGHTS_ALL = &HFFFF
Const STANDARD_RIGHTS_ALL = &H1F0000
//在这里,试调显示 缺少文字常数, Const PROCESS_ALL_ACCESS=STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF
Const PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF
Hwd = FindWindow(vbNullString, "百度一下,你就知道 - Windows Internet Explorer")
GetWindowThreadProcessId Hwd, Pid
//在这里,试调显示 缺少对象: 'QMLibrary.CallAPI3(...)',
Set ie = OpenProcess(PROCESS_ALL_ACCESS, False, Pid)
//上面那句运行不了下面的就没意义了.
ie.Visible = true
ie.document.frames.document.getElementById("wd").value="1234"
i = ie.document.getElementById("su").click
--------------
复制代码这段要怎么写啊?
兄弟~你这个是打开一个新IE窗口的呢~我要不打开新IE窗口,在原有的IE窗口里操作,这个真没办法实现吗?
//在这里,试调显示 缺少文字常数, Const PROCESS_ALL_ACCESS=STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF
这句是注释~~下面那句才是执行的~应该没重复~
嗯嗯。也就是说OpenProcess不能实现~只能是CreateObject罗?对现在已打开窗口进行操作要比较复杂的东西了。。除了直接用VB写,在按键里能用其它方法实现吗。。 展开
3个回答
展开全部
Dim ie
Set ie = CreateObject("internetexplorer.Application") ‘这样就可以了 vbs可以用的 vb也可以
ie.Visible = True
这里要加ie的打开语句~~ ie.Navigate("http://wangtk1982.baidu.com/")
ie.document.frames.document.getElementById("wd").Value = "1234"
i = ie.document.getElementById("su").Click
====================================================
OpenProcess得到的是进程的句柄
你写的
ie.Visible = true
ie.document.frames.document.getElementById("wd").value="1234"
i = ie.document.getElementById("su").click
这些都是ie对像的。 与进程没有任何关系 进程是找不到这些方法的
所以用OpenProcess无法实现你要的功能~
========================================
不清楚你要做什么!自动填表吗?
我给你个思路吧!
写ie的插件工具 一般来说就是 ActiveX,BHO,Extension三种
其中BHO功能最强~几乎什么都能干~
Set ie = CreateObject("internetexplorer.Application") ‘这样就可以了 vbs可以用的 vb也可以
ie.Visible = True
这里要加ie的打开语句~~ ie.Navigate("http://wangtk1982.baidu.com/")
ie.document.frames.document.getElementById("wd").Value = "1234"
i = ie.document.getElementById("su").Click
====================================================
OpenProcess得到的是进程的句柄
你写的
ie.Visible = true
ie.document.frames.document.getElementById("wd").value="1234"
i = ie.document.getElementById("su").click
这些都是ie对像的。 与进程没有任何关系 进程是找不到这些方法的
所以用OpenProcess无法实现你要的功能~
========================================
不清楚你要做什么!自动填表吗?
我给你个思路吧!
写ie的插件工具 一般来说就是 ActiveX,BHO,Extension三种
其中BHO功能最强~几乎什么都能干~
展开全部
Const STANDARD_RIGHTS_ALL = &H1F0000
//在这里,试调显示 缺少文字常数, Const PROCESS_ALL_ACCESS=STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF
Const PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF
你这不是重复了吗?把PROCESS_ALL_ACCESS=STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF这行删了.再试.我这没有vb不好调试
其实大错没有.就是自己不认真调试.把问题一个个解决再说.同时调试时要注意值..还要API的用法对吗?自己可以到处查查.
//在这里,试调显示 缺少文字常数, Const PROCESS_ALL_ACCESS=STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF
Const PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF
你这不是重复了吗?把PROCESS_ALL_ACCESS=STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF这行删了.再试.我这没有vb不好调试
其实大错没有.就是自己不认真调试.把问题一个个解决再说.同时调试时要注意值..还要API的用法对吗?自己可以到处查查.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这是多此一举
还不如直接用vb 为什么还需要用按键精灵 按键精灵能做到的vb都能做到
还不如直接用vb 为什么还需要用按键精灵 按键精灵能做到的vb都能做到
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询