2009年3月26日 星期四

如何由程式中去新增 ODBC 資料來源

如何由程式中去新增 ODBC 資料來源
ODBC ( Open Database Connectivity ) 為 開放式的資料連結介面
早期是資料庫連結的標準,應用的技術有ODBC API、ODBC Direct ..
或是使用 資料庫物件 透過ODBC Driver 去進行資料庫的存取。
而後,M$ 推OLEDB ,資料庫物件也由 ADO 進化到 ADO.Net。
但不變的是,從文字檔 txt、csv、html,試算表xls、wks,到檔案型的DB,
XBase 的 DBF、Access 的 MDB等,甚至是 SQL Server , Oracle 等
中大型的DBMS、RDBMS,各廠商依舊提供了該資料庫系統的原廠 ODBC 驅動程式。
也因此,時至今日,ODBC 依舊被廣泛的使用。
而底下將介紹 如何由程式中去進增一個 MDB 的 ODBC 資料來源
其他資料庫原理亦相同,依樣畫葫蘆即可。
<< VB.Net 寫法 >>
' 宣告變數
Dim Para(11), DSN, Driver As String
' 設定ODBC DSN 參數內容
Para(0) = "UID=admin"
Para(1) = "Database=C:\db1.mdb"
Para(2) = "UserCommitSync=Yes"
Para(3) = "Threads=3"
Para(4) = "SafeTransactions=0"
Para(5) = "PageTimeout=5"
Para(6) = "MaxScanRows=8"
Para(7) = "MaxBufferSize=2048"
Para(8) = "FIL=MS Access"
Para(9) = "DriverId=25"
Para(10) = "DefaultDir=C:\"
Para(11) = "DBQ=C:\db1.mdb"
' 使用者資料來源名稱
DSN = "MyDataSourceName"
' 驅動程式
Driver = "Microsoft Access Driver (*.mdb)"
' 建立DAO.DBEngine 物件 , 透過RegisterDatabase 方法新增一個ODBC 設定
CreateObject("DAO.DBEngine.36").RegisterDatabase(DSN, Driver, True, Join(Para, Chr(0)))
' DAO 物件: Microsoft DAO 3.6 Object Library ( dao360.dll )
================================================================
<< C# 寫法 >>
// Activator 成員: 包含本機或遠端建立物件型別的方法,或者取得對現有遠端物件的參考。
// Activator.CreateInstance 方法(Type) : 使用最符合指定參數的建構函式,建立指定型別的執行個體。
object dbe = Activator.CreateInstance(Type.GetTypeFromProgID("DAO.DBEngine.36"));
// Type.GetTypeFromProgID 方法: 取得與指定的程式識別項(ProgID) 關聯的型別;
// 如果在載入Type 時發生錯誤,則傳回null。
// DAO.DBEngine.36 為Microsoft DAO 3.6 Object Library ( dao360.dll )
// 宣告變數
string[] strPara = new string[13];
string strDSN;
string strDriver;
// 設定ODBC DSN 參數內容
strPara[1] = "UID=admin";
strPara[2] = "Database=C:\\db1.mdb";
strPara[3] = "UserCommitSync=Yes";
strPara[4] = "Threads=3";
strPara[5] = "SafeTransactions=0";
strPara[6] = "PageTimeout=5";
strPara[7] = "MaxScanRows=8";
strPara[8] = "MaxBufferSize=2048";
strPara[9] = "FIL=MS Access";
strPara[10] = "DriverId=25";
strPara[11] = "DefaultDir=C:\\";
strPara[12] = "DBQ=C:\\db1.mdb";
// 使用者資料來源名稱
strDSN = "MyDataSourceName";
// 驅動程式
strDriver = "Microsoft Access Driver (*.mdb)";
object[] p = new object[] { strDSN, strDriver, true, string.Join('\0'.ToString(), strPara, 1, 12) };
// Type.InvokeMember 方法
// Type.InvokeMember (String, BindingFlags, Binder, Object, Object[])
dbe.GetType().InvokeMember("RegisterDatabase", BindingFlags.InvokeMethod, null, dbe, p);
// 透過DAO.DBEngine 物件的RegisterDatabase 方法新增一個ODBC 設定

