CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

=====急,高级难题,有人做过多显示器编程的吗?

楼主whmjw(明年今日十年之后)2006-08-26 11:13:38 在 .NET技术 / C# 提问

我在做一个娱乐收银管理系统时  
  客户提了这么一个要求,前台营业部分只给收银员看,但当结账时就需要给客人看结账部分的操作,且当不结账时,给客人看的那台显示器只显示公司宣传画面,而且他们要求双屏显示,  
   
  这样就遇到一个问题,同一个电脑只有一块显卡,但支持两个显示器,分别为主显示器与辅显示器,主显示器给收银员用,辅显示器给客人用,不同之处在于,当不是结账时,主显示器只显示我们的收银软件界面,辅显示器显示客户的公司宣传画面,但当结账时,主显示器与辅显示器要同步,都把结账界面显示出来  
   
  问题点数:100、回复次数:50Top

1 楼KidAn(迪迪熊)回复于 2006-08-26 11:16:47 得分 0

不懂~~关注~~~  
  不过个人认为要对硬件有所操作~~估计.NET够呛Top

2 楼winner2050(winner)回复于 2006-08-26 11:41:45 得分 0

根本不用你管的。  
   
  本来就支持了。  
   
  显卡,操作系统都支持了,关键没有用过而已,不知道怎么插线。  
  跟电脑同时连接电脑显示器跟电视一样。Top

3 楼huangyubinde(小菜)回复于 2006-08-26 11:44:14 得分 0

upTop

4 楼oldmoon(电子商务人,电子商务路)回复于 2006-08-26 11:45:27 得分 0

楼上的,……  
   
   
  楼主想用.net操作硬件,真的会够呛!!!Top

5 楼whmjw(明年今日十年之后)回复于 2006-08-26 11:47:57 得分 0

楼上的,那是全部同步呀,按你的说法我也知道不需要任何编程就可以实现,已经有客户这么做了,  
  但这次的客户要求很怪,  
  他需要的是部分同步,请楼上仔细看看我的要求吧  
  步骤一   即除了收银结账之外其他收银操作不在辅显示器上显示,只在主显示器上显示,这时辅       显示器上只显示客户公司的宣传画面  
  步骤二   只有结账时才同步在主显示器与辅显示器上的显示,结完账就回到步骤一了Top

6 楼Knight94(愚翁)回复于 2006-08-26 11:59:23 得分 2

我见过多显示器分屏的做法,就是把内容分多个屏幕来显示,你可以参看  
  http://community.csdn.net/Expert/TopicView3.asp?id=4743664  
   
  如果不是的话,你最好看看显示硬件是否提供接口来控制。Top

7 楼whmjw(明年今日十年之后)回复于 2006-08-26 12:12:23 得分 0

谢谢楼上给的连接,我看了还是不太满足我的要求  
  Top

8 楼jointan()回复于 2006-08-26 12:13:27 得分 0

通过操作系统提供的接口估计是实现不了  
  解决方式有2:  
  1,购买专业的硬件或请硬件开发商开发专业的硬件,这个案例见过,估计这种硬件是存在的.  
  2,用两台PC机解决这个问题,如果客户可以提供两台PC机的话,完全可以通过编程实现.  
   
   
   
   
   
   
   
   
   
   
   
  Top

9 楼winner2050(winner)回复于 2006-08-26 12:21:22 得分 0

看看了9550显卡支持  
   
  主屏幕输出  
   
  VGA   D-Sub(模拟)  
   
  DVI-I(模拟与数字)  
   
  DVI-I(模拟与数字)  
   
  VGA   D-Sub(模拟)  
   
  VGA   D-Sub(模拟)  
   
   
  次屏幕输出  
   
  DVI-D(数字)  
   
  DVI-I(模拟与数字)  
   
  DVI-I(模拟与数字)  
   
  DVI-I(模拟与数字)  
   
  DVI-I(模拟与数字)  
   
   
  3D立体眼镜接头  
   
   
  根本不用你编程。插进去就OK了。  
  翻番你的显卡说明,里面有。Top

10 楼winner2050(winner)回复于 2006-08-26 12:25:01 得分 0

