posts - 3, comments - 14, trackbacks - 0, articles - 0

2009年8月8日

        最近在用AutoCAD画图并做方案,要把AutoCAD里的图形放到Word中,可是大小或质量总不能满意,最后研究出了一种比较好的方法,方法如下:
 

1. 将模型窗口缩放到合适大小,后按“范围缩放”使图形合适窗口大小

2. 选择文件菜单的“输出”,保存为.wmf格式,选择需要的图形内容,按Enter;或者先Ctrl+A,再选择“输出”,那就不需要后面的选择步骤了。

3. 将wmf文件拖到word文档里,缩放图像大小以适合页面大小,图像质量不会因为缩放而变差。


PS:因为输出wmf图像范围是按当前屏幕显示的模型窗口大小来决定的,所以第一步必不可少,否则,输出的图像会有很多空白部分。另外,wmf图像格式还有一个好处就是,可以在word中对图像中的线型和文字的格式进行修改。

posted @ 2009-08-08 09:57 Eineseite 阅读(971) 评论(3) 编辑

2009年7月2日

    自从上次写了那篇《待机唤醒后自动连接宽带》后,就尝试用刚学的Python来实现那个功能了,语句很简单,要用到Tim Golden编写的wmi.py 和 Mark Hammond的win32 extensions for Python ,两个缺一不可。

code:

import wmi
import os
= wmi.WMI()
watcher 
= c.Win32_PowerManagementEvent.watch_for(EventType=7# 监视待机事件;
while True:
   
os.system("kdlj.vbs"# 运行“连接宽带“的程序,这里还是用了上次那位仁兄的vbs代码;
   
watcher()
   

 

    由于运行时Python的控制台窗口一直在那儿,看着有点碍事儿。于是乎想到要是能把他以
windows service的方式运行,就像其他在windows服务管理器里的程序一样。

    最终,在"Python Programming On Win32"(by Mark Hammond)这本书里找到了相关介绍,它里
面有一个简单的模版,把程序代码放入相应位置就可以了:

# SmallestService.py
#
#
 A sample demonstrating the smallest possible service written in Python.

import win32serviceutil
import win32service
import win32event

class SmallestPythonService(win32serviceutil.ServiceFramework):
    _svc_name_ 
= "SmallestPythonService"
    _svc_display_name_ 
= "The smallest possible Python Service"
    
def __init__(self, args):
        win32serviceutil.ServiceFramework.
__init__(self, args)
        
# Create an event which we will use to wait on.
        # The "service stop" request will set this event.
        self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)

    
def SvcStop(self):
        
# Before we do anything, tell the SCM we are starting the stop process.
        self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
        
# And set my event.
        win32event.SetEvent(self.hWaitStop)

    
def SvcDoRun(self):
        
# 把你的程序代码放到这里就OK了
        win32event.WaitForSingleObject(self.hWaitStop, win32event.INFINITE)

if __name__=='__main__':
    win32serviceutil.HandleCommandLine(SmallestPythonService) 

    #
括号里的名字可以改成其他的,必须与class名字一致;

   

    接下来,只要安装一下服务,cmd下运行:SmallestService.py install 就行了。
这样,你就可以在
windows服务管理器里找到一个名叫"The smallest possible Python Service"的服
务了,设成自动启动,就会开机自动启动并且一直在后台运行了。(眼不见心不烦,

   不过,这样虽然达到目的了,但还是发现个小问题,就是要是想停止该服务,关闭的进度条就愣在那里不动了,必须在进程管理器里把pythonservice.exe关掉才行,这个bug一直没法解决,就是关闭服务的同时,要把监视待机事件取消,否则退不出这个死循环。要是哪位高人看到了,希望可以指点一二。

posted @ 2009-07-02 12:24 Eineseite 阅读(1623) 评论(3) 编辑

2009年6月16日

      由于在windows下,每次待机唤醒后,“宽带连接”不像“本地连接”那样会自动连接,而都要手动连接,每次都要这样搞一下未免有些太愚蠢。如何在待机唤醒后让系统自动连接宽带呢,在网上搜了一下,基本没有能解决这个“看似简单”的问题的,要不就是答非所问,帖个开机自动连接宽带的,要不就是说在IE选项里,选择始终拨默认连接为“宽带连接”,这个虽然在待机唤醒后,第一时间打开IE浏览器浏览网页时奏效,但不是每个人都把IE作为常用浏览器的吧,如果一开始不想浏览网页而是上个QQ呢,难道也特地先打开个网页吗,这样不就跟手动连接宽带相差无几了吗。

 

      经过一番折腾后,终于发现一个WakeupOnStandBy的软件,能解决这个问题。方法如下:

      打开WakeupOnStandBy 程序窗口,

      在第(1)栏里,“Perform tasks below if computer wake up earlier”打钩,因为一般都是手动唤醒待机的,上面的时间暂不管它。

      在第(2)栏里选择能自动进行宽带连接的程序。这里我用了一位老兄写的vbs代码:

      createobject("wscript.shell").run"rasdial 宽带连接名称 用户名 密码",0

      写入文本文件保存后,修改扩展名为vbs就行了。参见:http://bbs.pcbeta.com/viewthread.php?tid=485512&page=1#pid10071040

      小插曲:我之前想在这一步里选用“宽带连接”的快捷方式的路径,可是这个快捷方式并不被这软件识别,无奈只好在网上找了以上代码来实现。

      然后,点击第(5)栏的"Exit"旁的省略号按钮,选择保存为bat文件。接下来要修改这个bat文件,把time参数去掉(因为一般想待机的时候不会是同一时间,而且一天待机可能有好几次),再在命令行的后面加上repeat(不加的话它运行过一次后就自动关闭了),或者在程序窗口中第(4)项的Repeat thesse tasks: 从Sun-Sat每一天都选上,效果一样。

      最后只要运行一次这个bat文件,相关信息就会被写入注册表,以后每次开机就都会自动运行了。  

 

      PS: WakeupOnStandBy这个软件是免费的,贴个下载地址:http://www.crsky.com/soft/11864.html

      其实懂编程的朋友,可以自己尝试写个程序,通过捕捉windows的待机唤醒事件PBT_APMRESUMESUSPEND,来解决这个问题。

       

posted @ 2009-06-16 13:21 Eineseite 阅读(2186) 评论(8) 编辑