想實作遠程桌面到服務器定時操作一個列印機,自動清空日志和重啟
看到VBS sendkeys, 但是遠程桌面斷開后就失效了。
后來說Postmessage可以,就研究了幾天,但是第一句就報錯了,但是原作者說是沒問題的,求解?不勝感激。。。。
PS: 服務器的版本是Window Server 2003
牛人說沒問題但用寫字板打開vbs檔案第二句就報錯的腳本如下:
報錯資訊:
Windows Scripr Host
ActiveX部件不能創建物件:‘DynamicWrapper’
'==========================================================================
'
' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 4.0
'
' NAME:
'
' AUTHOR: Microsoft , Microsoft
' DATE : 2014/8/10
'
' COMMENT:
'
'===================定義變數,注冊API物件==================================
Dim UserWrap,hWnd
Set UserWrap = CreateObject("DynamicWrapper")
Set ws=WScript.CreateObject("wscript.shell")
WScript.Sleep 500
ws.Run "calc",0
WScript.Sleep 500
'Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
UserWrap.Register "USER32.DLL", "ShowWindow", "I=hl", "f=s", "R=l"
'Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
UserWrap.Register "USER32.DLL", "FindWindow", "I=ss", "f=s", "R=l"
'Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
UserWrap.Register "USER32.DLL", "SetWindowPos", "I=Hllllll", "f=s", "R=l"
'Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
UserWrap.Register "USER32.DLL", "PostMessage", "I=hlls", "f=s", "R=l"
'Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
UserWrap.Register "USER32.DLL", "SetWindowText", "I=Hs", "f=s", "R=l"
'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
UserWrap.Register "USER32.DLL", "FindWindowEx", "I=llss", "f=s", "R=l"
'Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
UserWrap.Register "USER32.DLL", "SetCursorPos", "I=ll", "f=s", "R=l"
'===================查找控制元件或者表單句柄===============================
hWnd = UserWrap.FindWindow(vbNullString,"計算器")
'hWnd = UserWrap.FindWindow("kugou_ui",vbNullString)
hWnd1 = UserWrap.FindWindowEx(hWnd,0,vbNullString,Edit)
'UserWrap.ShowWindow hWnd,SW_HIDE
'UserWrap.SetWindowText hWnd,"hello world"
MsgBox hWnd
MsgBox hWnd1
'UserWrap.SetWindowPos hWnd, -1, 0, 0, 0, 0, 3
'MsgBox "將滑鼠移到左上角"
'UserWrap.SetCursorPos 0,0
'=================定義系統常量===========================
Private Const WM_KEYDOWN = &H100
Private Const wm_keyup= &H101
Private Const WM_CHAR = &H102
Public Const WM_SYSKEYDOWN = &H104
Public Const WM_SYSKEYUP = &H105
'=================發送F1按鍵=====================
UserWrap.PostMessage hWnd, WM_KEYDOWN, 112, 0
'=================發送1002========================
UserWrap.PostMessage hWnd,WM_KEYDOWN ,97,0
UserWrap.PostMessage hWnd,WM_KEYDOWN ,96,0
UserWrap.PostMessage hWnd,WM_KEYDOWN ,96,0
UserWrap.PostMessage hWnd,WM_KEYDOWN ,98,0
uj5u.com熱心網友回復:
問題解決了嗎?uj5u.com熱心網友回復:
注冊DynamicWrapper對應的DLL或OCX轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/52797.html
標籤:API
下一篇:庫存金額計算
