默认打印机是不是联网打印机,如果cad找不到这个打印机将会很慢才打开cad的界面(它真的不是卡死了,而是找不到...)

奇妙的是桌子至今都没有利用新建线程的方式来控制这个打印机等待,而是直接在主程序上面实现(cad公司是知道这回事的,因为我在官网有解答).....

一种想法就是双击cad.exe的时候插入某些代码到exe前面,这个对于敲c++的人恐怕不难...

那cad.net只有在界面加载之后才能运行,那么第一次启动的时候就等一下,以至于我下面的代码能执行,并提示...

为什么需要提示就不用我多说了吧....(我本来也是知道的,但是这次我重新安装了系统之后,我又忘了打印机等待这件事....

所以把此代码添加到加载后立即运行的class里面~(继承IExtensionApplication的class啦)

或者新建一个线程...(在线程内死循环以下代码~)

            try
{
var dayinjis = LocalPrinter.GetLocalPrinters();
if (dayinjis != null && dayinjis.Length > )
{
if (dayinjis[][] == '\\')//第一个是默认打印机,如果是网络打印机
{
bool fa = false;
const string pdf = "Microsoft Print to PDF";
if (dayinjis.Contains(pdf))
{
fa = Win32api.SetDefaultPrinter(pdf);
}
else
{
foreach (var item in dayinjis)
{
if (item[] != '\\')
{
fa = Win32api.SetDefaultPrinter(item);
break;
}
}
}
if (!fa)
{
MessageBox.Show("不允许默认打印机为网络打印机,找不到的时候打开cad将会很慢\n当前电脑所有都是网络打印机", "惊惊盒子");
}
}
}
}
catch (System.Exception e)
{
MessageBox.Show("修改默认打印机出错\n" + e.Message, "惊惊盒子");
}
    public class LocalPrinter
{
/// <summary>
/// 系统所有打印机名称(默认将在第一)
/// </summary>
public static string[] GetLocalPrinters()
{
var fPrinters = new List<string>();
try
{
PrintDocument fPrintDocument = new PrintDocument();
string s = fPrintDocument.PrinterSettings.PrinterName;//默认打印机
if (s != null)
{
//默认打印机始终出现在列表的第一项
fPrinters.Add(s);
}
foreach (string fPrinterName in PrinterSettings.InstalledPrinters)
{
if (!fPrinters.Contains(fPrinterName))
{
fPrinters.Add(fPrinterName);
}
}
}
catch
{ }
return fPrinters.ToArray();
}
} public partial class Win32api
{
/// <summary>
/// 设置默认打印机
/// </summary>
/// <param name="Name"></param>
/// <returns></returns>
[DllImport("winspool.drv")]
public static extern bool SetDefaultPrinter(string Name);
}

cad.net cad启动慢? cad2008启动慢? cad启动延迟? cad卡住? cad98%卡? 默认打印机!!的更多相关文章

  1. 集群重启后启动ambari-server访问Web页面无法启动集群解决

    集群重启后启动ambari-server访问Web页面无法启动集群解决 使用ambari部署的集群重新启动后,必须手动重启ambari-server和所有集群主机上的ambari-agent. amb ...

  2. 如何让ubuntu启动时打印字符信息----字符启动

    一.概述 要想实现字符启动,需要修改grub.cfg(启动配置文件),将“静态启动”改为“字符启动”. 但是grub.cfg通常只作为只读文件,修改它时实际上修改的是其他的文件然后再通过update- ...

  3. 系统的启动模式(启动级别)的改动---使用upstart启动机制的

    /*********************************************************************  * Author  : Samson  * Date   ...

  4. VS2013启动项目调试的时候会启动本地IIS

    VS2013启动项目调试的时候会启动本地IIS ,而在这种状态下去调试程序,会有很多功能用不了,而且还会有错误:如下图: 解决方法,将托管管道模式更改一下就行了:

  5. Linux Redis自动启动,Redis开机启动,Linux Redis设置开机启动

    Linux Redis自动启动,Redis开机启动,Linux Redis设置开机启动 >>>>>>>>>>>>>> ...

  6. 第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置

    第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置 软件版本  uwsgi- ...

  7. window下nodejs用nodemon启动koa2项目(用cmd启动不了,要用Git Bash Here 启动才可以)

    window下nodejs用nodemon启动koa2项目(用cmd启动不了,要用Git Bash Here 启动才可以)nodemon --watch 'app/**/*' -e ts --exec ...

  8. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(五)针对hadoop2.9.0启动之后发现slave上正常启动了DataNode,DataManager,但是过了几秒后发现DataNode被关闭

    启动之后发现slave上正常启动了DataNode,DataManager,但是过了几秒后发现DataNode被关闭 以slave1上错误日期为例查看错误信息: /logs/hadoop-spark- ...

  9. 如何用INNO安装添加快捷启动方式到Win7的快速启动栏(超级任务栏)

    问题:如何用INNO安装添加快捷启动方式到Win7的快速启动栏(超级任务栏) 在XP下,添加方式是直接把快捷方式复制到%appdata%\Microsoft\Internet Explorer\Qui ...

随机推荐

  1. gitlab Api接口使用

    官方文档 https://docs.gitlab.com/search/?q=api&idx=gitlab&p=1 示例:获取每个项目下的用户信息 #!/usr/bin/env pyt ...

  2. Spring.Net配置

    <?xml version="1.0" encoding="utf-8"?> <configuration>     <!--一定 ...

  3. 生活实遇记-Kindle好久没用,屏幕一直处于电池状态,怎么解决?

    2018-01-02 实遇记-Kindle好久没用,屏幕一直处于电池状态,怎么解决? 今天我翻腾出自己的kindle,好久没用了,屏幕一直是一个电池状态,充电头+线充了2个钟头,按电源键木有反应,也是 ...

  4. html 提取 公用部分

    在写HTML时,总会遇到一些公用部分,如果每个页面都写那就很麻烦,并且代码量大大增加. 网上查询了几种方法: 1.es6 的 embed 标签. <embed src="header. ...

  5. Linux命令行报错 bash: cannot create temp file for here-document: No space left on device

    今天Linux服务器出问题了,使用"tab"补全命令时,提示 bash: cannot create temp file for here-document: No space l ...

  6. 在python学习时间过程中,你会不断发现需要解决的问题,更多需要连接未知,这时候到哪里去查阅资料呢?

    1.safari online book https://www.safaribooksonline.com 知乎上有人问,送程序员什么礼物好,其中一个答案就是safari online.编程的英文书 ...

  7. 配置apache虚拟域名(phpStudy2016)

    以前也一个个的配置过apache.php和mysql,现在嫌麻烦,就用的phpStudy. 装好之后,发现127.0.0.1可以访问,但是localhost就不可以访问.大概是因为apache没有配置 ...

  8. [JAVA]JAVA章4 Thread Dump如何分析

    一.Thread Dump介绍 1.1什么是Thread Dump? Thread Dump是非常有用的诊断Java应用问题的工具.每一个Java虚拟机都有及时生成所有线程在某一点状态的thread- ...

  9. SQL中GROUP BY语句与HAVING语句的使用

    GROUP BY语句,经过研究和练习,终于明白如何使用了,在此记录一下同时添加了一个自己举的小例子,通过写这篇文章来加深下自己学习的效果,还能和大家分享下,同时也方便以后查阅,一举多得 一.GROUP ...

  10. innodb_flush_method理解

    http://blog.csdn.net/gua___gua/article/details/44916207 innodb_flush_method这个参数控制着innodb数据文件及redo lo ...