XCOPY

以xcopy作備份
@echo off
rem
rem 先取得遠端信任,並建立網路磁碟機

D:
net use Z: /DELETE
net use Z: "\\192.168.200.121\C$\Program Files\SPCA" /user:apcb\spcinstall spcinstall
XCOPY /y D:\AP\SOURCE_S\SPC\SPCAV4.3\SPCA.exe Z:\


rem
rem 進行複製
rem /e 連子目錄也一起複製,包括空目錄
rem /v 複製完成,驗證
rem /h 連隱藏檔跟系統檔也一起複製
rem /z 在可重新開始的模式中複製網路檔案。
rem /y 遇到重複,不詢問,直接複製
rem /d:m-d-y 可加上日期,表示 y 年 m 月 d 日以後的檔案才複製
rem /i 假設目的端指定的名稱不存在,則自動建立為目錄
rem
rem 備份列表可以在下面繼續新增
rem
xcopy /e /v /h /z /y /i d:\snitzforums z:\snitzforums
xcopy /e /v /h /z /y /i d:\public z:\public

2009年3月25日 星期三

MS Windows 環境變數

位於: Windows — admin @ 3:34 下午
%SystemDrive%:系統磁碟機,預設是C:

%SystemRoot%:系統根目錄,預設是C:\WINNT或C:\WINDOWS

%SystemDirectory%:系統目錄,預設是C:\WINNT\System32或C:\WINDOWS\System32

%WinDir%:Windows目錄,預設是C:\WINNT或C:\WINDOWS

%ProgramFiles%:應用程式目錄,預設是C:\Program Files

%Temp%、%Tmp%:暫存檔目錄 %HomeDrive%:使用者目錄的磁碟機

%HomePath%:使用者家目錄

%OS%:作業系統名稱,其值固定為Windows_NT

%UserDomain%:包含使用者帳號的網域名稱,或者電腦名稱

%UserName%:使用者帳號名稱

%ALLUSERSPROFILE%:All Users設定檔的資料夾位置。

%APPDATA%:目前使用者的Application Data資料夾位置。

%CD%:目前的工作資料夾。

%CLIENTNAME%:目前使用者的NETBIOS電腦名稱。

%CMDCMDLINE%:處理目前命令提示字元視窗命令的cmd.exe的完整路徑。

%CMDEXTVERSION%:目前Command Processor Extensions的版本。

%CommonProgramFiles%:Common Files資料夾的路徑。

%COMPUTERNAME%:電腦名稱。

%COMSPEC%::命令提示字元視窗的解譯程式路徑,通常與%CMDCMDLINE%相同。

%DATE%:目前的系統日期。

%ERRORLEVEL%:最近執行過的命令的錯誤碼;非零的值表示發生過的錯誤碼。

%HomeDrive%:使用者目錄的磁碟機。

%HomePath%:使用者家目錄。

%HOMESHARE%:目前使用者共用資料夾的網路路徑。

%LOGONSEVER%:目前使用者所登入的網路控制器名稱。

%NUMBER_OF_PROCESSORS%:電腦的處理器數量。

%OS%:作業系統名稱,其值固定為Windows_NT。

%Path%:執行檔的搜尋路徑。

%PATHEXT%:作業系統是為執行檔的副檔名。

%PROCESSOR_ARCHITECTURE%:處理器的架構名稱,例如x86。

%PROCESSOR_IDENTFIER%:說明處理器的文字(不一定會有此環境變數)。

%PROCESSOR_LEVEL%:處理器的model number。

%PROCESSOR_REVISION%:處理器的revision number。

%ProgramFiles%:應用程式目錄,預設是C:\Program Files。

%PROMPT%:目前解譯程式的命令提示字串。

%RANDOM%:顯示0到32767之間的十進位整數亂數。

%SESSIONNAME%:連上終端伺服器的session names。

%SystemDrive%:系統磁碟機,預設是C:。

%SystemRoot%:系統根目錄,預設是C:\WINNT或C:\WINDOWS。

