Foxtable(狐表)用户栏目专家坐堂 → [求助]用代码多次打开不同文件求助


  共有2297人关注过本帖树形打印复制链接

主题:[求助]用代码多次打开不同文件求助

帅哥哟,离线,有人找我吗?
ajie5211
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:815 积分:5616 威望:0 精华:1 注册:2015/11/28 14:00:00
[求助]用代码多次打开不同文件求助  发帖心情 Post By:2020/6/4 14:35:00 [显示全部帖子]

示例四

下面的代码,调用记事本打开文件“c:\table.txt”。

Dim Proc As New Process
Proc
.File = "Notepad.exe" '指定要执行的文件
Proc.Arguments =
"c:\table.txt" '指定命令行参数
Proc
.Start()

 

上面的例子用记事本打开了table.txt文件,这时,不关记事本,如何用代码让记事本直接打开另一个abc.txt,原table.txt直接不保存关闭?


 回到顶部
帅哥哟,离线,有人找我吗?
ajie5211
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:815 积分:5616 威望:0 精华:1 注册:2015/11/28 14:00:00
  发帖心情 Post By:2020/6/4 15:01:00 [显示全部帖子]

如果没有办法哪样控制,哪这个例子中的方法3,http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&replyID=3567&ID=135436&skin=1

现在已打开的窗口,用啥代码可以关掉他吗?查看其它文件时,我先关掉已打开的,再重新开一次可以么?用啥代码?


 回到顶部
帅哥哟,离线,有人找我吗?
ajie5211
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:815 积分:5616 威望:0 精华:1 注册:2015/11/28 14:00:00
  发帖心情 Post By:2020/6/5 8:55:00 [显示全部帖子]

试了半天,一直整不定,ShowAppWindow(Caption, State),其中Caption字符型,查找窗口标题包括的字符,3楼方法3的例子中,把exe窗口嵌入后,是不是就没有原来的窗口标题了?这时该怎么用这个指令啊?

 回到顶部
帅哥哟,离线,有人找我吗?
ajie5211
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:815 积分:5616 威望:0 精华:1 注册:2015/11/28 14:00:00
  发帖心情 Post By:2020/6/5 11:08:00 [显示全部帖子]

以下是引用有点蓝在2020/6/5 10:01:00的发言:
ShowAppWindow只能关闭外部的程序,不适合3楼的用法

哪3楼这种还有没有办法,查看其它文件时,先关掉已打开的,再重新开一次窗口开新的文件?


 回到顶部
帅哥哟,离线,有人找我吗?
ajie5211
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:815 积分:5616 威望:0 精华:1 注册:2015/11/28 14:00:00
  发帖心情 Post By:2020/6/5 11:54:00 [显示全部帖子]

以下是引用有点蓝在2020/6/5 11:10:00的发言:
我也不懂

是没明白我的意思,还是你也不知道代码怎么写啊?

3楼的例子,哪个exe窗口到窗口控件Panel1后,能不能通过杀进程的方式去关掉原打开的窗口,然后再次打开新的文件哪?现有的代码如何改比较好?


 回到顶部
帅哥哟,离线,有人找我吗?
ajie5211
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:815 积分:5616 威望:0 精华:1 注册:2015/11/28 14:00:00
  发帖心情 Post By:2020/6/5 14:45:00 [显示全部帖子]

试出来了,把按钮里的代码改成黄色的这样就可以了。

Dim dic As Dictionary(Of String, Integer) = vars("abc")
If dic.ContainsKey("记事本") Then
    'msgbox("已打开")   '已打开的,不再开新的
    'SetForegroundWindow(dic("记事本"))  '已打开的,不再开新的
    'Return   '已打开的,不再开新的

    'SendMessage(dic("记事本"), &H0010, 0, 0)  '用这一句,关掉原窗口时会提示修改是否保存

    Dim ps As  System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()   '不提示修改保存,直接用关进程的方式关掉
    For Each p As System.Diagnostics.Process In ps
        output.show(p.processName)
        If p.ProcessName Like "*记事本*" Then
            p.kill
        End If
    Next
    vars("abc").Remove("记事本")
End If

basemainform.Topmost = True
Dim Proc As New Process
Proc.file = "notepad.exe"
Proc.Start()


System.Threading.Thread.Sleep(1000)

'上面是模拟一个打开的程序
vars("标题") = "记事本"
Dim CallBack As New EnumWindowsProc(AddressOf EnumWindowsProcCallBack)
EnumWindows(CallBack, 0)

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:嵌入exe最大化.rar


 回到顶部