软件设计深度挖掘(二)(仅针对windows平台)实现杂谈篇

软件工程部分 专栏收录该内容
4 篇文章 0 订阅

软件设计深度挖掘(二)(仅针对windows平台)实现杂谈篇

    既然叫设计当然我们不能撇开它的可实现性了,上一节我说过,具体的系统
分析员应该具备的知识应该是错综百代,广博精微的!如果说软件的设计是经验
的积累,那么这些技术实现就是其中最重要的一环,因为对于我们来讲,技术的
更新远远超过了设计思想的更新。我们不能置基础而不顾,设计空中楼阁。下面
我们就讲一讲这些放面的涉及范围和解决方法。里面可能不是最优但我想足以抛
砖引玉了。
    现在围绕在我们面前的技术问题很多,很杂。不像10年前那么单纯,实现一个
问题的途径一般只有一两种,现在的解决方法真是层出不穷,黑白道的方法都有了。
每次出现一个新版本的东西就要学很久,现在我们应该看清楚了,我们不可能永远
走在浪尖,我们不能靠身体和知识搏斗了,要靠思想。msdn有谁看完了呢,没有!
有谁编写过300万行代码,也是没有,你不可能来实践所有的想法,因为你没有时间。
你只能针对某一个问题进行研究,就象爱因斯坦不会做饺子一样,我们都有各自的
领域。有时我们会发现某个人懂得真多,大家别信,大部分是想法,不是实践。系统
分析员要求就是想法的正确率要非常高了而已。因此这才是真正的经验,这个经验
有可能完成一项创举,也有可能埋葬一个工程。下面就我的经验来谈谈windows
下的各种技术实现方法。

    首先给大家一个例子:它完成的功能是将windows计算器的菜单变成记事本的
菜单:
        HWND hWndC;
 HWND hWndE;
 HMENU hMenu;
 hWndC = ::FindWindow("SciCalc",NULL);
 hWndE = ::FindWindow("Notepad",NULL);
 hMenu = ::GetMenu(hWndE);
 ::SetMenu(hWndC,hMenu);
将这段代码加入你的程序,一个按钮,或者菜单中,将计算器和记事本打开(notepad)
就可以允许看效果了。这个原理可以用来动态改变菜单,插入,删除,修改窗口和菜单的,也就是完全控制一个窗口是非常简单的,哈哈不信,试试啊!
    菜单变化后不能响应事件了对吧,那时ID号不对了嘛,这里仅仅做个示范,后面会详细解释的。从这个例子你应该可以理解到window的东西都是相通的,有很多原来认为很复杂的东西其实是非常简单的,只是我们的经验不足而已。不相信吗?那么我们再作个试验:如果你正确安装了directx8.0 SDK的话将下面编译成执行文件。(控制台工程)
#include <dshow.h>
void main(void)
{   //下面两个东西一个是建立图形用的类,一个是控制播放等操作的类(是接口)
    IGraphBuilder *pGraph;
    IMediaControl *pMediaControl;
    //下面这个一定要有了,就是说我的程序里面要用com组件的意思
    CoInitialize(NULL);
   
    // 找那个可以用的函数名称(就是接口)
    CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
                        IID_IGraphBuilder, (void **)&pGraph);
    pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
   

    // 下面的东西是播放函数调用了,其中"C://Example.avi"可以自己更改的
    // 这个东西可以播放很多东西,不只是avi,不信试试,什么图像,什么视
    // 频都可以(夸张了一点)
    pGraph->RenderFile(L"C://Example.avi", NULL);
    pMediaControl->Run();
    // 清楚原来使用的那个函数占用的内存了
    pMediaControl->Release();
    pGraph->Release();
    //告诉windows我们不用com组件了
    CoUninitialize();
}
   这个例子我们能体会到些什么了吧,什么显示jpg,显示mpeg了等等,我们有这么
简单的办法,很不错吧!
   再随便讲一个多显示器的东西,对于初学着来说好像很难啊,其实呢,
HMONITOR MonitorFromWindow( HWND hwnd, DWORD dwFlags);
这个函数就搞定了,编写多显示器的函数一共才6个,一个回调,一个枚举,一个info,下面就全是MonitorFrom×××了,觉得不可思议了吧!就这么简单.

   其实这些都是快餐,什么意思呢?别人没有涉及到这个领域就不会清楚里面的难易
程度,说一两句就明白了,这种办法很多也是靠经验的积累,但这种办法对于系统分析员来讲是有点花拳绣腿了。