%SystemDirectory%:系統目錄,預設是C:\WINNT\System32或C:\WINDOWS\System32。

%Temp%、%Tmp%:暫存檔目錄。

%TIME%:目前的系統時間。

%UserDomain%:包含使用者帳號的網域名稱,或者電腦名稱。

%UserName%:使用者帳號名稱。

%USERPROFILE%:目前使用者的設定檔路徑。

%WinDir%:Windows目錄,預設是C:\WINNT或C:\WINDOWS。

SYSTEM32 下的幾乎所有檔案的簡單說明

位於: Windows — admin @ 3:38 下午
aclui.dll …..Security Descriptor Editor,沒有它,登錄檔編緝器會無法執行

ACTIVEDS.DLL …..(ADs 路由層 DLL). 沒有它, 打開事件檢視器會出錯

ADSLDPC.DLL ……ADs LDAP 提供程式 C DLL

ADVAPI32.DLL …..(進階 Windows 32 基本 API)…這個 avicap32.dll 用於將從數碼攝像頭捕獲的視頻另存為 AVI 格式. 如果你正在錄製視頻或是正在視頻聊天, 那麼你將服務終止這個進程

ADVPACK.DLL ……(Advpack Library). Windows 用它來驗證 .inf 檔案. 如果 advpack.dll 不可用, windows 將無法正常工作. (沒有它, 打開系統內容會出錯.)

ASYCFILT.DLL ….我所安裝的一個程式 StatBar, 需要這個檔案

ATL.DLL ………. Windows XP ATL 模組 (Unicode)

AUTHZ.DLL ……..認證框架

BASESRV.DLL ……Windows NT BASE API Server DLL

BATMETER.DLL …..(電池助手 DLL). 打開電源選項需要這個檔案

bootvid.dll …..VGA 啟動驅動

BROWSELC.DLL …..外殼流覽器用戶介面庫

browser.dll …..Computer Browser Service DLL

BROWSEUI.DLL ….. 外殼流覽器用戶介面庫

browsewm.dll …BrowseWM Player

CABINET.DLL ……(Microsoft® Cab 檔案 API). 想要正常打開系統選項就要保留這個檔案

CALC.EXE …….(計算器). Windows 自帶的計算器程式

CFGMGR32.DLL …配置管理轉發器 DLL,沒有它,無法在資源管理器中對磁片進行格式化

clb.dll …..Column List Box,沒有它,登錄檔編緝器會無法執行

CMD.EXE ….(命令行).可提供 Windows NT 下的命令行提示符 (MS-DOS 外殼解釋程式)

comcat.dll …..Microsoft C 執行時庫檔案

COMCTL32.DLL …..通用控制項庫

COMDLG32.DLL …..通用對話方塊 DLL

console.dll ….控制台控制臺小程式

control.exe ….Windows 控制台 (這個不是實際上的控制台.)

CONVERT.EXE ….(轉換). 用於將分區格式從 FAT 轉為 NTFS 以及從 NTFSv4 轉為 NTFSv5

CREDUI.DLL …….授權證書管理程式用戶介面

crtdll.dll …..加密管理器

CRYPT32.DLL ……32 位加密 API

CRYPTDLL.DLL …..加密管理程式

CRYPTUI.DLL ……Microsoft 加密用戶介面提供程式

CSRSRV.DLL …….用戶端伺服器執行時進程

CSRSS.EXE ……..(用戶端-伺服器執行時伺服器子系統). 用於維護Win32 系統環境控制臺以及其他基本功能.

desk.cpl ……顯示內容

deskmon.dll …. 進階顯示監視器內容

devenum.dll ….設備枚舉

devmgr.dll …..設備管理器 MMC 管理工具

diskcopy.dll …Windows DiskCopy

dmintf.dll ….. 磁片管理 DCOM 介面存根

dmutil.dll ….. 邏輯磁片管理器工具庫

DNSAPI.DLL …….DNS 用戶端 API DLL

fmifs.dll ……FM IFS 工具 DLL

framebuf.dll …幀緩衝顯示驅動

GDI32.DLL ……..GDI 用戶端 DLL(含有XCMD設定字體的函數)

