我使用visual studio編寫了Kiosk風格的C#應用程序,該應用程序在啓動時運行,並應擴展爲全屏並覆蓋任務欄。在啓動任務欄上覆蓋全屏C#應用程序
我正在做通常的設置寄宿生風格爲無,並填充範圍,它完美的作品,如果我只是手動啓動應用程序。
當應用程序啓動時(通過啓動菜單中的啓動文件夾中的快捷方式)啓動時,任務欄會在程序頂部結束,並且單擊表單上的某處不會顯示錶單回到頂部。
有沒有人遇到過這個問題,或知道可能的解決方法。
我使用visual studio編寫了Kiosk風格的C#應用程序,該應用程序在啓動時運行,並應擴展爲全屏並覆蓋任務欄。在啓動任務欄上覆蓋全屏C#應用程序
我正在做通常的設置寄宿生風格爲無,並填充範圍,它完美的作品,如果我只是手動啓動應用程序。
當應用程序啓動時(通過啓動菜單中的啓動文件夾中的快捷方式)啓動時,任務欄會在程序頂部結束,並且單擊表單上的某處不會顯示錶單回到頂部。
有沒有人遇到過這個問題,或知道可能的解決方法。
我也這樣做了另一個時間:
public class Screensize
{
/// <summary>
/// Selected Win AI Function Calls
/// </summary>
public class WinApi
{
[DllImport("user32.dll", EntryPoint = "GetSystemMetrics")]
public static extern int GetSystemMetrics(int which);
[DllImport("user32.dll")]
public static extern void
SetWindowPos(IntPtr hwnd, IntPtr hwndInsertAfter,
int X, int Y, int width, int height, uint flags);
private const int SM_CXSCREEN = 0;
private const int SM_CYSCREEN = 1;
private static IntPtr HWND_TOP = IntPtr.Zero;
private const int SWP_SHOWWINDOW = 64; // 0x0040
public static int ScreenX
{
get { return GetSystemMetrics(SM_CXSCREEN); }
}
public static int ScreenY
{
get { return GetSystemMetrics(SM_CYSCREEN); }
}
public static void SetWinFullScreen(IntPtr hwnd)
{
SetWindowPos(hwnd, HWND_TOP, 0, 0, ScreenX, ScreenY, SWP_SHOWWINDOW);
}
}
/// <summary>
/// Class used to preserve/restore state of the form
/// </summary>
public class FormState
{
private FormWindowState winState;
private FormBorderStyle brdStyle;
private bool topMost;
private Rectangle bounds;
private bool IsMaximized = false;
public void Maximize(Form targetForm)
{
if (!IsMaximized)
{
IsMaximized = true;
Save(targetForm);
targetForm.WindowState = FormWindowState.Maximized;
targetForm.FormBorderStyle = FormBorderStyle.None;
targetForm.TopMost = false;
WinApi.SetWinFullScreen(targetForm.Handle);
}
}
public void Save(Form targetForm)
{
winState = targetForm.WindowState;
brdStyle = targetForm.FormBorderStyle;
topMost = targetForm.TopMost;
bounds = targetForm.Bounds;
}
public void Restore(Form targetForm)
{
targetForm.WindowState = winState;
targetForm.FormBorderStyle = brdStyle;
targetForm.TopMost = topMost;
targetForm.Bounds = bounds;
IsMaximized = false;
}
}
,只是在你的形式調用:
screensize.Maximize(this)
我想你的意思是這
現在我看到這個帖子是從2013年...
感謝你們,我幾個星期不會去測試它,但它看起來既不錯,也非常直觀,現在UpVote,並且在我有機會解決這個問題之後將標記爲正確。 – Hugoagogo
不知道,但可能會有o其他程序中斷它 – Rohit
這是在Windows XP的乾淨安裝我不記得是什麼版本,唯一的東西已經安裝的.net可分發和USBCAN適配器的一些驅動程序。 – Hugoagogo
你使用什麼技術? WPF或WinForms? – galenus