自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#語(yǔ)言開(kāi)發(fā)Windows Shell擴(kuò)展

開(kāi)發(fā) 后端
這里介紹C#語(yǔ)言開(kāi)發(fā)Windows Shell擴(kuò)展,.NET平臺(tái)是微軟公司推出的作為未來(lái)軟件運(yùn)行和開(kāi)發(fā)的環(huán)境,C#是微軟力薦的在.NET平臺(tái)下開(kāi)發(fā)應(yīng)用軟件的首選語(yǔ)言。

C#語(yǔ)言有很多值得學(xué)習(xí)的地方,這里我們主要介紹C#語(yǔ)言開(kāi)發(fā)Windows Shell擴(kuò)展,包括介紹結(jié)構(gòu)聲明等方面。

.NET平臺(tái)是微軟公司推出的作為未來(lái)軟件運(yùn)行和開(kāi)發(fā)的環(huán)境,C#是微軟力薦的在.NET平臺(tái)下開(kāi)發(fā)應(yīng)用軟件的***語(yǔ)言。本文將討論在.NET環(huán)境下如何使用C#語(yǔ)言開(kāi)發(fā)Windows Shell擴(kuò)展問(wèn)題。如今Windows家族已發(fā)展到XP世代了,想必每個(gè)程序員都對(duì)Shell Extension不會(huì)感到陌生吧,在這里我不想花太多的時(shí)間介紹Shell Extension的原理知識(shí),本文中將通過(guò)一個(gè)實(shí)例介紹用C#創(chuàng)建一個(gè)Shell Extension,在此過(guò)程中也會(huì)簡(jiǎn)單介紹一些Shell Extension的原理知識(shí)。

本實(shí)例實(shí)現(xiàn)一個(gè)ShellExecuteEx Win32調(diào)用的鉤子操作,Windows Explorer常常會(huì)用到這個(gè)調(diào)用,如打開(kāi)、編輯、打印等等Shell操作都要用到這個(gè)調(diào)用。在Windows注冊(cè)表HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks項(xiàng)下安裝了所有實(shí)現(xiàn)Shell擴(kuò)展的組件信息。當(dāng)Windows Explorer執(zhí)行Shell操作前,先在注冊(cè)中查找到已注冊(cè)的Shell擴(kuò)展組件,并將其實(shí)例化,每個(gè)Shell擴(kuò)展組件必須至少實(shí)現(xiàn)了IShellExecuteHook接口,此接口提供了一個(gè)Execute()函數(shù),Explorer將通過(guò)組件實(shí)例對(duì)象調(diào)用Execute()函數(shù),如此函數(shù)返回為S_FALSE繼續(xù)后面的操作,如返回S_OK則停止后面的所有操作。根據(jù)以上原理,本實(shí)例要實(shí)現(xiàn)使用C#語(yǔ)言開(kāi)發(fā)Windows Shell擴(kuò)展。

結(jié)構(gòu)聲明

在Execute()方法中有一個(gè)SHELLEXECUTEINFO結(jié)構(gòu)體參數(shù)sei,接下來(lái)要聲明結(jié)構(gòu)體:

  1. [StructLayout(LayoutKind.Sequential)]  
  2. public class SHELLEXECUTEINFO {  
  3. public int cbSize;  
  4. public int fMask;  
  5. public int hwnd;  
  6. [MarshalAs(UnmanagedType.LPWStr)]  
  7. public string lpVerb; /* 動(dòng)作,如edit,open,print... */  
  8. [MarshalAs(UnmanagedType.LPWStr)]  
  9. public string lpFile; /* 根據(jù)lpVerb的值而定,常為文件名 */  
  10. [MarshalAs(UnmanagedType.LPWStr)]  
  11. public string lpParameters; /* 參數(shù)字符串 */  
  12. [MarshalAs(UnmanagedType.LPWStr)]  
  13. public string lpDirectory; /* 路徑名 */  
  14. public int nShow;  
  15. public int hInstApp;  
  16. public int lpIDList;  
  17. public string lpClass;  
  18. public int hkeyClass;  
  19. public int dwHotKey;  
  20. public int hIcon;  
  21. public int hProcess;  

【編輯推薦】

  1. C# this關(guān)鍵字詳解
  2. C#調(diào)用析構(gòu)方法詳解
  3. C#釋放托管資源簡(jiǎn)單描述
  4. C#單路代理簡(jiǎn)單分析
  5. C#文法產(chǎn)生式概述
責(zé)任編輯:佚名 來(lái)源: IT168
相關(guān)推薦

2009-08-27 18:04:01

c#擴(kuò)展方法string

2009-08-10 17:36:17

C#擴(kuò)展方法

2009-09-02 17:10:45

C#語(yǔ)言入門

2024-07-09 17:09:49

C#開(kāi)發(fā)Windows窗體

2009-09-01 11:04:59

C#調(diào)用擴(kuò)展方法

2009-08-13 17:04:09

C#語(yǔ)言C#程序

2009-09-01 11:19:47

C# 3.0擴(kuò)展重載抉

2009-08-31 14:45:10

C#擴(kuò)展方法

2009-08-19 16:50:32

Visual C#C#語(yǔ)言特性

2009-08-18 14:14:45

C#擴(kuò)展方法性能測(cè)試

2009-08-27 09:27:49

C#擴(kuò)展方法

2009-08-26 15:53:48

C#擴(kuò)展方法

2009-08-28 14:25:57

C# byte數(shù)組

2009-08-27 16:24:48

擴(kuò)展方法C# 3.0新特性

2009-09-11 10:44:55

C#語(yǔ)言

2009-08-03 16:28:53

Java語(yǔ)言與C#語(yǔ)言

2009-08-25 16:32:24

C#語(yǔ)言

2009-08-17 09:57:00

C# Windows

2009-09-03 17:33:08

C#常規(guī)擴(kuò)展性模型

2009-09-03 17:18:40

C#擴(kuò)展性對(duì)象模型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)