hal.dll ……..(硬體抽象層). 隱藏 Windows 應用程式處理硬體問題的複雜性(啟動之後可刪除的檔案)

hccoin.dll …..USB 協同安裝程式

hotplug.dll ….用於安全移除硬體, 比如, U 盤

icaapi.dll ….. TermDD 設備驅動的 DLL 介面

ifsutil.dll ….IFS 工具 DLL

IMAGEHLP.DLL …..Windows NT 圖像助手(IE顯示圖像需要)

imm32.dll ……..(Windows XP IMM32 API 用戶端 DLL). 用於正常打開系統內容

inetmib1.dll …Microsoft MIB-II subagent

input.dll ……(文本輸入 DLL). 語言和區域設定需要這個檔案來顯示相關對話方塊

IPHLPAPI.DLL …..IP 助手API

iyuv_32.dll ….Intel Indeo(R) Video YUV Codec (檔案版本: 5.1.2600.2180)

kbdus.dll …..美國鍵盤佈局

kdcom.dll …….內核調試程式硬體擴展 DLL(啟動之後可刪除的檔案)

KERBEROS.DLL …..Kerberos 安全包

kernel32.dll …..Windows NT BASE API 用戶端 DLL

LINKINFO.DLL …..Windows 卷目追蹤

lpk.dll ……..會話註銷工具

LSASRV.DLL …….LSA 伺服器 DLL

LSASS.EXE ……..(LSA 安全服務). 本地安全認證伺服器進程

main.cpl ……滑鼠

MFC42.DLL ……MFCDLL 共用庫

mfc42u.dll …..MFCDLL 共用庫

MPR.DLL ……….多個提供程式路由 DLL

MPRAPI.DLL …….(Windows NT MP 路由管理DLL)

mprui.dll …….多個提供程式

MSASN1.DLL …….ASN.1 執行時 API

mscat32.dll ….MSCAT32 Forwarder DLL

mscms.dll ……..(Microsoft 色彩匹配系統 DLL). 這個模組中包含了一些用於校正圖像色彩,以及用於色彩映射, 色彩管理的函數

MSCTF.DLL ……MSCTF 伺服器 DLL

msftedit.dll ..RTF 文本編輯控制項, v4.1

MSGINA.DLL …….Windows NT 登錄 GINA DLL

msh263.drv ….Microsoft H.263 ICM 驅動

msidntld.dll …Microsoft 標識管理器

MSIMG32.DLL ……GDIEXT 用戶端 DLL

MSIMTF.DLL …..Active IMM 伺服器 DLL

msls31.dll …….(Microsoft 線性服務庫檔案). Internet Explorer 需要這個檔案

msports.dll ….埠類別安裝程式

MSPRIVS.DLL ……Microsoft 特權轉換

msrle32.dll ….Microsoft RLE 壓縮器

mssign32.dll …Microsoft 受信賴簽證 APIs

mssip32.dll ….MSSIP32 Forwarder DLL
msvcirt.dll ….Windows NT IOStreams DLL

MSVCP60.DLL ……Microsoft (R) C++ 執行時庫檔案

msvcrt40.dll …VC 4.x CRT DLL (向後相容 msvcrt.dll)

MSVCRT.DLL …….Windows NT CRT DLL

msvfw32.dll …Microsoft Video for Windows DLL

msvidc32.dll …Microsoft Video 1 壓縮器

mydocs.dll …..我的文檔案資料夾用戶介面

ncxpnt.dll …..Netork (不是 Network) 安裝嚮導支持 DLL

NDDEAPI.DLL ……Network DDE 共用管理 APIs

NET1.EXE …….(Network). 與 NET.EXE 的功能相同(在使用net命令的時候需要調用net1,若不存在就無法完成操作)

NET.EXE ……..(Network). 用於管理, 配置和檢視與網路相關的資訊, 例如 net use, net print, net user, 等等

NETAPI32.DLL …..Net Win32 API DLL

netrap.dll …..網路遠端管理協定DLL

netui0.dll …..NT LM UI Common Code - GUI Classes (檔案版本: 5.1.2600.2180)

