ΠΠ»Ρ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° ΡΠΊΡΠ°Π½Π°, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ API ChangeDisplaySettingsEx. ΠΠ°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ DEVMODE. Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π² ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΠΏΠΎΠ»Π΅ Fields, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΡΠ°Π½ΠΈΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ DisplayQueryOrientation. ΠΡΠΎΡ ΡΠ»Π°Π³ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠΌΠ΅Π½Ρ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠΊΡΠ°Π½Π° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ»Π΅ lpDevMode.dmDisplayOrientation. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ DMO_0 Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΠ²ΠΎΡΠΎΡ ΡΠΊΡΠ°Π½Π° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ.
Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 13.5 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΠ° ΠΏΠΎΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΠΊΡΠ°Π½ Π½Π° 90Β°.
ΠΠΈΡΡΠΈΠ½Π³ 13.5// Π€Π»Π°Π³, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° ΡΠΊΡΠ°Π½Π°
private static Int32 DisplayQueryOrientation = 0x01000000;
private static Int32 CDS_TEST = 2;
// Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΊΡΠ°Π½Π°
ScreenOrientation initialOrientation = SystemSettings.ScreenOrientation;
[DllImport("coredll.dll", SetLastError = true)]
private extern static Int32 ChangeDisplaySettingsEx(
String deviceName, ref DeviceMode deviceMode, IntPtr hwnd,
Int32 flags, IntPtr param);
struct DeviceMode {
[MarshalAs(UnmanagedType.ByValTStr, SizeConst - 32)]
public String DeviceName;
public Int16 SpecVersion;
public Int16 DriverVersion;
public Int16 Size;
public Int16 DriverExtra;
public Int32 Fields;
public Int16 Orientation;
public Int16 PaperSize;
public Int16 PaperLength;
public Int16 PaperWidth;
public Int16 Scale;
public Int16 Copies;
public Int16 DefaultSource;
public Int16 PrintQuality;
public Int16 Color;
public Int16 Duplex;
public Int16 Yresolution;
public Int16 TTOption;
public Int16 Collate;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public String FormName;
public Int16 LogPixels;
public Int32 BitsPerPel;
public Int32 PelsWidth;
public Int32 PelsHeight;
public Int32 DisplayFlags;
public Int32 DisplayFrequency;
public Int32 DisplayOrientation;
}
private void butCheckRotate_Click(object sender, EventArgs e) {
// ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΡΡΡΠΊΡΡΡΡ DeviceMode
DeviceMode devMode = new DeviceMode();
devMode.Size = (Int16)Marshal.SizeOf(devMode);
devMode.Fields = DisplayQueryOrientation;
// ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎΠ²ΠΎΡΠΎΡ ΡΠΊΡΠ°Π½Π°
Int32 result =
ChangeDisplaySettingsEx(null, ref devMode, IntPtr.Zero, CDS_TEST,
IntPtr.Zero);
if (result == 0) {
// ΠΡΠ»ΠΈ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΡΠ΅Π» ΡΡΠΏΠ΅ΡΠ½ΠΎ.
// ΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° ΡΠΊΡΠ°Π½Π°
// ΠΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ DisplayOrientation ΠΈΠΌΠ΅Π΅Ρ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅
// Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎ ΠΏΠΎΠ²ΠΎΡΠΎΡ ΡΠΊΡΠ°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½
if (devMode.DisplayOrientation != 0) {
MessageBox.Show("ΠΠΎΠ²ΠΎΡΠΎΡ ΡΠΊΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ");
}
} else {
MessageBox.Show("ΠΠΎΠ²ΠΎΡΠΎΡ ΡΠΊΡΠ°Π½Π° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ");
}
}
private void butRot90_Click(object sender, EventArgs e) {
SystemSettings.ScreenOrientation = ScreenOrientation.Angle90;
}
private void butRestore_Click(object sender, EventArgs e) {
if (SystemSettings.ScreenOrientation != initialOrientation) {
try {
SystemSettings.ScreenOrientation = initialOrientation;
} catch (Exception) {
// Unable to change the orientation back
// to the original configuration.
MessageBox.Show("This sample was unable to set the " +
"orientation back to the original state.");
}
}
}
ΠΡΡΡΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Start
Π€ΡΠ½ΠΊΡΠΈΡ SHFullScreen ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΡΡΠ°ΡΡ ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Start ΠΈ ΠΏΠΈΠΊΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ SIP. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 13.6.
ΠΠΈΡΡΠΈΠ½Π³ 13.6/// <summary>
/// Π€ΡΠ½ΠΊΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΠΈΠ΄Π° ΡΠΊΡΠ°Π½Π°.
/// ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°Π½Π΅Π»Ρ Π·Π°Π΄Π°Ρ, ΠΏΠ°Π½Π΅Π»Ρ Π²Π²ΠΎΠ΄Π°, Π·Π½Π°ΡΠΎΠΊ
/// ΠΡΡΠΊ
/// </summary>
/// <param name="hwndRequester">ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π°</param>
/// <param name="dwState">ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΊΠ½Π°</param>
/// <returns>B ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ True, ΠΈΠ½Π°ΡΠ΅ -
/// False</returns>
[DllImport("aygshell.dll")]
static extern uint SHFullScreen(IntPtr hwndRequester, uint dwState);
const uint SHFS_SHOWTASKBAR = 0x0001;
const uint SHFS_HIDETASKBAR = 0x0002;
const uint SHFS_SHOWSIPBUTTON = 0x0004;
const uint SHFS_HIDESIPBUTTON = 0x0008;
const uint SHFS_SHOWSTARTICON = 0x0010;
const uint SHFS_HIDESTARTICON = 0x0020;
private void butHideStart_Click(object sender, EventArgs e) {
IntPtr hwnd = this.Handle;
//ΠΏΡΡΡΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Start
SHFullScreen(hwnd, SHFS_HIDESTARTICON);
//ΠΏΡΡΡΠ΅ΠΌ SIP
//SHFullScreen(hwnd, SHFS_HIDESIPBUTTON);
}
private void butShowStart_Click(object sender, EventArgs e) {
//ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Start
IntPtr hwnd = this.Handle;
SHFullScreen(hwnd, SHFS_SHOWSTARTICON);
//ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ SIP
//SHFullScreen(hwnd, SHFS_SHOWSIPBUTTON);
}
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΡΡΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Start. ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠΏΡΡΡΠ°ΡΡ ΠΏΠΈΠΊΡΠΎΠ³ΡΠ°ΠΌΠΌΡ SIP, ΡΠΎ Π½Π°Π΄ΠΎ ΡΠ±ΡΠ°ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈ Π²ΡΠΎΡΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ° ΡΠΈΡ. 13.1 ΠΏΠΎΠΊΠ°Π·Π°Π½ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΡΠΊΡΠ°Π½Π° ΡΠΎ ΡΠΏΡΡΡΠ°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Start.
Π ΠΈΡ. 13.1. Π‘ΠΊΡΡΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Start
ΠΠ°Π½Π΅Π»Ρ Π·Π°Π΄Π°Ρ
ΠΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΡΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΡΡΡΡ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π±ΡΠ»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΡΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Start. Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ°Π½Π΅Π»ΡΡ Π·Π°Π΄Π°Ρ.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠΎΡΠΌΠ΅ Π½Π°Π΄ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠΊΡΡΠ²Π°ΡΡ ΠΏΠ°Π½Π΅Π»Ρ Π·Π°Π΄Π°Ρ, Π° Π²ΡΠΎΡΠ°Ρ β ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π΅Π΅. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 13.7.
ΠΠΈΡΡΠΈΠ½Π³ 13.7/// <summary>
/// Π‘ΠΊΡΡΠ²Π°Π΅Ρ ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ Π΄ΡΡΠ³ΠΎΠ΅
/// </summary>
private const int SW_HIDE = 0;
/// <summary>
/// ΠΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ ΠΎΠΊΠ½ΠΎ
/// </summary>
private const int SW_SHOW = 5;
[DllImport("coredll.dll")]
private static extern IntPtr FindWindow(string ClassName, string WindowName);
[DllImport("coredll.dll")]
private static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);
/// <summary>
/// ΠΡΡΡΠ΅ΠΌ ΠΏΠ°Π½Π΅Π»Ρ Π·Π°Π΄Π°Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΌΠΎΠ³
/// Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Start
/// </summary>
public static void HideTaskbar() {
IntPtr h = FindWindow("HHTaskBar", "");
ShowWindow(h, SW_HIDE);
}
/// <summary>
/// ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠ°Π½Π΅Π»Ρ Π·Π°Π΄Π°Ρ
/// </summary>
public static void ShowTaskBar() {
IntPtr h = FindWindow("HHTaskBar", "");
ShowWindow(h, SW_SHOW);
}
private void butHideTaskbar_Click(object sender, EventArgs e) {
HideTaskbar();
}
private void butShowTaskbar_Click(object sender, EventArgs e) {
ShowTaskBar();
}
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ FindWindow ΠΈ ShowWindow ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈ ΡΠΊΡΡΠ²Π°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ°Π½Π΅Π»Ρ Π·Π°Π΄Π°Ρ, Π½ΠΎ ΠΈ ΠΎΠΊΠ½Π° Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ°ΠΏΡΡΠΊ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈΠ· ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄ΡΡΠ³ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ·Π²Π°ΡΡ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΡ API CreateProcess. Π Π»ΠΈΡΡΠΈΠ½Π³Π΅ 13.8 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ, ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΡ ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π°ΡΡ ΡΠ°ΠΉΠ» ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΡΠ°ΠΊΡΠ°ΡΠ½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌΡ ΡΠ΅Π»Π΅ΡΠΎΠ½Ρ. ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π²ΡΠ΅Ρ ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π° ΡΠΎΡΠΌΠ΅ Π½Π°Π΄ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π²ΡΠ΅Π³ΠΎ ΡΡΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
ΠΠΈΡΡΠΈΠ½Π³ 13.8public class ProcessInfo {
public IntPtr hProcess;
public IntPtr hThread;
public Int32 ProcessId;
public Int32 ThreadId;
}
[DllImport("CoreDll.DLL", SetLastError = true)]
private extern static int CreateProcess(
String imageName, String cmdLine, IntPtr lpProcessAttributes,
IntPtr lpThreadAttributes, Int32 boolInheritHandles,
Int32 dwCreationFlags, IntPtr lpEnvironment, IntPtr lpszCurrentDir,
byte[] si, ProcessInfo pi);
private void butCalc_Click(object sender, EventArgs e) {
//ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ
ProcessInfo pi = new ProcessInfo();
CreateProcess(
"calc.exe", "", IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero, IntPtr.Zero,
new Byte[128], pi);
}
private void butCalendar_Click(object sender, EventArgs e) {
//ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΡ
ProcessInfo pi = new ProcessInfo();
CreateProcess(
"calendar.exe", "", IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero,
IntPtr.Zero, new Byte[128], pi);
}
private void butInfra_Click(object sender, EventArgs e) {
//ΠΠΎΡΡΠ»Π°Π΅ΠΌ ΡΠ°ΠΉΠ» ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΡΠ°ΠΊΡΠ°ΡΠ½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅
ProcessInfo pi = new ProcessInfo();
CreateProcess(
"Beam.exe", "\\windows\\Alarm1.wav", IntPtr.Zero, IntPtr.Zero, 0, 0,
IntPtr.Zero, IntPtr.Zero, new Byte[128], pi);
}
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡ. ΠΡΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ CreateProcess Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅. Π ΠΌΠ΅ΡΠΎΠ΄Π΅ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ°ΠΉΠ»Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΈΠΌΡ ΠΎΡΡΡΠ»Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.