2016-07-04 8 views
0

Wie gebe ich den folgenden nCmdShow-Parameter an? Was ist der Name des Befehlszeilenarguments? Oder wird dieser Parameter nur verwendet, wenn CreateProcess verwendet wird?So geben Sie den Windows-Hauptparameter nCmdShow an

int APIENTRY _tWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPTSTR lpCmdLine, _In_ int nCmdShow) 

Sollte es so etwas wie: myexe.exe /nCmdShow=1?

+2

Es ist nicht in der Befehlszeile angegeben. Wie Sie bereits angemerkt haben, wird beim Starten einer App der Parameter 'STARTUPINFO' von CreateProcess verwendet, und ein separater Parameter übernimmt die Befehlszeile. Wenn Sie nicht selbst 'CreateProcess' aufrufen, können Sie dieses Flag nicht wirklich beeinflussen - nun ja - Shortcuts haben ein Feld namens" Run "(von allen Dingen), das es setzt. –

+0

ok, der Taskplaner läuft meine App, also möchte ich es nicht sichtbar, wenn der TS es sonst sichtbar läuft. Ich denke also, ich übergebe einfach ein benutzerdefiniertes Kommandozeilenarg, um zu entscheiden, ob es sichtbar sein soll, anstatt nCmdShow zu verwenden. –

+0

Wenn es Ihre App ist, können Sie das tun. Aber bei anderen Apps könntest du sicher einen Shortcut und einen Taskplaner erstellen. –

Antwort

-2

nCmdShow hat nichts mit App-Befehlszeile zu tun. Docs Folgendes sagen:

Steuert, wie das Fenster angezeigt werden soll.

Und der Wert ist einer der SW_* Codes. Um zu überprüfen, welcher genaue Wert übergeben wird, überprüfen Sie den Anwendungsstart-Quellcode, der mit Windows SDK verfügbar sein sollte (zumindest für Platform SDK für w2k). Zum Beispiel siehe here.

+2

* "Ich vermute, dass dieser Parameter nur aus alten 16-Bit-Windows-Tagen stammt und der tatsächliche Wert immer konstant ist." * - Nein, ist es nicht. Es ist der Wert, der in * nShow * von [SHELLEXECUTEINFO] (https://msdn.microsoft.com/en-us/library/windows/desktop/bb759784.aspx) gespeichert wird, wenn "ShellExecuteEx" oder * wShowWindow * von [ STARTUPINFO] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms686331.aspx) beim Aufruf von 'CreateProcess'. Weitere Informationen finden Sie im Abschnitt * Remarks * für [ShowWindow] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms633548.aspx). – IInspectable

+0

@Intspectable Ja, Sie haben recht: Es wird in einigen Fällen von 'STARTUPINFO' geholt. Antwort korrigieren. – Sergio

+1

* "Startup-Quellcode der Anwendung prüfen, der mit Windows SDK verfügbar sein soll" * - Der CRT (und der darin enthaltene Startcode) ist Teil des Compilers. Es wird nicht mit dem SDK ausgeliefert und hat es nie. Außerdem ist es nicht sehr aufschlussreich: Es ruft einfach [GetStartupInfo] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms683230.aspx). – IInspectable

Verwandte Themen