netui1.dll …..NT LM UI Common Code - GUI Classes (檔案版本: 5.1.2600.2180)

newdev.dll ….添加硬體設備庫檔案

NOTEPAD.EXE ……(記事本). 文本編輯工具

NTDLL.DLL ……..NT Layer DLL

NTDSAPI.DLL ……(NT5DS Library) Windows 的目錄服務需要這個ntdsapi.dll 庫檔案. 目錄服務可令 Windows 能夠更容易地定位設備以及網路上的資源

ntlanman.dll …Microsoft® 局域網管理器

ntlsapi.dll ….Microsoft® 許可伺服器介面 DLL

NTMARTA.DLL ……Windows NT MARTA 提供程式

NTOSKRNL.EXE ..(作業系統內核). Windows XP 作業系統內核, 啟動畫面就在這個檔案中

ocmanage.dll ..可選組件管理庫

ODBC32.DLL …….Microsoft Data Access - ODBC 驅動管理器

ODBCBCP.DLL ……(Microsoft BCP for ODBC). 沒有這個檔案的話, 當你打開電腦管理時會遇到一個錯誤. 但還是可以打開電腦管理. (我把電腦管理刪掉了.)

ODBCINT.DLL ……Microsoft Data Access - ODBC 資源

OLE32.DLL ……..Microsoft OLE for Windows

oleacc.dll …….(Active Accessibility 核心組件)

OLEAUT32.DLL ….. Windows 要用它執行OLE (物件鏈結和嵌入) 操作. OLE 允許將程式創建的物件嵌入到另一個程式的文檔案或物件中. 例如. 將一個 Excel 表格嵌入到 Word 文檔案中. Windows 應用程式要經常用到OLE, 因此一般你是無法將其刪除的

OLECLI32.DLL ….. 物件鏈結和嵌入用戶端庫檔案

OLECNV32.DLL …..Microsoft OLE for Windows

oledlg.dll …….(Microsoft Windows(TM) OLE 2.0 用戶介面支援)

OLESVR32.DLL ….. 物件鏈結和嵌入伺服器庫

OLETHK32.DLL …..Microsoft OLE for Windows

perfctrs.dll …性能計數器

powercfg.cpl ..電源選項

POWRPROF.DLL …..(電源配置助手 DLL). 如要正常打開設備管理器中的鍵盤內容, 需要保留這個檔案

PROFMAP.DLL ……Userenv

PSAPI.DLL ……..進程狀態助手

pstorec.dll ….. 受保護存儲的COM 介面

pstorsvc.dll …. 受保護存儲伺服器

REG.EXE ……..(登錄檔控制臺). 一個用於查詢和修改登錄檔的命令行工具

REGAPI.DLL …….登錄檔配置 APIs

REGSVR32.EXE …(註冊伺服器). 用於註冊組件, DLL

riched20.dll …RTF 編輯控制項, v3.0

rnr20.dll ……Windows Socket2 命名空間 DLL

RPCRT4.DLL …….遠端程序呼叫執行時

RPCSS.DLL ……..分散式 COM 服務

RSAENH.DLL …….Microsoft 增強加密提供程式

rshx32.dll ….安全外殼擴展

rtipxmib.dll …Microsoft Router IPX MIB subagent

RTUTILS.DLL ……路由工具

RUNDLL32.EXE …(Run DLL). 用於執行 DLL 檔案的命令行工具

RUNONCE.EXE ….(Run Once). 用於將要執行的任務添加定義到 RunOnce 登錄檔項中

SAMLIB.DLL …….SAM 庫DLL

SAMSRV.DLL …….SAM 伺服器 DLL

SCESRV.DLL …….Windows安全配置編輯器引擎

SCHANNEL.DLL …..TLS / SSL 安全提供程式

SECUR32.DLL ……安全支援提供程式介面

security.dll …安全支援提供程式介面

services.exe …..(安全和控制程式). Windows XP 用它管理服務

SETUP.EXE ……(Setup). Windows 安裝程式

SETUPAPI.DLL …..Windows Setup API

SFC.DLL ……….Windows 檔案保護

SFC_OS.DLL …….Windows 檔案保護