我们后面将会步入正题,进行我们的开发之路。比如网络视频,什么语音通讯中心,vod,流媒体的开发等等了,我会一一讲解。

 
       

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
<p style="font-size:16px;color:#666666;"> <img src="https://img-bss.csdn.net/202001311426171105.png" alt="" /> </p> <p style="font-size:16px;color:#666666;"> <strong><span style="font-size:20px;">课程目标</span></strong> </p> <p style="font-size:16px;color:#666666;"> 《从零开始学Scrapy网络爬虫》从零开始,循序渐进地介绍了目前流行的网络爬虫框架Scrapy。即使你没有任何编程基础,学习起来也不会有压力,因为我们有针对性地介绍了Python编程技术。另外,《从零开始学Scrapy网络爬虫》在讲解过程中以案例为导向,通过对案例的不断迭代、优化,让读者加深对知识的理解,并通过14个项目案例,提高学习者解决实际问题的能力。 </p> <p style="font-size:16px;color:#666666;"> <br /> </p> <p style="font-size:16px;color:#666666;"> <strong><span style="font-size:20px;">适合对象</span></strong> </p> <p style="font-size:16px;color:#666666;"> 爬虫初学者、爬虫爱好者、高校相关专业的学生、数据爬虫工程师。 </p> <p style="font-size:16px;color:#666666;"> <br /> </p> <p style="font-size:16px;color:#666666;"> <span style="font-size:20px;"><strong>课程介绍</strong></span> </p> <p style="font-size:16px;color:#666666;"> 《从零开始学Scrapy网络爬虫》共13章。其中,第1~4章为基础篇,介绍了Python基础、网络爬虫基础、Scrapy框架及基本的爬虫功能。第5~10章为进阶篇,介绍了如何将爬虫数据存储于MySQL、MongoDB和Redis数据库中;如何实现异步AJAX数据的爬取;如何使用Selenium和Splash实现动态网站的爬取;如何实现模拟登录功能;如何突破反爬虫技术,以及如何实现文件和图片的下载。第11~13章为高级篇,介绍了使用Scrapy-Redis实现分布式爬虫;使用Scrapyd和Docker部署分布式爬虫;使用Gerapy管理分布式爬虫,并实现了一个抢票软件的综合项目。 </p> <p style="font-size:16px;color:#666666;"> <span style="color:#FF0000;">      由于目标网站可能会对页面进行改版或者升级反爬虫措施,如果发现视频中的方法无法成功爬取数据,敬请按照页面实际情况修改XPath的路径表达式。视频教程主要提供理论、方法支撑。我们也会在第一时间更新源代码,谢谢!</span> </p> <p style="font-size:16px;color:#666666;"> <img src="https://img-bss.csdn.net/202001311426306665.png" alt="" /> </p> <p style="font-size:16px;color:#666666;"> <strong><span style="font-size:20px;">课程特色</span></strong> </p> <p style="font-size:16px;"> <img src="https://img-bss.csdn.net/202001311426415123.png" alt="" /> </p> <div> <br /> </div>
<div style="color:rgba(0,0,0,.75);"> <span style="color:#4d4d4d;"> </span> <div style="color:rgba(0,0,0,.75);"> <span style="color:#4d4d4d;"> </span> <div style="color:rgba(0,0,0,.75);"> <div style="color:rgba(0,0,0,.75);"> <span style="color:#4d4d4d;">当前课程中商城项目的实战源码是我发布在 GitHub 上的开源项目 newbee-mall (新蜂商城),目前已有 6300 多个 star,</span><span style="color:#4d4d4d;">本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 大部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 商城项目功能的讲解,让大家实际操作并实践上手一个大型的线上商城项目,并学习到一定的开发经验以及其中的开发技巧。<br /> 商城项目所涉及的功能结构图整理如下:<br /> </span> </div> <div style="color:rgba(0,0,0,.75);">   </div> <div style="color:rgba(0,0,0,.75);"> <p style="color:#4d4d4d;"> <img alt="modules" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3N0b3JlL25ld2JlZS1tYWxsLXMucG5n?x-oss-process=image/format,png" /> </p> </div> <p style="color:rgba(0,0,0,.75);"> <strong><span style="color:#e53333;">课程特色</span></strong> </p> <p style="color:rgba(0,0,0,.75);">   </p> <div style="color:rgba(0,0,0,.75);">   </div> <div style="color:rgba(0,0,0,.75);"> <ul> <li> 对新手开发者十分友好,无需复杂的操作步骤,需 2 秒就可以启动这个完整的商城项目 </li> <li> 最终的实战项目是一个企业级别的 Spring Boot 大型项目,对于各个阶段的 Java 开发者都是极佳的选择 </li> <li> 实践项目页面美观且实用,交互效果完美 </li> <li> 教程详细开发教程详细完整、文档资源齐全 </li> <li> 代码+讲解+演示网站全方位保证,向 Hello World 教程说拜拜 </li> <li> 技术栈新颖且知识点丰富,学习后可以提升大家对于知识的理解和掌握,可以进一步提升你的市场竞争力 </li> </ul> </div> <p style="color:rgba(0,0,0,.75);">   </p> <p style="color:rgba(0,0,0,.75);"> <span style="color:#e53333;">课程预览</span> </p> <p style="color:rgba(0,0,0,.75);">   </p> <div style="color:rgba(0,0,0,.75);">   </div> <div style="color:rgba(0,0,0,.75);"> <p style="color:#4d4d4d;"> 以下为商城项目的页面和功能展示,分别为: </p> </div> <div style="color:rgba(0,0,0,.75);"> <ul> <li> 商城首页 1<br /> <img alt="" src="https://img-bss.csdnimg.cn/202103050347585499.gif" /> </li> <li> 商城首页 2<br /> <img alt="" src="https://img-bss.csdn.net/202005181054413605.png" /> </li> <li>   </li> <li> 购物车<br /> <img alt="cart" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3QvY2FydC5wbmc?x-oss-process=image/format,png" /> </li> <li> 订单结算<br /> <img alt="settle" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3Qvc2V0dGxlLnBuZw?x-oss-process=image/format,png" /> </li> <li> 订单列表<br /> <img alt="orders" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3Qvb3JkZXJzLnBuZw?x-oss-process=image/format,png" /> </li> <li> 支付页面<br /> <img alt="" src="https://img-bss.csdn.net/201909280301493716.jpg" /> </li> <li> 后台管理系统登录页<br /> <img alt="login" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3QvbWFuYWdlLWxvZ2luLnBuZw?x-oss-process=image/format,png" /> </li> <li> 商品管理<br /> <img alt="goods" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3QvbWFuYWdlLWdvb2RzLnBuZw?x-oss-process=image/format,png" /> </li> <li> 商品编辑<br /> <img alt="" src="https://img-bss.csdnimg.cn/202103050348242799.png" /> </li> </ul> </div> </div> </div> </div>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页

打赏

kathywp

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值