天天看點

C#編寫自動關機程式複習的知識

C#編寫自動關機程式複習的知識

首先一個程式第一要素是logo

在設定裡面可以設定程式圖示,在icon裡設定。

icon圖示可以在網上下載下傳。

這些都是表面功夫

程式中涉及到buton、label、timer、notiflcon控件

button按鈕控件,可以設計點選事件

如下所示:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

<code>private</code> <code>void</code> <code>button1_click(</code><code>object</code> <code>sender, eventargs e)</code>

<code>        </code><code>{</code>

<code>           </code><code>// int shi, fen, miao;</code>

<code>            </code><code>if</code> <code>(flag_true == 0)</code>

<code>            </code><code>{</code>

<code>                </code><code>flag_true = 1;</code>

<code>            </code><code>}</code>

<code>            </code><code>else</code>

<code>                </code><code>button1.text =</code><code>"确定"</code><code>;</code>

<code>                </code><code>label6.text =</code><code>" "</code><code>;</code>

<code>                </code><code>label7.text =</code><code>" "</code><code>;</code>

<code>                </code><code>label5.text =</code><code>" "</code><code>;</code>

<code>                </code><code>//label1.text = "定時關機設定";</code>

<code>                </code><code>flag_true = 0;</code>

<code>            </code><code>shi = (</code><code>int</code><code>)numericupdown3.value;</code>

<code>            </code><code>fen = (</code><code>int</code><code>)numericupdown2.value;</code>

<code>            </code><code>miao = (</code><code>int</code><code>)numericupdown1.value;</code>

<code>            </code><code>time_set = shi * 3600 + fen * 60 + miao;</code>

<code>        </code><code>}</code>

 label控件操作簡單

能夠顯示字元,并且其成員有text,可以随時更改文本

timer控件相當于嵌入式中的定時器,在屬性中行為一欄中設定enable 并且設定interval時間間隔500就是半秒。

22

23

24

25

26

27

28

29

30

31

32

33

34

35

<code>private</code> <code>void</code> <code>timer1_tick(</code><code>object</code> <code>sender, eventargs e)</code>

<code>            </code><code>int32 time_now;</code>

<code>            </code><code>int32 extra;</code>

<code>            </code><code>if</code> <code>(flag_true == 1)</code>

<code>                </code><code>if</code> <code>(datetime.now.minute == fen &amp;&amp; datetime.now.hour == shi &amp;&amp; datetime.now.second == miao)</code>

<code>                </code><code>{</code>

<code>                    </code><code>button1.text =</code><code>"取消"</code><code>;</code>

<code>                    </code><code>label6.text =</code><code>"剩餘關機時間"</code><code>;</code>

<code>                    </code><code>label7.text =</code><code>"秒"</code><code>;</code>

<code>                    </code><code>label5.text =</code><code>"0"</code><code>;</code>

<code>                    </code><code>system.diagnostics.process.start(</code><code>"shutdown"</code><code>,</code><code>"-s -t 0"</code><code>);</code><code>//關機程式</code>

<code>                </code><code>}</code><code>//shutdown</code>

<code>                </code><code>else</code>

<code>                    </code><code>time_now = datetime.now.second + datetime.now.minute * 60 + datetime.now.hour * 3600;</code>

<code>                    </code><code>extra = time_set - time_now;</code>

<code>                    </code><code>if</code> <code>(extra &gt; 0)</code>

<code>                    </code><code>{</code>

<code>                        </code><code>button1.text =</code><code>"取消"</code><code>;</code>

<code>                        </code><code>label6.text =</code><code>"剩餘關機時間"</code><code>;</code>

<code>                        </code><code>label7.text =</code><code>"秒"</code><code>;</code>

<code>                        </code><code>//extra/3600</code>

<code>                        </code><code>label5.text = extra.tostring();</code>

<code>                    </code><code>}</code>

<code>                    </code><code>else</code>

<code>                        </code><code>flag_true = 0;</code>

<code>                        </code>

<code>                    </code>

<code>                </code><code>}</code>

上面我每隔半秒進入中斷一次,判斷,如果已經設定過定時關機,就判斷是否到達關機時間,并顯示還剩多少秒關機。如果沒有設定定時關機,就不顯示。

其中button1和label的text都可以随時更改。

基本功能設定完成

接下來還有一個最小化到托盤的設定

用到notiflcon控件

此控件設定最小化圖示,在設定裡可以設定icon圖示。

他帶有的事件有滑鼠單擊,滑鼠輕按兩下,單擊,輕按兩下。