sfcfiles.dll …..Windows 2000 系統檔案檢查工具

SHDOCVW.DLL …… 外殼文檔案物件和控制項庫

SHELL32.DLL ……Windows 外殼通用 Dll

shellstyle.dll ..Windows 外殼樣式資源Dll

SHFOLDER.DLL …..(外殼資料夾服務). 若要正常打開系統內容, 需要保留此檔案

shgina.dll …..Windows 外殼用戶登錄 <– 這個檔案用於從你的桌面上重啟電腦. 進一步講, 一旦你將其刪除或是將其從 system32 資料夾中移走, 那麼即使你將其放回, 也照樣無法從你的桌面重新啟動

shimgvw.dll ……(Windows 圖片和傳真檢視器). 我要用它看電腦上的圖片

SHLWAPI.DLL ……外殼 Light-weight 工具庫

sigtab.dll …..檔案完整性設定(系統內容–>硬體–>驅動程式簽名選項的對話方塊)

SMSS.EXE ………(會話管理器). 是個會話管理器, 用於在啟動期間創建Windows XP 環境

snmpapi.dll ….SNMP 工具庫

softpub.dll ….Softpub Forwarder DLL

softpub.dll ….Softpub Forwarder DLL

STOBJECT.DLL …..(Systray 外殼服務物件). stobject.dll 是個庫檔案, 包含了一些像是圖示這樣的資源

streamci.dll … 流設備類別安裝程式

SVCHOST.EXE …… Win32 服務的常規宿主Process

Winrar 命令列方式備份重要資料

以 -依日期格式備份
位於: Windows — admin @ 3:42 下午
命令列代碼:
“c:\program files\winrar\winrar.exe” a -m5 -s -agYYYY_MM_DD D:\backup\backup_ C:\My Documents

說明:
“c:\program files\winrar\winrar.exe”
這一行是指winrar的安裝路徑

參數a
是指把檔案加到壓縮檔

參數 -m
-m0 僅儲存 加入檔案到壓縮檔但是不壓縮
-m1 速度最快 最快速的方法 (最低的壓縮)
-m2 速度快 快速壓縮法
-m3 一般 一般 (預設) 壓縮方法
-m4 壓縮佳 良好的壓縮方法 (較高的壓縮)
-m5 壓縮最佳 最佳的壓縮方法 (最高壓縮但速度最慢)
default 是 -m3

參數 -s
表示包含資料夾下的所有目錄

參數 -ag[格式] 以目前日期產生壓縮檔名稱

當建立壓縮檔時,以格式「YYYYMMDDHHMMSS」附加到目前日期字串,
這對於每日的備份是有用的。

附加字串是由「格式」參數所定義,或者如果不存在時,使用
「YYYYMMDDHHMMSS」。格式字串可以包含下列的字元:

Y - 年
M - 月
MMM - 文字式的月份名稱 (Jan, Feb, 等)
W - 星期(文字) (一週起點為星期一)
A - 星期(數字) (星期一為 1, 星期日為 - 7)
D - 日
H - 時
M - 分 (如果接續在時後面,則視為分看待)
S - 秒

d:\backup\backup_
這就是壓縮檔存放的位置的存檔的檔名,可依照個人喜好設定檔名backup_後面會連著壓縮的日期與時間
例如: backup_20060514181010

C:\My Documents
這就是你打算要每日備份的資料夾位置.

最後將檔案存成一個 *.bat 用 Windows 的排程備份去做就可以了.

USB裝置開啟或停止

位於: Windows — admin @ 3:55 下午
開啟USB儲存設備:

