2008年9月15日 星期一

Windows 抓圖 API

相關函式…

HWND findChild = FindWindow( NULL, "視窗標題" );
HWND dc = ::GetWindowDC( findChild );

使用這個 DC HANDLE 來作圖形的拷貝動作

但是由於 windows 有外框、標題列等問題,所以實際抓圖的位要作細部的調整
使用 GetSystemMetrics WIN API,例如…

    int nCaptionY = ::GetSystemMetrics(SM_CYCAPTION);         //dialog的標題列
    int nBorderX = ::GetSystemMetrics(SM_CXEDGE)+1;         //BORDERX
    int nBorderY = ::GetSystemMetrics(SM_CYEDGE)+1;         //BORDERY

才可以準確得知,CLIENT 畫布的位置。

2008年9月9日 星期二

Samba Server 新增使用者

adduser id
smbpasswd -a id
若有 libssl.so.2 找不到 可找找底下替代 lib

ln -s /usr/lib/libssl.so.0.9.6 /usr/lib/libssl.so.2

ln -s /usr/lib/libcrypto.so.0.9.6 /usr/lib/libcrypto.so.2

2008年9月8日 星期一

POSTFIX 增加郵件群組的功能

nano /etc/postfix/main.cf
===================================
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
===================================

nano aliases
===================================
maillist: aaa, bbb, ccc, ddd, eee
===================================

postalias /etc/aliases
postfix reload                    <== 如果 main.cf 有改到的話則需要重啟

使用VBS修改電腦IP、DNS、電腦名稱、工作群組


strComputer="."
strmask="255.255.255.128" 
dim ipv,gateway,lan,pcname
gateway="220.229.105.129"
ipv="220.229.105.123"
pcname="pc123"

Set objWMIService=GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetAdapters=objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")

strIPAddress=Array(ipv)
strSubnetMask=Array(strmask)
strGateway = Array(gateway) '修改預設閘道
strDNS=Array("61.56.211.185","211.78.130.2","168.95.1.1") '// 三組 DNS

For Each objNetAdapter in colNetAdapters 
errEnable=objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)'ip,子網路遮罩
errGateways = objNetAdapter.SetGateways(strGateway) '預設閘道
errDns=objNetAdapter.SetDNSServerSearchOrder(strDNS)'dns
Next

Set objWMIService = GetObject("winmgmts:" _
     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colComputers = objWMIService.ExecQuery _
   ("Select * from Win32_ComputerSystem")

For Each objComputer in colComputers
     err = ObjComputer.Rename( pcname )'機器名稱
     ReturnValue = objComputer.JoinDomainOrWorkGroup("WORKGROUP")'工作群組
Next

更高效處理 micro second 的方式

更高效處理 micro second 的方式…  以 STM32 為例… __IO unsigned long sys_tick = 0; void SysTick_Handler(void) {     HAL_IncTick();     sys_tick += (SysTi...