In einem MFC-Programm können Sie bestimmen, ob die Anwendung Verknüpfung den Run-Wert auf "Minimiert" festgelegt hat, indem Sie den Wert von m_nCmdShow
überprüfen. Gibt es einen entsprechenden Weg, dies in c # zu tun?
Um klarzustellen, möchte ich nicht den Zustand eines bestimmten Formulars festlegen. Wenn Sie sich die Eigenschaften für eine Verknüpfung ansehen, gibt es eine Option "Ausführen". Sie können diesen Wert auf Normales Fenster, Minimiert oder Maximiert festlegen.
In C ++ können Sie lesen, was für den Startwert festgelegt wurde, indem Sie m_nCmdShow
betrachten. Ich muss dasselbe in C # machen.
Aktualisieren
Dieser Versuch:
%Vor% meldet immer Normal
, unabhängig davon, für welche Verknüpfung die Verknüpfung festgelegt ist.
In WindowsForms ist dies die WindowState-Eigenschaft der Form-Klasse. überprüfen Sie es in den Eigenschaften zur Entwurfszeit oder stellen Sie es vom Code ein.
Bearbeiten: Wenn Sie das Programm über eine Verknüpfung ausführen, verwendet Windows wahrscheinlich die API CreateProcess, die eine STARTUPINFO-Struktur enthält.
Von Ihrer Windows Forms-Anwendung erhalten Sie eine solche Struktur auf diese Weise:
%Vor% enthält die Eigenschaft: WindowStyle
und die verfügbaren Werte dafür sind diejenigen der enum:
so:
%Vor% und das ist die Zuordnung zu m_nCmdShow
, nach der das OP sucht.
Damit können Sie den ursprünglichen Fensterstatus abrufen, indem Sie in Ihrem Code auf NativeMethods.StartupInfo.GetInitialWindowStyle()
zugreifen. Sie können weitere Informationen verwenden, indem Sie auf NativeMethods.StartupInfo.FromCurrentProcess
zugreifen. Wenn Sie Ihr Programm von cmd.exe mit START "My Program Title" /MIN MyProgram.exe
starten, finden Sie "Mein Programmtitel" in NativeMethods.StartupInfo.FromCurrentProcess.lpTitle
und NativeMethods.StartupInfo.GetInitialWindowStyle()
gibt ProcessWindowStyle.Minimized
zurück.
Tags und Links c#