==========開始===========
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR]
“Type”=dword:00000001
“Start”=dword:00000003
“ErrorControl”=dword:00000001
“ImagePath”=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
52,00,49,00,56,00,45,00,52,00,53,00,5c,00,55,00,53,00,42,00,53,00,54,00,4f,\
00,52,00,2e,00,53,00,59,00,53,00,00,00
“DisplayName”=”USB儲存設備”

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Security]
“Security”=hex:01,00,14,80,90,00,00,00,9c,00,00,00,14,00,00,00,30,00,00,00,02,\
00,1c,00,01,00,00,00,02,80,14,00,ff,01,0f,00,01,01,00,00,00,00,00,01,00,00,\
00,00,02,00,60,00,04,00,00,00,00,00,14,00,fd,01,02,00,01,01,00,00,00,00,00,\
05,12,00,00,00,00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,00,00,\
20,02,00,00,00,00,14,00,8d,01,02,00,01,01,00,00,00,00,00,05,0b,00,00,00,00,\
00,18,00,fd,01,02,00,01,02,00,00,00,00,00,05,20,00,00,00,23,02,00,00,01,01,\
00,00,00,00,00,05,12,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00
==========結束===========

禁止USB儲存設備 :

==========開始===========
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR]
“Type”=dword:00000001
“Start”=dword:00000004
“ErrorControl”=dword:00000001
“ImagePath”=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
52,00,49,00,56,00,45,00,52,00,53,00,5c,00,55,00,53,00,42,00,53,00,54,00,4f,\
00,52,00,2e,00,53,00,59,00,53,00,00,00
“DisplayName”=”USB儲存設備”

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Security]
“Security”=hex:01,00,14,80,90,00,00,00,9c,00,00,00,14,00,00,00,30,00,00,00,02,\
00,1c,00,01,00,00,00,02,80,14,00,ff,01,0f,00,01,01,00,00,00,00,00,01,00,00,\
00,00,02,00,60,00,04,00,00,00,00,00,14,00,fd,01,02,00,01,01,00,00,00,00,00,\
05,12,00,00,00,00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,00,00,\
20,02,00,00,00,00,14,00,8d,01,02,00,01,01,00,00,00,00,00,05,0b,00,00,00,00,\
00,18,00,fd,01,02,00,01,02,00,00,00,00,00,05,20,00,00,00,23,02,00,00,01,01,\
00,00,00,00,00,05,12,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00
==========結束===========

請將開始至結束,拷貝至存文字,存檔後將檔名改為*.reg,上面分別為開啟USB裝置與關閉USB裝置.

使用VB 新增 刪除登錄子機碼和登錄值

位於: Windows — admin @ 4:39 下午
新增
WSHShell.RegWrite “HKEY_CLASSES_ROOT\lnkfile\IsShortcut”, “”, “REG_SZ”

刪除
WSHShell.RegDelete “HKEY_CLASSES_ROOT\lnkfile\IsShortcut”, “”, “REG_SZ”

[VB6] INI 讀取 & 存檔

