
[求助] VBA API获取窗口句柄 另存为指定文件
看了很多前辈的帖子,了解到应该通过VBA调用API获取窗口句柄再进行操作。我的要求是在桌面建立指定文件夹并将多个新建工作簿(Book1,Book2……Book11,不固定...
看了很多前辈的帖子,了解到应该通过VBA 调用API获取窗口句柄再进行操作。
我的要求是在桌面建立指定文件夹并将多个新建工作簿(Book1,Book2……Book11,不固定有时可能没有11个,这些工作薄是模拟点击网页上的“导出到Excel”按键自动生成的)保存到这个文件夹里。或者将每个新建工作簿sheet1的内容复制到代码工作簿再关闭它们。
下面代码已经得到窗口句柄,请问各位老师怎么将窗口另存为
ByVal lpWindName As String) As Long
Private Declare Function FindwindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, _
ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendmessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Private Const WM_PASTE = &H302
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, _
ByVal lpString As String, ByVal cch As Long) As Long
Private Const GW_CHILD = 5
Private Const GW_HWNDNEXT = 2
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, _
ByVal lpString As String) As Long
Sub aaa()
Dim a
For i = 1 To 11
a = FindWindow(vbNullString, "Microsoft Excel - Book" & i & " [兼容模式]")
'请问怎么将窗口另存为:路径 “C:\Users\Administrator\Desktop\新建文件夹”,保存类型 97-2003工作簿
'或者将新建工作簿sheet1的内容复制到代码工作簿再关闭
If a = 0 Then
Exit For
End If
Next
End Sub 展开
我的要求是在桌面建立指定文件夹并将多个新建工作簿(Book1,Book2……Book11,不固定有时可能没有11个,这些工作薄是模拟点击网页上的“导出到Excel”按键自动生成的)保存到这个文件夹里。或者将每个新建工作簿sheet1的内容复制到代码工作簿再关闭它们。
下面代码已经得到窗口句柄,请问各位老师怎么将窗口另存为
ByVal lpWindName As String) As Long
Private Declare Function FindwindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, _
ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendmessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Private Const WM_PASTE = &H302
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, _
ByVal lpString As String, ByVal cch As Long) As Long
Private Const GW_CHILD = 5
Private Const GW_HWNDNEXT = 2
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, _
ByVal lpString As String) As Long
Sub aaa()
Dim a
For i = 1 To 11
a = FindWindow(vbNullString, "Microsoft Excel - Book" & i & " [兼容模式]")
'请问怎么将窗口另存为:路径 “C:\Users\Administrator\Desktop\新建文件夹”,保存类型 97-2003工作簿
'或者将新建工作簿sheet1的内容复制到代码工作簿再关闭
If a = 0 Then
Exit For
End If
Next
End Sub 展开
1个回答
展开全部
请问进程ID取窗口句柄 用哪个API啊? 求教~
你是什么语言??VB还是C++?
给你个VB CODE :
Function GetQQpath()
Dim ps, s '获取QQ进程所存在的路径
s = "qq.exe"
For Each ps In GetObject("winmgmts:\\.\root\cimv2:win32_process").instances_ '循环进程
If UCase(ps.Name) = UCase(s) Then
Form1.Label1.Caption = ps.executablepath
GoTo q
End If
Next
q:
End Function
这个可以用知道进程名就可以知道程序路径了,原理很简单。自己摸索、
(针对新手: 结果显示在label1上面。否则会出现缺少对象)
你是什么语言??VB还是C++?
给你个VB CODE :
Function GetQQpath()
Dim ps, s '获取QQ进程所存在的路径
s = "qq.exe"
For Each ps In GetObject("winmgmts:\\.\root\cimv2:win32_process").instances_ '循环进程
If UCase(ps.Name) = UCase(s) Then
Form1.Label1.Caption = ps.executablepath
GoTo q
End If
Next
q:
End Function
这个可以用知道进程名就可以知道程序路径了,原理很简单。自己摸索、
(针对新手: 结果显示在label1上面。否则会出现缺少对象)
追问
用的VBA ,上面的代码是看其它人的代码抄过来的,能得到窗口句柄,我想操作窗口
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询