苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 12220|回复: 12

[其他] 怎么能让System.Diagnostics.Process.Start(savePath); 打开的播放器自动隐藏呢

[复制链接]
发表于 2013-10-14 16:34:42 | 显示全部楼层 |阅读模式
怎么能让System.Diagnostics.Process.Start(savePath);
打开的播放器自动隐藏呢?我这个savePath路径是个MP4文件
我试了 ShellExecute(IntPtr.Zero, new StringBuilder("Open"), new StringBuilder(savePath), new StringBuilder(""), new StringBuilder(""), 0);也不可以



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-10-14 16:48:52 | 显示全部楼层
你说的隐藏是什么意思,是不是把软件最小化,这个好像有Api你查询一下,启动之后调用一下应该就行了
 楼主| 发表于 2013-10-14 16:55:05 | 显示全部楼层
站长苏飞 发表于 2013-10-14 16:48
你说的隐藏是什么意思,是不是把软件最小化,这个好像有Api你查询一下,启动之后调用一下应该就行了

嗯,我用了这个        [DllImport("shell32.dll")]
        public static extern int ShellExecute(IntPtr hwnd, StringBuilder lpszOp, StringBuilder lpszFile, StringBuilder lpszParams, StringBuilder lpszDir, int FsShowCmd);

引用代码是:

ShellExecute(IntPtr.Zero, new StringBuilder("Open"), new StringBuilder(savePath), new StringBuilder(""), new StringBuilder(""), 0)

还是不隐藏呢。

 楼主| 发表于 2013-10-14 16:57:33 | 显示全部楼层
站长苏飞 发表于 2013-10-14 16:48
你说的隐藏是什么意思,是不是把软件最小化,这个好像有Api你查询一下,启动之后调用一下应该就行了

嗯,我这个路径下是MP4文件。因为只有音频没有视频。就不想让她默认的播放器(比如暴风影音)弹出来了。隐藏或者最小化都行。
 楼主| 发表于 2013-10-14 16:59:37 | 显示全部楼层
站长苏飞 发表于 2013-10-14 16:48
你说的隐藏是什么意思,是不是把软件最小化,这个好像有Api你查询一下,启动之后调用一下应该就行了

嗯,我用了这个        [DllImport("shell32.dll")]
        public static extern int ShellExecute(IntPtr hwnd, StringBuilder lpszOp, StringBuilder lpszFile, StringBuilder lpszParams, StringBuilder lpszDir, int FsShowCmd);

引用代码是:

ShellExecute(IntPtr.Zero, new StringBuilder("Open"), new StringBuilder(savePath), new StringBuilder(""), new StringBuilder(""), 0)

还是不隐藏呢。

发表于 2013-10-14 17:03:37 | 显示全部楼层
[code=csharp]最小化窗口:

ApiCalls.ShowWindow(Form.ActiveForm.Handle,2);[/code]


[code=csharp] /// <summary>

              /// 最大化窗口,最小化窗口,正常大小窗口;

              /// </summary>

              [DllImport("user32.dll", EntryPoint="ShowWindow", CharSet=CharSet.Auto)]
public static extern int ShowWindow(IntPtr hwnd,int nCmdShow);
[/code]


[code=csharp]最大化窗口:

ApiCalls.ShowWindow(Form.ActiveForm.Handle,3);

最小化窗口:

ApiCalls.ShowWindow(Form.ActiveForm.Handle,2);

恢复正常大小窗口:

ApiCalls.ShowWindow(Form.ActiveForm.Handle,1);[/code]
发表于 2013-10-14 17:07:45 | 显示全部楼层
这个你再查查怎么得到窗口的句柄就行了
发表于 2013-10-14 17:11:07 | 显示全部楼层
或者你可以试试我下面的方法,这个方法我估计可以
调用Win32 API。
1.api[code=csharp]using System.Runtime.InteropServices;[/code]
2.方法
[code=csharp]//
        //#define SW_HIDE             0 //隐藏窗口,活动状态给令一个窗口
        //#define SW_SHOWNORMAL       1 //用原来的大小和位置显示一个窗口,同时令其进入活动状态
        //#define SW_NORMAL           1
        //#define SW_SHOWMINIMIZED    2
        //#define SW_SHOWMAXIMIZED    3
        //#define SW_MAXIMIZE         3
        //#define SW_SHOWNOACTIVATE   4 //用最近的大小和位置显示一个窗口,同时不改变活动窗口
        //#define SW_SHOW             5 //用当前的大小和位置显示一个窗口,同时令其进入活动状态
        //#define SW_MINIMIZE         6 //最小化窗口,活动状态给令一个窗口
        //#define SW_SHOWMINNOACTIVE  7 //最小化一个窗口,同时不改变活动窗口
        //#define SW_SHOWNA           8 //用当前的大小和位置显示一个窗口,不改变活动窗口
        //#define SW_RESTORE          9 //与 SW_SHOWNORMAL  1 相同
        //#define SW_SHOWDEFAULT      10
        //#define SW_FORCEMINIMIZE    11
        //#define SW_MAX              11
        [DllImport("kernel32.dll")]
        public static extern int WinExec(string exeName, int operType);[/code]
3.调用方法

[code=csharp]WinExec(@"C:\WINDOWS\system32\cmd.exe",5);[/code]
 楼主| 发表于 2013-10-14 17:21:30 | 显示全部楼层
站长苏飞 发表于 2013-10-14 17:11
或者你可以试试我下面的方法,这个方法我估计可以
调用Win32 API。
1.api

站长,就和没打开一样。连声音都没有播放。
发表于 2013-10-14 17:23:50 | 显示全部楼层
冰忆 发表于 2013-10-14 17:21
站长,就和没打开一样。连声音都没有播放。

用的那个方法怎么写的
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-28 13:50

© 2014-2021

快速回复 返回顶部 返回列表