[VB6] INI 讀取 & 存檔
位於: Windows — admin @ 8:35 上午
1.首先宣告API
Private Declare Function GetPrivateProfileString Lib “kernel32″ Alias “GetPrivateProfileStringA” (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib “kernel32″ Alias “WritePrivateProfileStringA” (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

2.放置一個command1按鈕(存檔)
Dim svv As Long
svv = WritePrivateProfileString(”模具沖壓”, “(1)”, Combo1.Text, App.Path & “\selfstocks.ini”)

PS.存檔格式如下: selfstocks.ini
[模具沖壓]
(1)=鉅祥

3.在Form_load加入,讀取
Dim svt As Long
Dim loadd As String
loadd = String(255, 0)
svt = GetPrivateProfileString(”模具沖壓”, “(1)”, Combo1.Text, loadd, 256, App.Path & “\selfstocks.ini”)
Combo1.Text = loadd

VB6 - 模擬按鍵&滑鼠 (keybd_event , mouse_event)

VB6 - 模擬按鍵&滑鼠 (keybd_event , mouse_event)
位於: Windows — admin @ 10:33 上午
‘宣告API
Private Declare Sub keybd_event Lib “user32″ (ByVal bVk As Byte, ByVal Scan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) ‘模擬鍵盤
Private Declare Sub mouse_event Lib “user32″ (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long) ‘模擬滑鼠

Private Const MOUSEEVENTF_ABSOLUTE = &H8000 ‘
Private Const MOUSEEVENTF_LEFTDOWN = &H2 ‘模擬鼠標左鍵按下
Private Const MOUSEEVENTF_LEFTUP = &H4 ‘模擬鼠標左鍵抬起
Private Const MOUSEEVENTF_MIDDLEDOWN = &H20 ‘模擬鼠標中鍵按下
Private Const MOUSEEVENTF_MIDDLEUP = &H40 ‘模擬鼠標中鍵抬起
Private Const MOUSEEVENTF_MOVE = &H1 ‘移動鼠標
Private Const MOUSEEVENTF_RIGHTDOWN = &H8 ‘模擬鼠標右鍵按下
Private Const MOUSEEVENTF_RIGHTUP = &H10 ‘模擬鼠標右鍵抬起
Private Const KEYEVENTF_KEYUP = &H2 ‘模擬鍵盤按下鍵

‘使用方法例子
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 ‘按下滑鼠左鍵下上
keybd_event 8, KEYEVENTF_KEYUP, 0, 0 ‘ 8 = 按下Enter鍵

2009年3月16日 星期一

建立AccessDB

Option Explicit

Private Sub CreateAccDB(ByVal MdbFileName As String) ' 建立 MDB
CreateObject("DAO.DBEngine.36").CreateDatabase _
MdbFileName, ";LANGID=0x0404;CP=950;COUNTRY=0"
End Sub


Private Sub Command1_Click()
Dim strMDBfile As String

strMDBfile = "C:\report\Test.mdb"
If Dir(strMDBfile) = "" Then CreateAccDB strMDBfile
If Dir(strMDBfile) <> "" Then MsgBox "建立完成"

CreateTable2 strMDBfile


End Sub

Sub CreateTable(strMDBfile As String)
Dim cn As ADODB.Connection
Set cn = CreateObject("ADODB.Connection")
Dim rs As ADODB.Recordset
Dim strSql As String
Dim Tbl As New Table
Dim Cat As ADOX.Catalog
Dim i As Integer
'Set Tbl = CreateObject("Table")
Set Cat = CreateObject("ADOX.Catalog")
With cn
.ConnectionString = "provider=sqloledb.1;persist security info=false;user id=sa;password=i513;initial catalog=apcb;data source=apcb08"
.Open
End With

strSql = "select * from K_HubMtl_Stocks"

Set rs = cn.Execute(strSql)

'Dim Tbl As New Table
'Dim Cat As New ADOX.Catalog

Cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strMDBfile & ";"
Tbl.Name = "MyTable"
For i = 0 To rs.Fields.Count - 1
Tbl.Columns.Append rs.Fields(i).Name, adVarWChar, 200
'Select Case rs.Fields(i).Type
' Case 2
' Tbl.Columns.Append rs.Fields(i).Name, adInteger
'Case 135
' Tbl.Columns.Append rs.Fields(i).Name, adDate
' Case 200
' Tbl.Columns.Append rs.Fields(i).Name, adVarChar, rs.Fields(i).DefinedSize
'Case 131
' Tbl.Columns.Append rs.Fields(i).Name, adNumeric, rs.Fields(i).DefinedSize

'End Select
Next i

Cat.Tables.Append Tbl

'塞資料


cn.Close
Set rs = Nothing
Set cn = Nothing
Set Tbl = Nothing
Set Cat = Nothing
End Sub

Sub CreateTable2(strMDBfile As String)
Dim cn As ADODB.Connection
Set cn = CreateObject("ADODB.Connection")

Dim rs As ADODB.Recordset

Dim strSql As String

With cn
.ConnectionString = "provider=sqloledb.1;persist security info=false;user id=sa;password=i513;initial catalog=apcb;data source=apcb08"
.Open
End With

With Adodc1
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strMDBfile & ";"
.RecordSource = "select * from MyTable"
End With


strSql = "select * from K_HubMtl_Stocks"

Set rs = cn.Execute(strSql)


'以下在用迴圈把資料add到acess裡面...
With rs
Do
Adodc1.Recordset.AddNew .Fields(0).Name, .Fields(0).Value
.MoveNext
While Not .EOF
End With

cn.Close
Set rs = Nothing
Set cn = Nothing
End Sub

2009年3月15日 星期日

2009年3月10日 星期二

時間轉字串

select convert(varchar(20),getdate(),20)