<code>private</code> <code>void</code> <code>notifyicon1_mouseclick(</code><code>object</code> <code>sender, mouseeventargs e)</code>

<code>            </code><code>this</code><code>.visible =</code><code>true</code><code>;</code>

<code>            </code><code>this</code><code>.windowstate = formwindowstate.normal;</code>

<code>            </code><code>this</code><code>.notifyicon1.visible =</code><code>false</code><code>;</code>

上述我設定了滑鼠單擊,代碼裡是恢複可視化,正常視窗。

再之得設定程式最小化時隐藏在下邊

<code>private</code> <code>void</code> <code>form1_sizechanged(</code><code>object</code> <code>sender, eventargs e)</code>

<code>            </code><code>if</code> <code>(</code><code>this</code><code>.windowstate == formwindowstate.minimized)</code>

<code>                </code><code>this</code><code>.hide();</code>

<code>                </code><code>this</code><code>.notifyicon1.visible =</code><code>true</code><code>;</code>

上述就是一個關機程式,自己做着玩的。。

整體構架如下圖所示。

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

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

<code>namespace</code> <code>關機任務管理v1._0</code>

<code>{</code>

<code>    </code><code>public</code> <code>partial</code> <code>class</code> <code>form1 : form</code>

<code>    </code><code>{</code>

<code>        </code><code>int</code> <code>shi, fen, miao;</code>

<code>        </code><code>int32 time_set;</code>

<code>        </code><code>int</code> <code>flag_true = 0;</code>

<code>        </code><code>public</code> <code>form1()</code>

<code>            </code>

<code>            </code><code>initializecomponent();</code>

<code>        </code><code>private</code> <code>void</code> <code>form1_load(</code><code>object</code> <code>sender, eventargs e)</code>

<code>        </code><code>private</code> <code>void</code> <code>numericupdown1_valuechanged(</code><code>object</code> <code>sender, eventargs e)</code>

<code>            </code><code>if</code> <code>(numericupdown1.value == -1)</code>

<code>                </code><code>numericupdown1.value = 60;</code>

<code>            </code><code>else</code> <code>if</code> <code>(numericupdown1.value == 61)</code>

<code>                </code><code>numericupdown1.value = 0;</code>

<code>        </code><code>private</code> <code>void</code> <code>numericupdown2_valuechanged(</code><code>object</code> <code>sender, eventargs e)</code>

<code>            </code><code>if</code> <code>(numericupdown2.value == -1)</code>

<code>                </code><code>numericupdown2.value = 60;</code>

<code>            </code><code>else</code> <code>if</code> <code>(numericupdown2.value == 61)</code>

<code>                </code><code>numericupdown2.value = 0;</code>

<code>        </code>

<code>        </code><code>private</code> <code>void</code> <code>numericupdown3_valuechanged(</code><code>object</code> <code>sender, eventargs e)</code>

<code>            </code><code>if</code> <code>(numericupdown3.value == 25)</code>

<code>                </code><code>numericupdown3.value = 0;</code>

<code>            </code><code>else</code> <code>if</code> <code>(numericupdown3.value == -1)</code>

<code>                </code><code>numericupdown3.value = 24;</code>

<code>        </code><code>private</code> <code>void</code> <code>button1_click(</code><code>object</code> <code>sender, eventargs e)</code>

<code>        </code><code>private</code> <code>void</code> <code>timer1_tick(</code><code>object</code> <code>sender, eventargs e)</code>

<code>        </code><code>private</code> <code>void</code> <code>label5_click(</code><code>object</code> <code>sender, eventargs e)</code>

<code>        </code><code>private</code> <code>void</code> <code>label4_click(</code><code>object</code> <code>sender, eventargs e)</code>

<code>        </code><code>private</code> <code>void</code> <code>label3_click(</code><code>object</code> <code>sender, eventargs e)</code>

<code>        </code><code>private</code> <code>void</code> <code>label6_click(</code><code>object</code> <code>sender, eventargs e)</code>

<code>        </code><code>private</code> <code>void</code> <code>notifyicon1_mouseclick(</code><code>object</code> <code>sender, mouseeventargs e)</code>

<code>        </code><code>//最小化代碼</code>

<code>        </code><code>private</code> <code>void</code> <code>form1_sizechanged(</code><code>object</code> <code>sender, eventargs e)</code>

<code>    </code><code>}</code>

<code>}</code>

界面如下:

C#編寫自動關機程式複習的知識

作者:刁鑽的遊戲

來源:51cto