标题:又是一个双线程的问题,请教解决方法!
只看楼主
suzhanpeng
Rank: 4
等 级:业余侠客
威 望:7
帖 子:72
专家分:248
注 册:2016-9-28
结帖率:75%
 问题点数:0 回复次数:1 
又是一个双线程的问题,请教解决方法!
If Dir(swOldpathname, vbHidden + vbReadOnly + vbSystem) <> "" Then
            Name swOldpathname As swNewpathname
        End If
        Kill (ipath1)
        
        Set Part = swApp.OpenDoc6(swNewpathname, 3, 0, "", longstatus, longwarnings)
        swApp.ActivateDoc2 Y5, False, longstatus   '线程1:这两条是给SolidWorks图纸替换名称打开改名后的图纸,会弹出打开的通用对话框让手动选择对应的改名后零件名。
        
       '线程2:下面是通过获取句柄来让程序自动选择对应的零件名。
        hwnd = FindWindow(vbNullString, "打开 ")
        If hwnd <> 0 Then
            hWnd2 = FindWindowEx(hwnd, 0, "ComboBoxEx32", vbNullString)
            按钮1 = FindWindowEx(hwnd, 0, "Button", "打开") '获取按钮1句柄
            If hWnd2 <> 0 Then
                hWnd3 = FindWindowEx(hWnd2, 0, "ComboBox", vbNullString)
                If hWnd3 <> 0 Then
                     hWnd4 = FindWindowEx(hWnd3, 0, "Edit", vbNullString)
                     
                     If hWnd4 <> 0 Then
                        SendMessage hWnd4, WM_SETTEXT, 0, ByVal Tx2
                        PostMessage 按钮1, BM_CLICK, 0, 0 '单击按钮1
                    End If
                End If
            End If
        End If
        
        longstatus = Part.SaveAs3(swNewpathname, 0, 2)
        swApp.CloseDoc Y5 & ".SLDDRW"
问题是线程1不手动选择零件点击确定线程2不执行。求解决方法!
搜索更多相关主题的帖子: 线程 If Then End hwnd 
2017-12-02 12:35
suzhanpeng
Rank: 4
等 级:业余侠客
威 望:7
帖 子:72
专家分:248
注 册:2016-9-28
得分:0 
双线程问题已经用activex exe方法解决,但是新问题出现了,activex exe怎么自注册,在网上找了好久也没有一个确切的说法,哪位大神懂这一方面的指点一下。
2017-12-03 09:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-483028-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.322184 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved