炮击EXE会导致形式短暂失焦,烦人的闪烁

时间:2014-06-07 04:28:21

标签: winapi vb6

我试图无形地启动一个外部exe(我创建了一个,如果需要我可以修改它)然后使用我的表单中的setparent将接口无缝地交换到一个图片框中。除了在运行shell后在我的表单中出现的简短焦点/非焦点/焦点问题之外,这很有用。我正在传递vbNormalNoFocus,它似乎没什么帮助。我正在启动的外部exe是标准exe,可见性设置为false。

任何人都可以推荐一种解决方案或完全不同的方法吗?

Dim ConvertTwipsToPixelX As Long
Dim ConvertTwipsToPixelY As Long
Dim a As String

counter = counter + 1

'Launch external exe 
Pid = Shell(app.path & "\myexe.exe", vbNormalNoFocus)
'Get handle
mWnd = InstanceToWnd(Pid)

'Create container
Set pic = Me.Controls.Add("VB.Picturebox", "Picture" & counter)
pic.BackColor = RGB(255, 255, 255)

'Swap instance into new container
SetParent mWnd, pic.hwnd

ConvertTwipsToPixelX = Form1.ScaleWidth / Screen.TwipsPerPixelX
ConvertTwipsToPixelY = Form1.ScaleHeight / Screen.TwipsPerPixelY

'Move it
pic.Move 0, 800, Form1.ScaleWidth, Form1.ScaleHeight
Call SetWindowPos(mWnd, pic.hwnd, 0, 0, ConvertTwipsToPixelX, ConvertTwipsToPixelY, SWP_NOZORDER Or SWP_SHOWWINDOW)

'Make it visible
pic.Visible = True

0 个答案:

没有答案