進程初探之<2> 創(chuàng)建進程
今年前段時間,我原來的一個同事突然打電話給我。起因是客戶不讓開發(fā)商在服務器上安裝任何的應用程序,只允許部署網(wǎng)站。但是,這個應用系統(tǒng)的部份功能又用到了第三方的組件。組件肯定是要進行安裝的,當然這樣說也存在不對的地方,比如我可引用這個組件就像引用一個私有程序集的引用一樣,而再專門做一個適配器來做一個中轉,這樣肯定也能解決問題。我想在我前段的論述中可能已經(jīng)存一定的批漏了,首先我假設了客戶知道組件的內(nèi)部實現(xiàn)這些行為了,而這一點就與COM要求的隱藏性相違背了。就算后一種方法能夠實現(xiàn),這時我們就把組件退化成一個DLL也行,這樣的“退化”如在項目之初到也是可以的。但到了進行交互之時要做這些的改動,肯定會對這個系統(tǒng)產(chǎn)生諸如項目DELAY,系統(tǒng)的改動大也會相應地引起系統(tǒng)的不穩(wěn)定,開發(fā)人員的重新投入,測試的重新進行。在后期進行這項工作對一個開發(fā)商來說無疑是一個噩夢。或許有人會說這個客戶也太不講理了,但是開發(fā)商也有一定的疏忽之責,如果在開發(fā)之初便已了解到這個約束那么在開發(fā)之初就可以確定許多很好的方案來解決這個問題。這時是該“糊弄”客戶的時候了,其實這種安裝組件并不會對客戶造成影響,當然本人是說這個組件要是可信懶的,如果真的重新來修改應用系統(tǒng)的話,可能造成系統(tǒng)不穩(wěn)定及客戶錯過恰當?shù)膽脮r機,這樣會對客戶造成一定的損失。這是對客戶的一種“傷害”。就象我們很多人怕了吃苦藥,小孩子就更是了,有的小孩吃到苦藥就全部吐出來,這時藥廠就在這個苦藥上包上一層的糖衣。這種“欺騙”就是善意了。于是上面的問題就可以用后臺啟動注冊進程來完成這項偉大的工作。
WINDOWS創(chuàng)建進程的方法有多種,我更喜歡VC編程,我這里就列舉幾種VC的進程創(chuàng)建方法。
>>WinExec 這種創(chuàng)建進程的方法是沿用原來win16系統(tǒng)下使用的方法。
>>ShellExecute win32 api
>>ShellExecuteEx win32 api
>>CreateProcess win32 api
>>使用組件的進程激活方法
在下面的例子中我只用上面的四種方法,組件的激活方法在這里就不敘述了。

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

上面的示例代碼就這么少,當然使用起來不會象文章中這樣簡單,但是關鍵的也就是這些了。對創(chuàng)建進程就是這么簡單。
我很喜歡玩兩個人比武的游戲,在其中我取得了很多的樂趣,給開游戲廳的老板盡了身為熱血少年的一份心,也為國家多一份稅收。我玩的角色武功套路也就只有這么幾招,招式是簡單了些,但很有用,不是嗎?我經(jīng)常兩個銅牌就可以玩上一兩個時時辰。
posted on 2008-03-21 22:02 Robertxiao 閱讀(403) 評論(0) 編輯 收藏 引用 所屬分類: Windows/MFC探索