private void butGetEmail_Click(object sender, EventArgs e) {
//ΠΠΎΠ»ΡΡΠΈΠΌ email Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°
lblOwnerEmail.Text = SystemState.OwnerEmail;
}
ΠΠ°, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π½ΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅Π»ΡΠ·Ρ ΡΠ·Π½Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡ. ΠΡΠΈΠ΄Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ Π»ΠΈ Π°Π΄ΡΠ΅Ρ Ρ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΠΎ ΡΡΠΎΠΈΡ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ SystemState. ΠΠ°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ°ΡΠΈΡΠ½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ² Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎ ΠΊΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡ SystemState ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ Changed. ΠΠ»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ Π½ΡΠΆΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° SystemState ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅ΠΌΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ:
sysState = new SystemState(SystemProperty.OwnerEmail, true);
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΄Π΅Π»Π΅Π³Π°Ρ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΡΠΎΠ±ΡΡΠΈΡ Changed:
sysState.Changed += new ChangeEventHandler(sysState_Changed);
Π ΡΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½ΡΠΆΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²:
private void sysState_Changed(object sender, ChangeEventArgs args) {
lblOwnerEmail.Text = SystemState.OwnerEmail;
}
ΠΡΠΈΠΌΠ΅Ρ Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ Π±ΡΠ» ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π»ΠΈΡΡ Π΄Π»Ρ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΠΊ ΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌ. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ State ΠΈ Notifications Broker ΠΏΠΎΡΠΎΠΉ Π΄ΡΠ±Π»ΠΈΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ΅Π΄ΡΡΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΊΡΡΡΡ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠΊΡΠ°Π½Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ API GetSystemMetrics ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²Π° Screen.PrimaryScreen.Bounds. Π ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π·Π°ΡΡΠ΄Π΅ Π±Π°ΡΠ°ΡΠ΅ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ GetSystemPowerStatusEx.
ΠΠΎ Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΎΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ? ΠΡΠΈΡΠΈΠ½ Π΄Π»Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°Π³Π° Π±ΡΠ»ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ. ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ΄ΠΎΠ±Π½Ρ ΠΈ ΠΏΡΠΎΡΡΡ. Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π±ΡΠ»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΎΠ΄Π½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°. ΠΡΠΈΡΠ΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΡΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² Π³ΠΎΠ²ΠΎΡΡΡ ΡΠ°ΠΌΠΈ Π·Π° ΡΠ΅Π±Ρ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΡΡ Π½Π°Π»ΠΈΡΠΈΡ ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠΉ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ.
ΠΠ»Ρ Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ². ΠΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ²Π½Ρ Π·Π°ΡΡΠ΄Π° Π±Π°ΡΠ°ΡΠ΅ΠΈ, ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π±Π°ΡΠ°ΡΠ΅ΠΈ, Π½Π°Π»ΠΈΡΠΈΡ ΡΠ°Π΄ΠΈΠΎΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° ΠΈ ΡΠΎΡΠΎΠΊΠ°ΠΌΠ΅ΡΡ, Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠΎΡΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠΊΡΠ°Π½Π°. ΠΡΠ΅ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠ΄, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 10.15.
ΠΠΈΡΡΠΈΠ½Π³ 10.15private void butGetInfo_Click(object sender, EventArgs e) {
lstInfo.Items.Add("ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°: " + SystemState.PhoneOperatorName);
lstInfo.Items.Add("ΠΠ°Π»ΠΈΡΠΈΠ΅ ΡΠ°Π΄ΠΈΠΎ: " + SystemState.PhoneRadioPresent);
lstInfo.Items.Add("ΠΠ°Π»ΠΈΡΠΈΠ΅ ΠΊΠ°ΠΌΠ΅ΡΡ: " + SystemState.CameraPresent);
lstInfo.Items.Add("ΠΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠΊΡΠ°Π½Π° " + SystemState.DisplayRotation);
}
private void butBattery_Click(object sender, EventArgs e) {
// Π£ΡΠΎΠ²Π΅Π½Ρ Π·Π°ΡΡΠ΄Π° Π±Π°ΡΠ°ΡΠ΅ΠΈ
BatteryLevel batteryLevel = SystemState.PowerBatteryStrength;
BatteryState batteryState = SystemState.PowerBatteryState;
string strBatteryLevel = "Π£ΡΠΎΠ²Π΅Π½Ρ Π·Π°ΡΡΠ΄Π°";
switch (batteryLevel) {
case BatteryLevel.VeryLow:
strBatteryLevel = "Π£ΡΠΎΠ²Π΅Π½Ρ Π·Π°ΡΡΠ΄Π°: ΠΡΠ΅Π½Ρ Π½ΠΈΠ·ΠΊΠΈΠΉ (0-20%)";
break;
case BatteryLevel.Low:
strBatteryLevel = "Π£ΡΠΎΠ²Π΅Π½Ρ Π·Π°ΡΡΠ΄Π°: ΠΠΈΠ·ΠΊΠΈΠΉ (21-40%)";
break;
case BatteryLevel.Medium:
strBatteryLevel = "Π£ΡΠΎΠ²Π΅Π½Ρ Π·Π°ΡΡΠ΄Π°: Π‘ΡΠ΅Π΄Π½ΠΈΠΉ (41-60%)";
break:
case BatteryLevel.High:
strBatteryLevel = "Π£ΡΠΎΠ²Π΅Π½Ρ Π·Π°ΡΡΠ΄Π°: ΠΡΡΠΎΠΊΠΈΠΉ (61-80%)";
break;
case BatteryLevel.VeryHigh:
strBatteryLevel = "Π£ΡΠΎΠ²Π΅Π½Ρ Π·Π°ΡΡΠ΄Π°: ΠΡΠ΅Π½Ρ Π²ΡΡΠΎΠΊΠΈΠΉ (81-100%)";
break;
}
// Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π±Π°ΡΠ°ΡΠ΅ΠΈ
string strBatteryState = "Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π±Π°ΡΠ°ΡΠ΅ΠΈ: ";
if ((batteryState & BatteryState.Normal) == BatteryState.Normal)
strBatteryState += "ΠΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅";
if ((batteryState & BatteryState.NotPresent) == BatteryState.NotPresent)
strBatteryState += "ΠΠ°ΡΠ°ΡΠ΅Ρ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ";
if ((batteryState & BatteryState.Charging) == BatteryState.Charging)
strBatteryState += "ΠΠ°ΡΡΠΆΠ°Π΅ΡΡΡ ";
if ((batteryState & BatteryState.Low) == BatteryState.Low)
strBatteryState += "ΠΠΈΠ·ΠΊΠΈΠΉ Π·Π°ΡΡΠ΄ ";
if ((batteryState & BatteryState.Critical) == BatteryState.Critical)
strBatteryState += "ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅";
MessageBox.Show(strBatteryLevel + "\n" + strBatteryState);
}
ΠΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ°
Π‘ΠΈΡΡΠ΅ΠΌΠ° Windows Mobile 5.0 ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡΠ±ΠΎΠΊΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ°, ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΎΡΠΎΠΊΠ°ΠΌΠ΅ΡΠΎΠΉ, Π²ΡΡΡΠ°ΠΈΠ²Π°Ρ Π² ΡΠ²ΠΎΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΊΠ°ΠΌΠ΅ΡΠΎΠΉ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΊΠ°ΡΡΠΈΠ½ΠΎΠΊ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΡΠΎΠ»ΠΈΠΊΠΎΠ². Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Microsoft DirectShow Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΌΠΈ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΡΠΌΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°ΠΌΠΈ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Microsoft Windows Media Player 10 Mobile ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π΅Π΅ΡΠ° Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Microsoft DirectDraw ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Microsoft Direct3D ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ³ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄. ΠΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠΎΠΈΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
ΠΡΠ±ΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
Π ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Windows Mobile 5.0 ΡΡΠ°Π»ΠΎ ΠΏΠΎΡΠ°Π·ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΉ ΠΈ ΡΠΈΡΡΠ½ΠΊΠΎΠ². ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π²ΡΠ±ΠΎΡΠ° ΡΠΈΡΡΠ½ΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π½ΡΠΆΠ½ΡΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ. ΠΠΎΡΡΡΠΏ ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌΡ ΠΎΠΊΠ½Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠΈΡΡΠ½ΠΊΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠ»Π°ΡΡΠ° Microsoft.WindowsMobile.Forms.SelectPictureDialog.
ΠΠΎ Π»ΡΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ Π²ΡΠ±ΠΎΡΠ° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅. ΠΠ° ΡΠΎΡΠΌΠ΅ Π½Π°Π΄ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΠΌΠ΅ΡΠΊΡ lblSelectedPicture ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΠ»Π΅ picSelectImage. ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½ Microsoft.WindowsMobile.Forms. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 10.16.
ΠΠΈΡΡΠΈΠ½Π³ 10.16private void butSelectPicture_Click(object sender, EventArgs e) {
SelectPictureDialog selectPictureDialog = new SelectPictureDialog();
// ΠΠ°Π΄Π°Π΅ΠΌ ΡΠΈΠ»ΡΡΡ
selectPictureDialog.Filter = "Π ΠΈΡΡΠ½ΠΊΠΈ(*.BMP;*.JPG)|*.BMP;*.JPG";
// ΠΠ°Π΄Π°Π΅ΠΌ ΠΏΠ°ΠΏΠΊΡ Π΄Π»Ρ ΠΎΠ±Π·ΠΎΡΠ°
selectPictureDialog.InitialDirectory = Windows";
// ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π΄Π»Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°
selectPictureDialog.Title = "ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠΈΡΡΠ½ΠΎΠΊ";
if (selectPictureDialog.ShowDialog() = DialogResult.OK &&
selectPictureDialog.FileName.Length > 0) {
// ΠΠΎΠ»ΡΡΠΈΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°
string fileExtension = Path.GetExtension(selectPictureDialog.FileName);
// ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΡΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°
lblSelectedPicture.Text = "ΠΡΠ±ΡΠ°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ»: " +
selectPictureDialog.FileName;
// ΠΡΠ»ΠΈ Π²ΡΠ±ΡΠ°Π½ ΡΠ°ΠΉΠ» JPG, ΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½
if (fileExtension.ToLower() == ".jpg")
picSelectedImage.Image = new Bitmap(selectPictureDialog.FileName);
}
}
Π Π½Π°ΡΠ°Π»Π΅ ΡΠ°Π±ΠΎΡΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ SelectPictureDialog, Π° Π·Π°ΡΠ΅ΠΌ Π΄Π»Ρ Π½Π΅Π³ΠΎ Π·Π°Π΄Π°ΡΡΡΡ Π½ΡΠΆΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Filter ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΠ±ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ .BMP ΠΈ .JPG. ΠΠ°ΡΠ΅ΠΌ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ°ΡΡΠΎΠ²Π°Ρ ΠΏΠ°ΠΏΠΊΠ°. Π‘ΡΡΠΎΠ³ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π² Windows Mobile Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠ°ΡΡΠΈΠ½ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠ°ΠΏΠΊΠ° ΠΠΎΠΈ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ. ΠΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π΅ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΠ°ΠΏΠΊΡ.
Π ΠΈΡ. 10.11. ΠΡΠ±ΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΠΎΡΠΎΠΌ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΠΊΡΡ, ΠΏΠΎΡΡΠ½ΡΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΡΠΎ Π±ΡΠ» ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° SelectPictureDialog ΠΊΠΎΠ΄.
ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ±ΡΠ°Π» ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ ΠΈ Π½Π°ΠΆΠ°Π» Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ OK, ΡΠΎ Π½Π°Π΄ΠΎ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ». Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Path.GetExtension ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°. Π ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΌΠ΅ΡΠΊΠ΅ lblSelectedPicture ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ, Π° Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΠ»Π΅ picSelectedImage ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ°ΠΌΠ° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°. ΠΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ .JPG (ΡΠΈΡ. 10.11).
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²ΡΠ±ΠΎΡΠ° ΡΠΈΡΡΠ½ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ ΠΈΠ· Π»ΡΠ±ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
Π Π°Π±ΠΎΡΠ° Ρ ΡΠΎΡΠΎΠΊΠ°ΠΌΠ΅ΡΠΎΠΉ
ΠΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π²ΡΠ΅ ΡΠ°ΡΠ΅ ΡΠ½Π°Π±ΠΆΠ°ΡΡΡΡ ΡΠΎΡΠΎΠΊΠ°ΠΌΠ΅ΡΠ°ΠΌΠΈ. ΠΡΠΈΡΠ΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΊΠ°ΠΌΠ΅ΡΡ Π½Π° ΡΠΌΠ°ΡΡΡΠΎΠ½Π΅ ΡΡΠΈΡΠ°ΡΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ. Π‘ΠΈΡΡΠ΅ΠΌΠ° Windows Mobile 5.0 ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠ°ΠΌΠ΅ΡΠΎΠΉ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² ΡΠ²ΠΎΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ .
ΠΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π·Π°Ρ Π²Π°ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΡΠΎΠ³ΡΠ°ΡΠΈΠΈ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΌΠ΅ΡΡ. ΠΠΎΡΡΡΠΏ ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ ΠΊΠ°ΠΌΠ΅ΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠ»Π°ΡΡΠ° Microsoft.WindowsMobile.Forms.CameraCaptureDialog. ΠΠ»Π°ΡΡ CameraCaptureDialog ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΠΊΠ»Π°ΡΡ SelectPictureDialog.
Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ Mode ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠΌ ΡΡΠ΅ΠΌΠΊΠΈ. ΠΠ°ΠΌΠ΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠΎΡΠΎΠ°ΠΏΠΏΠ°ΡΠ°Ρ, ΡΡΠΎ Π·Π°Π΄Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ CameraCaptureMode.Still, ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π²ΠΈΠ΄Π΅ΠΎΡΠΎΠ»ΠΈΠΊ. ΠΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ShowDialog, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ Π·Π°ΠΊΡΡΡΠΎ ΠΎΠΊΠ½ΠΎ. ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ±ΡΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡ OK, ΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ DialogResult.OK. ΠΠΌΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ FileName. Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 10.17 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΡΠΎΠΊΠ°ΠΌΠ΅ΡΠΎΠΉ.