帮你找到了  
  http://download.msi.com.cn/cgi/cgi-bin/topic.cgi?forum=15&topic=79Top

11 楼LHA(心动)回复于 2006-08-26 12:35:20 得分 1

根本不需要这么麻烦  
   
  无需考虑硬件  
   
  你有没有自己接过两个显示器?    
   
  如果试过的话应该明白   可以使用一个为主显示器,另一个为辅显示器  
   
  两个可以显示不同的桌面内容,  
   
  假设收银台使用主显示器A,   客户看显示器B  
   
  那么你的程序A的操作界面都显示在A上,  
   
  当操作结束时,将需要显示的内容,写入一个单独的结帐表中,  
   
  然后另外一个程序B,每3秒从数据库中读取是否有未显示的结帐内容  
   
  如果有就读取,并显示在B显示器上。  
   
  这样就非常简单啊,就按平时一样的写程序,只要增加一个程序B就可以了  
   
  Top

12 楼Reeezak(坚持信念)回复于 2006-08-26 12:38:38 得分 0

是不是准备配备两块显卡?或是别的硬件?至少是支持双显示器的显卡吧  
   
  如果不是这样的话,根本是想都别想  
   
  想想显卡的工作方式吧  
   
  Top

13 楼whmjw(明年今日十年之后)回复于 2006-08-26 12:38:38 得分 0

楼上的,我看了说明书,没有这方面的内容呀,要真的有这么简单就好了  
    我的显卡是双头,用的是扩展模式,没有用复制模式  
   
   
  Top

14 楼Reeezak(坚持信念)回复于 2006-08-26 12:39:58 得分 0

我曾经做了这么一个东西  
  不过是分屏用的  
  就是(1024   ×   2)   ×   768Top

