问遍网络无人答之vb高级编程问题。

来源:百度知道 编辑:UC知道 时间:2024/07/08 23:21:50
VB高手请进,这段程序如何修改?

VB高手请进,这段程序如何修改?

有一个窗口form1,上面有个命令按钮command1,其中command1.caption="ok"
按一下command1,能打开记事本输入command1.caption,即ok. 下面是源代码。
我要请教的是:假设这个程序是个悬浮的窗口,如何修改才能使程序将"ok"发送到最近当前的任一程序中?也就是:让程序自动判断当前程序是什么,然后再将“ok”发过去。 我看WinHex能将当前打开的程序以打开先后排列出来,不知道它是如何做到的?
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const SW_RESTORE = 9
Dim TID As Long, PID As Long, hWindow As Long, hProcess As Long, Ret As Long

Private Sub Command1_Click()
hWindow = FindWindo

这个题给5分,你问遍全世界也没有人知道啊。

这个问题并不难办。。其实是如何获取当前活动窗体句柄的问题。


Declare Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long
这个函数

可是你的程序是点击一个按钮以后打开记事本输入ok,你想过没有当点击按钮了以后你,这个窗体就会取代原来那个活动窗体了。最后还是获得自己的句柄。
如果你打算向其他窗体发送,最好想一个能不让自己变成活动窗体的方法。如设置键盘钩子弄个快截键,或者干脆弄个timer控件隔段时间发一次。。

一不小心撞到一楼~~~~~~~~~~~~~~~