vb调用键盘输入SendKeys
如何在formload下用什么代码可以产生如敲打ctrl+alt+↑(或↓)的效果。也就是相当于程序一启动,就相当于敲打键盘ctrl+alt+↑(或↓)我想做的是ctrl...
如何在formload下用什么代码可以产生如敲打ctrl+alt +↑(或↓)的效果。
也就是相当于程序一启动,就相当于敲打键盘 ctrl+alt +↑(或↓)
我想做的是 ctrl+alt +↑(或↓)
问题补充:如利用sendkey 怎么做。
我写 的是
SendKeys "(^%Down)"
^% 分别是 alt 和ctrl
建立一个timer
enable设成true
timer_timer()里面写
SendKeys "^% + {DOWN}"
属性设置了500.
可是还没反应。。。
求教高手帮助。。。
因为SendKeys 好像的确无法用,
希望高手可以给一个可行的代码。
谢谢。
可还是不可以。
目的是 同时按下 ctrl+alt + ↓ 展开
也就是相当于程序一启动,就相当于敲打键盘 ctrl+alt +↑(或↓)
我想做的是 ctrl+alt +↑(或↓)
问题补充:如利用sendkey 怎么做。
我写 的是
SendKeys "(^%Down)"
^% 分别是 alt 和ctrl
建立一个timer
enable设成true
timer_timer()里面写
SendKeys "^% + {DOWN}"
属性设置了500.
可是还没反应。。。
求教高手帮助。。。
因为SendKeys 好像的确无法用,
希望高手可以给一个可行的代码。
谢谢。
可还是不可以。
目的是 同时按下 ctrl+alt + ↓ 展开
5个回答
2013-09-17
展开全部
在VB中调用Flac3d.exe的源代码:
Private Sub Command1_Click()
'定义打开Flac时返回的值
Dim Flac As Long
'在VB中调用Flac3d
Flac = Shell("E:\工具箱\FLAC 3D\flac3d v3.00-251\Flac3d v3.00\f3d300.exe", vbNormalFocus)
' 激活Flac,使其窗口获得焦点
'AppActivate Flac
'使用代码模拟键盘输入
' 按下回车键给计算器
SendKeys "{Enter}", True
'SendKeys "gen zone brick", True
'SendKeys "{Enter}", True
'SendKeys "plot surface", True
'SendKeys "{Enter}", True
'SendKeys "{Enter}", True
'调用命令流
SendKeys "call F:\VB\work\test.dat", True
SendKeys "{Enter}", True
End Sub
test.dat:
restore tcav3.sav
call stable.dat
stable.dat:
;;显示支撑轴力得变化
plot hist 7
;;excavate the fourth layer
model null ran group pcav4
;;支撑稳定性判断程序
;读出数据,将其输到文件c:\panda\t1.txt中
;;read the force from flac
def stable
loop t(1,200) ;每500步判断一次
;;计算200步
command
step 200
endcommand
command
;;删除旧有文件
Sys del F:\VB\work\t1.txt
;;打开文件开关,并将支撑轴力录入到c:\panda\t1.txt中。
set log on
set logfile F:\VB\work\t1.txt
print sel beam force
set log off
;;调用vb程序
Sys start /wait F:\VB\work\inputdata.exe
endcommand
;;读入数据之前的定义
a_size = 1
IO_READ = 0
IO_WRITE = 1
IO_FISH = 0
IO_ASCII =1 ;当需要读入,需使用ASCII模式
filename = 'output.txt' ; 注意:如果要进行文件操作,必须先定义,不能直接使用。
;;读入数据
;;define the array
array var(1)
;;3.输入数据
status=open(filename,IO_READ,IO_ASCII)
status=read(var,a_size)
status=close
;;将在z_d初始化为零
z_d=0
;;对数据类型进行转化
z_d=int(var(1))
;;判断是否失稳,如果输入数据为0,则继续循环,如果输入数据为1,则判断失稳并跳出循环将所有杆刚度设为0
if z_d=1 then
command
;;将所有杆设置刚度设为很小
sel beam id=1 prop density 1.9 emod=1.0e8 nu=0.0003 &
xcarea=0.00968 xciy=0.844e-3 xciz=0.844e-3 xcj=0
endcommand
exit
endif
endloop
end
stable
solve
save pcav4.sav
inputdata.exe的源代码:
'工程文件路径
Public strInputPath As String
Public strOutputPath As String
Private Sub Form_Load()
'隐藏窗口
Me.Hide
'定义极限荷载
Dim Plim As Single
'定义杆件失稳标记
'如果杆件失稳则输出1,如果没有失稳则输出0
Dim nFlag As Integer
Plim = 10.44 * 100000# '根据0.85的折减系数而得
'定义单元编号
Dim nEleID As Integer
'定义节点编号
Dim nNodeID As Integer
'定义杆件节点的轴力的分量
Dim F(1 To 3) As Single
'定义字符串变量
Dim str As String
'定义读入数据前忽略的行数
Dim nLine As Integer
nLine = 21
'定义欲读入单元的个数
Dim nElement As Integer
nElement = 10
'定义每个单元的节点数
Dim nNode As Integer
nNode = 2
'定义可供Open语句使用的文件号
Dim nInputFile As Integer
Dim nOutputFile As Integer
'FreeFile函数返回一个Integer,代表下一个可供Open语句使用的文件号
nInputFile = FreeFile
nOutputFile = nInputFile + 1
'打开文本文件
strInputPath = "F:\VB\work\t1.txt"
strOutputPath = "F:\VB\work\output.txt"
Open strInputPath For Input As #nInputFile
Open strOutputPath For Output As #nOutputFile
'读入忽略的行数
For i = 1 To nLine
Line Input #nInputFile, str
Next i
'读入数据
'For i = 1 To nElement
For i = 1 To 1
For j = 1 To nNode
'If j = 1 Then
' Input #nInputFile, nEleID, nNodeID, F(1), F(2), F(3)
'Else
' Input #nInputFile, nNodeID, F(1), F(2), F(3)
'End If
If j = 1 Then
Input #nInputFile, nEleID
End If
Input #nInputFile, nNodeID, F(1), F(2), F(3)
'将轴力值与杆件的极限载荷相对比,如果杆件失稳则输出1,如果没有失稳则输出0
If j = 1 Then
If Plim < (-F(1) * 3) Then
nFlag = 1
Else
nFlag = 0
End If
Write #nOutputFile, nFlag
End If
Next j
Next i
'关闭文件
Close #nInputFile
Close #nOutputFile
'卸载窗体
Unload Me
End Sub
Private Sub Command1_Click()
'定义打开Flac时返回的值
Dim Flac As Long
'在VB中调用Flac3d
Flac = Shell("E:\工具箱\FLAC 3D\flac3d v3.00-251\Flac3d v3.00\f3d300.exe", vbNormalFocus)
' 激活Flac,使其窗口获得焦点
'AppActivate Flac
'使用代码模拟键盘输入
' 按下回车键给计算器
SendKeys "{Enter}", True
'SendKeys "gen zone brick", True
'SendKeys "{Enter}", True
'SendKeys "plot surface", True
'SendKeys "{Enter}", True
'SendKeys "{Enter}", True
'调用命令流
SendKeys "call F:\VB\work\test.dat", True
SendKeys "{Enter}", True
End Sub
test.dat:
restore tcav3.sav
call stable.dat
stable.dat:
;;显示支撑轴力得变化
plot hist 7
;;excavate the fourth layer
model null ran group pcav4
;;支撑稳定性判断程序
;读出数据,将其输到文件c:\panda\t1.txt中
;;read the force from flac
def stable
loop t(1,200) ;每500步判断一次
;;计算200步
command
step 200
endcommand
command
;;删除旧有文件
Sys del F:\VB\work\t1.txt
;;打开文件开关,并将支撑轴力录入到c:\panda\t1.txt中。
set log on
set logfile F:\VB\work\t1.txt
print sel beam force
set log off
;;调用vb程序
Sys start /wait F:\VB\work\inputdata.exe
endcommand
;;读入数据之前的定义
a_size = 1
IO_READ = 0
IO_WRITE = 1
IO_FISH = 0
IO_ASCII =1 ;当需要读入,需使用ASCII模式
filename = 'output.txt' ; 注意:如果要进行文件操作,必须先定义,不能直接使用。
;;读入数据
;;define the array
array var(1)
;;3.输入数据
status=open(filename,IO_READ,IO_ASCII)
status=read(var,a_size)
status=close
;;将在z_d初始化为零
z_d=0
;;对数据类型进行转化
z_d=int(var(1))
;;判断是否失稳,如果输入数据为0,则继续循环,如果输入数据为1,则判断失稳并跳出循环将所有杆刚度设为0
if z_d=1 then
command
;;将所有杆设置刚度设为很小
sel beam id=1 prop density 1.9 emod=1.0e8 nu=0.0003 &
xcarea=0.00968 xciy=0.844e-3 xciz=0.844e-3 xcj=0
endcommand
exit
endif
endloop
end
stable
solve
save pcav4.sav
inputdata.exe的源代码:
'工程文件路径
Public strInputPath As String
Public strOutputPath As String
Private Sub Form_Load()
'隐藏窗口
Me.Hide
'定义极限荷载
Dim Plim As Single
'定义杆件失稳标记
'如果杆件失稳则输出1,如果没有失稳则输出0
Dim nFlag As Integer
Plim = 10.44 * 100000# '根据0.85的折减系数而得
'定义单元编号
Dim nEleID As Integer
'定义节点编号
Dim nNodeID As Integer
'定义杆件节点的轴力的分量
Dim F(1 To 3) As Single
'定义字符串变量
Dim str As String
'定义读入数据前忽略的行数
Dim nLine As Integer
nLine = 21
'定义欲读入单元的个数
Dim nElement As Integer
nElement = 10
'定义每个单元的节点数
Dim nNode As Integer
nNode = 2
'定义可供Open语句使用的文件号
Dim nInputFile As Integer
Dim nOutputFile As Integer
'FreeFile函数返回一个Integer,代表下一个可供Open语句使用的文件号
nInputFile = FreeFile
nOutputFile = nInputFile + 1
'打开文本文件
strInputPath = "F:\VB\work\t1.txt"
strOutputPath = "F:\VB\work\output.txt"
Open strInputPath For Input As #nInputFile
Open strOutputPath For Output As #nOutputFile
'读入忽略的行数
For i = 1 To nLine
Line Input #nInputFile, str
Next i
'读入数据
'For i = 1 To nElement
For i = 1 To 1
For j = 1 To nNode
'If j = 1 Then
' Input #nInputFile, nEleID, nNodeID, F(1), F(2), F(3)
'Else
' Input #nInputFile, nNodeID, F(1), F(2), F(3)
'End If
If j = 1 Then
Input #nInputFile, nEleID
End If
Input #nInputFile, nNodeID, F(1), F(2), F(3)
'将轴力值与杆件的极限载荷相对比,如果杆件失稳则输出1,如果没有失稳则输出0
If j = 1 Then
If Plim < (-F(1) * 3) Then
nFlag = 1
Else
nFlag = 0
End If
Write #nOutputFile, nFlag
End If
Next j
Next i
'关闭文件
Close #nInputFile
Close #nOutputFile
'卸载窗体
Unload Me
End Sub
2013-09-17
展开全部
在formload事件中可能不能用,你试试在formActivate事件中加SendKeys看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-17
展开全部
有时一些程序可以过滤sendkeys的,如系统,大部分游戏。建议你们用winio
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-17
展开全部
用VB自带的SENDKEY不好操作
直接用API最快,还可以控制按钮是按下状态还是放开状态
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal Scan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
'这个可以按下键盘上的第二个灯,要什么功能自己加吧
Private Sub Command1_Click()
Call keybd_event(vbKeyCapital, 0, 0, 0) '模拟按下 'vbKeyCapital=20
Call keybd_event(20, 0, &H2, 0) '模拟弹起键
End Sub
键盘键与虚拟键码对照表
字母和数字键 数字小键盘的键 功能键 其它键
键 键码 键 键码 键 键码 键 键码
A 65 0 96 F1 112 Backspace 8
B 66 1 97 F2 113 Tab 9
C 67 2 98 F3 114 Clear 12
D 68 3 99 F4 115 Enter 13
E 69 4 100 F5 116 Shift 16
F 70 5 101 F6 117 Control 17
G 71 6 102 F7 118 Alt 18
H 72 7 103 F8 119 Caps Lock 20
I 73 8 104 F9 120 Esc 27
J 74 9 105 F10 121 Spacebar 32
K 75 * 106 F11 122 Page Up 33
L 76 + 107 F12 123 Page Down 34
M 77 Enter 108 -- -- End 35
N 78 - 109 -- -- Home 36
O 79 . 110 -- -- Left Arrow 37
P 80 / 111 -- -- Up Arrow 38
Q 81 -- -- -- -- Right Arrow 39
R 82 -- -- -- -- Down Arrow 40
S 83 -- -- -- -- Insert 45
T 84 -- -- -- -- Delete 46
U 85 -- -- -- -- Help 47
V 86 -- -- -- -- Num Lock 144
W 87
X 88
Y 89
Z 90
0 48
1 49
2 50
3 51
4 52
5 53
6 54
7 55
8 56
9 57
直接用API最快,还可以控制按钮是按下状态还是放开状态
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal Scan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
'这个可以按下键盘上的第二个灯,要什么功能自己加吧
Private Sub Command1_Click()
Call keybd_event(vbKeyCapital, 0, 0, 0) '模拟按下 'vbKeyCapital=20
Call keybd_event(20, 0, &H2, 0) '模拟弹起键
End Sub
键盘键与虚拟键码对照表
字母和数字键 数字小键盘的键 功能键 其它键
键 键码 键 键码 键 键码 键 键码
A 65 0 96 F1 112 Backspace 8
B 66 1 97 F2 113 Tab 9
C 67 2 98 F3 114 Clear 12
D 68 3 99 F4 115 Enter 13
E 69 4 100 F5 116 Shift 16
F 70 5 101 F6 117 Control 17
G 71 6 102 F7 118 Alt 18
H 72 7 103 F8 119 Caps Lock 20
I 73 8 104 F9 120 Esc 27
J 74 9 105 F10 121 Spacebar 32
K 75 * 106 F11 122 Page Up 33
L 76 + 107 F12 123 Page Down 34
M 77 Enter 108 -- -- End 35
N 78 - 109 -- -- Home 36
O 79 . 110 -- -- Left Arrow 37
P 80 / 111 -- -- Up Arrow 38
Q 81 -- -- -- -- Right Arrow 39
R 82 -- -- -- -- Down Arrow 40
S 83 -- -- -- -- Insert 45
T 84 -- -- -- -- Delete 46
U 85 -- -- -- -- Help 47
V 86 -- -- -- -- Num Lock 144
W 87
X 88
Y 89
Z 90
0 48
1 49
2 50
3 51
4 52
5 53
6 54
7 55
8 56
9 57
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-17
展开全部
对着哪按呢? 使用sendmessage
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询