15 楼whmjw(明年今日十年之后)回复于 2006-08-26 12:48:33 得分 0

 
  winner2050(winner   你讲的是如何配置好双头显示,这个我已经做好了,关键就是不知道如何满足客户那个怪要求  
   
  LHA(心动)   你的建议我考虑过,但客户要求的是收银员进入结账界面的任何操作在辅显示器上都显示出来  
   
  Reeezak(坚持信念)我的显卡就是双头的,配置已经成功了  
   
    我的显卡是双头,用的是扩展模式,没有用复制模式Top

16 楼whmjw(明年今日十年之后)回复于 2006-08-26 12:50:45 得分 0

其实就是在结账时,把主显示器上的界面上所有任何操作克隆到辅显示器上,一旦结完账,辅显示器就只显示客户的公司宣传画了Top

17 楼Reeezak(坚持信念)回复于 2006-08-26 12:57:07 得分 10

哦  
  运来仅仅是这样啊  
  那就简单了  
   
  有很多这样的软件的,而且是免费的Top

18 楼Reeezak(坚持信念)回复于 2006-08-26 12:58:40 得分 50

Multi-Mon  
  还有  
  UltraMon  
   
  读书的时候,我们实验室就是用的UltraMon,不过这个是要钱的Top

19 楼whmjw(明年今日十年之后)回复于 2006-08-26 12:59:31 得分 0

楼上,你说一下如何做,用什么软件?Top

20 楼herolzh()回复于 2006-08-26 13:30:59 得分 0

关注.最近也在研究这个问题!Top

21 楼ufidachzh()回复于 2006-08-26 13:47:14 得分 0

很简单   把你的程序的FORM的Location   设为X[X>你的主显示器的分辨率的横坐标值]   他就会自动显示到第二显示器上的   当然需要对系统显示属性进行设置   使副显示器成为主显的延续  
   
  以前读大学时跟老师做医疗设备的时候   要提供医生和病人双显   就这样解决的   开发工具用的BCB   不知道是不是可以帮助你Top

22 楼coowoo(coowoo)回复于 2006-08-26 14:13:03 得分 0

直接做两个窗口就行了,一个给收银员的,一个给顾客看,不过这2窗口在不同的显示器而已,你要做得知是设一下窗口的位置就可以了Top

23 楼GXY2005(民工甲:杀富济贫,打土豪分田地)回复于 2006-08-26 14:18:31 得分 5

很简单   把你的程序的FORM的Location   设为X[X>你的主显示器的分辨率的横坐标值]   他就会自动显示到第二显示器上的   当然需要对系统显示属性进行设置   使副显示器成为主显的延续  
   
  以前读大学时跟老师做医疗设备的时候   要提供医生和病人双显   就这样解决的   开发工具用的BCB   不知道是不是可以帮助你  
  --------------------------  
  樓上的思路很好,你的程序的FORM設計為并列兩個,分別是你要在主次中顯示的內容。我想這是你可以編程實現的最好方法.Top

24 楼xubin_sh(NBX)回复于 2006-08-26 15:24:49 得分 0

//   找到第二个屏幕的工作区域  
  foreach   (Screen   s   in   Screen.AllScreens)  
  {  
  if   (!   s.Primary)  
  {  
  Rectangle   rect   =   s.WorkingArea;  
  }  
  }Top

25 楼whmjw(明年今日十年之后)回复于 2006-08-26 15:28:29 得分 0

很简单   把你的程序的FORM的Location   设为X[X>你的主显示器的分辨率的横坐标值]   他就会自动显示到第二显示器上的   当然需要对系统显示属性进行设置   使副显示器成为主显的延续  
   
  以前读大学时跟老师做医疗设备的时候   要提供医生和病人双显   就这样解决的   开发工具用的BCB   不知道是不是可以帮助你  
   
   
  那这样只是把窗口放在辅显示器上,主显示器也就没有了,那收银员怎么操作?要知道,一般这种显示器是双面的,主显示器只对着收银员,收银员是看不到辅显示器上的界面的Top

26 楼herolzh()回复于 2006-08-26 15:51:37 得分 0

this.ClientSize   =   new   System.Drawing.Size(x,   768);  
  楼上说得是c#里的这个x的值吗?Top

27 楼GXY2005(民工甲:杀富济贫,打土豪分田地)回复于 2006-08-26 16:04:45 得分 5

 
  很简单   把你的程序的FORM的Location   设为X[X>你的主显示器的分辨率的横坐标值]   他就会自动显示到第二显示器上的   当然需要对系统显示属性进行设置   使副显示器成为主显的延续  
   
  以前读大学时跟老师做医疗设备的时候   要提供医生和病人双显   就这样解决的   开发工具用的BCB   不知道是不是可以帮助你  
   
   
  那这样只是把窗口放在辅显示器上,主显示器也就没有了,那收银员怎么操作?要知道,一般这种显示器是双面的,主显示器只对着收银员,收银员是看不到辅显示器上的界面的  
   
  -----------------  
  辅显示器显示超过界面部分,主显示器正常显示啊?只是你界面设计为两个正常宽度!Top

28 楼ilovechao1314(有点晕了)回复于 2006-08-26 16:18:07 得分 0

markTop

29 楼ydejun(今天不休息)回复于 2006-08-26 16:36:53 得分 0

做两个程序,主程序在结帐的时候给客户程序发消息,让其显示结帐信息,结帐完显示公司显示  
   
  这样两个窗体的位置也好安排  
   
  ------------------------------啥叫签名?Top

30 楼engineer_net()回复于 2006-08-26 16:48:10 得分 0

关注 !!!Top

31 楼vividw(vividw)回复于 2006-08-26 19:59:59 得分 8

有个简单的办法   如果显卡上带   dvi接口   可以花   几十块钱,买一个DVI转VGA的转接器  
  可以双   输出。  
   
  理论上vga口   通过   放大   可以   双输出的   。。   不知道有相关的   卡么   。。  
   
  你想实现   双显示器     关键是第2个显示器接到什么地方。。  
  硬件直接转换显卡上输出信号。。pci上加卡输出   vga   ..   (用过类似的。   vga转   rj45   远程输出到   led)  
  或者对   1vga输出进行放大转换。。  
  Top

32 楼vividw(vividw)回复于 2006-08-26 20:03:25 得分 0

还可以   采取   超市的办法     小的   液晶屏   lcd屏   直接   串口输出钱   还节约显示器成本。。Top

33 楼perfectmyth()回复于 2006-08-26 20:04:38 得分 0

关注中,没弄过!Top

34 楼Yellow198267(才高七八斗,学富五六车,改行三四次,月入一两千!)回复于 2006-08-26 20:12:03 得分 0

关注Top

35 楼sjjf(水晶剑锋)回复于 2006-08-26 20:29:13 得分 0

markTop

36 楼fds2003(Hunter)回复于 2006-08-26 22:07:52 得分 0

MARKTop

37 楼whmjw(明年今日十年之后)回复于 2006-08-26 22:40:21 得分 0

楼上有人误解我的意思了,主与辅显示器在结账时都显示同一个窗口,即主显示器有一个窗口,辅显示器也有一个窗口,两者界面完全一模一样   不是说主窗口放不下我的结账界面,而是在结账时主与辅同时显示该结账界面,这时收银员对该客人进行结账任何操作,客人都可以看到,一旦结完账,打了结账单,辅显示器就立即转到客户公司宣传画的界面上来,主显示器还是还原到我们程序的营业前台界面  
   
  主显示器上有一个支持双头的显卡,好像是Ati的,用的是扩展模式,这些我都调好了  
   
  说穿了其实就是一句,结账操作时两台显示器界面同步,结完账就异步了  
   
  不知道我说明白了没有,希望还有高人出现Top

38 楼ezrick()回复于 2006-08-26 22:55:53 得分 0

楼主啊,上面的都已经写得购清楚了,  
   
  2个显示器可以分别显示2个窗体  
  自己程序处理好2个窗口显示的内容就ok拉,很容易的拉  
  Top

39 楼whmjw(明年今日十年之后)回复于 2006-08-26 23:25:35 得分 0

楼上的那我问你,如果在两个窗口上同步呢,  
   
  比如我在主显示器上把光标放在修改实收金额的文本框上,这时辅窗口如何同步呢?Top

40 楼gzlucky(Lucky)回复于 2006-08-27 05:25:35 得分 5

看来没有用过双屏显示的都觉得这是一个很难的问题。  
   
  其实上真的是非常简单,双屏显示是否同步完全是你的程序实现的,只不过同一数据在两个不同的地方进行显示。  
  如果还不明白的话,那么我们简单一些。首先先抛掉什么谁能不能看的问题。在同一个屏幕上,有两个不同的区域,一个用来给显示收银员看的数据,另一个是用来显示客户看的数据,你的程序怎么写呢?你可能是做两个窗口,一个显示收银员看的数据窗口,另一个是给客户看的窗口。  
   
  这个程序写好后,在双屏的机器上运行,只要把收银员的窗口放在收银员的显示器上,客户看的窗口直接拖动到客户看的显示器上就可以了。当然你可以用程序的方式来实现自动显示到另一屏上。Top

41 楼wsxqaz(原来可以改昵称)回复于 2006-08-27 08:15:09 得分 0

让他自己设置,将桌面设置为扩展桌面,将那个要显示给用户看的东西手动拖到扩展的桌面上运行这样主显示器和辅显示器没有干扰,只要在需要时主显示器上运行的程序调用辅助显示器上的程序就可以,就像我在家里,一边接电视看电影,主电脑显示器上网互相不干扰,问题是怎么将那个显示给客户看的东西自动放到扩展桌面上Top

42 楼coolstarhty(语言多了,编程不好学啊)回复于 2006-08-27 08:43:16 得分 2

晕............  
  很简单的问题嘛  
  和我做银行叫号系统一样,关键是决定什么屏显示什么内容罢了Top

43 楼whmjw(明年今日十年之后)回复于 2006-08-27 10:10:17 得分 0

要是像楼上说的那简单就好了,关键是娱乐系统结账没有那么简单,进入结账界面,这时收银员的作任何操作主辅显示器都   要同步,结账时可能会打折,会刷会员卡,或者签单,免单(这时要另弹出一个窗口显示)这时也需要同步,一旦结完账,主辅显示器就分开显示不同的内容了,主显示我们的结账界面,辅显示客户公司   的宣传画  
   
   
  到目前为止没有,还没有解决这个问题,我再挂   一天,实在不行,想别的办法吧:)Top

44 楼whw123456()回复于 2006-08-27 10:31:10 得分 0

关注~Top

45 楼kingtoo010()回复于 2006-08-27 11:10:35 得分 0

帮顶..接分...  
  ------------------------------------------------------------------------------------  
  100M.Net空间+50M企业邮局=60元/年  
  100M.Net空间+国际顶级域名=100元/年  
  国际顶级域名.com.net.cn=50元/年  
  本站申请域名可绑定免费10M   Asp.Net空间  
  1000M.Net空间   +   100M   MsSql数据库   +   1000M企业邮局   +   顶级域名=600元/年  
  数据库 企业邮局 网站推广 整机租用 美国空间 网站建设 均有售  
  还有很多优惠套餐提供给各个用户层.  
  有意者可联系电话:021-64802212   传真:021-64802212    
  咨询信箱:info@kingtoo.com   咨询OICQ:68311305,379620139   81778640Top

46 楼wuchang(无常)回复于 2006-08-27 14:28:34 得分 5

我做过类似的项目。  
   
  现在的显卡大部分都有二个输出,VGA/DVI/S端子。有些有3个输出的,但要在BIOS里设置只能同时用二个。  
   
  win2000/xp/2003内置对多显示器支持,接上显示器后再开机系统就会认得出双输出了。  
  在显示器的属性里选第二个显示器的“将桌面扩展到此显示器上”,然后可分别设置二个显示器的分辨率。  
   
  要在二个显示器上显示Form其实也就是对设置Form的坐标就行了。  
  比如二个显示器的分辨率都是800*600,那么第一个显示器的可视范围就是(0,1,800,600),第二个显示器的坐标范围是(801,601,1600,1200)。  
  要把Form显示在哪个显示器上就把left,top属性设置到相应的显示器显示区域中就行了。  
  在.net   2.0中system.windows.form命名空间里有个Screen类可以获取多显示器的信息的。  
  可以参看我的这篇博客  
  http://www.cnblogs.com/wuchang/archive/2006/07/01/440609.html  
   
  还不行的可以联系我  
  wuchang@guet.edu.cn  
  qq   3263262Top

47 楼LHA(心动)回复于 2006-08-27 15:40:14 得分 0

真的不行的话,当进入结帐的时候,程序开始针对A抓屏   ,并显示在B显示器上  
   
  Top

48 楼Climb_Tree(climbTree@msn.com)回复于 2006-08-27 15:52:47 得分 0

.net能实现吗Top

49 楼yi_jun_jun()回复于 2006-08-27 18:10:11 得分 7

给一个很笨的方法。  
  采用两个程序分别控制两个显示器的画面内容。假设程序A控制显示器A1,程序B控制显示器B2。  
  1。平时显示器A1面向营业员,可以显示业务画面,显示器B1显示固定图片。  
  2。当结帐的时候,程序A把显示器A1的画面(数据结构表示)+业务员操作(对数据结构操作)复制给一个临界区,而且通知程序B去读临界区,并且把业务员操作在显示器B1“重播”就可以了。这样就变成“读-写者”的问题了。程序A得到业务员操作,并不直接响应,而是记录下来,存在临界区,然后分别通知程序A中响应操作的部分和程序B1对操作响应。  
  3。当得到业务员结帐的命令,向程序B发送,不再读临界区的命令,让程序B去显示固定图片就可以。Top

50 楼whmjw(明年今日十年之后)回复于 2006-10-07 17:01:09 得分 0

我自己已经解决了:)Top

51 楼rich998()回复于 2006-12-04 17:25:16 得分 0

受益了,顶,其实就是做桌面扩展。但是在net20中更为方便Top

相关问题

关键词

得分解答快速导航

  • 帖主:whmjw
  • Knight94
  • LHA
  • Reeezak
  • Reeezak
  • GXY2005
  • GXY2005
  • vividw
  • gzlucky
  • coolstarhty
  • wuchang
  • yi_jun_jun

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo