我通過C++使用app="http://..."
參數(Chrome應用程序快捷方式)啓動Chrome。現在它似乎打開了大約400x800這是瘋了。我想打開它最大化或至少它記得它的大小。如何啓動通過shell執行最大化的Chrome?
有沒有辦法做到這一點?
我通過C++使用app="http://..."
參數(Chrome應用程序快捷方式)啓動Chrome。現在它似乎打開了大約400x800這是瘋了。我想打開它最大化或至少它記得它的大小。如何啓動通過shell執行最大化的Chrome?
有沒有辦法做到這一點?
如果你不介意使用默認瀏覽器(在我看來,是最好的選擇),而不是強制使用Chrome瀏覽器,你可以簡單地說,你要最大化窗口ShellExecute
指定打開的網址:
#include <windows.h>
#include <Shellapi.h>
// requires linking towards Shell32.lib
// ...
if(ShellExecute(NULL, "open", "http://www.stackoverflow.com", NULL, NULL, SW_SHOWMAXIMIZED)<=32)
{
/* an error occurred */
}
我必須打開瀏覽器,和我有一個可變的路徑聞名。我也需要指定一個參數。這是一個問題嗎?
那麼,在這種情況下,最好使用CreateProcess
:
#include <windows.h>
// ...
// Assuming that the path to chrome is inside the chromePath variable
// and the URL inside targetURL
// Important: targetURL *must be* a writable buffer, not a string literal
// (otherwise the application may crash on Unicode builds)
PROCESS_INFORMATION processInformation;
STARTUPINFO startupInfo;
memset(&processInformation, 0, sizeof(processInformation));
memset(&startupInfo, 0, sizeof(startupInfo));
startupInfo.cb = sizeof(startupInfo);
startupInfo.wShowWindow = SW_SHOWMAXIMIZED;
BOOL result= CreateProcess(chromePath, targetURL, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &startupInfo, &processInformation);
if(result)
{
WaitForSingleObject(processInformation.hProcess, INFINITE);
CloseHandle(processInformation.hProcess);
CloseHandle(processInformation.hThread);
}
else
{
// An error happened
}
請注意,您可以嘗試使用的dwX
/dwY
/dwXSize
/dwYSize
成員指定的窗口默認大小/ posizion STARTUPINFO
結構,但我不確定Chrome是否遵守這些設置。
我*必須*打開Chrome,並且我已經在變量中知道它的路徑,我還需要指定一個參數,這是一個問題嗎? – Tower
您可以重新調整此代碼以使用它,但如果你有一個特定的路徑,最好使用'CreateProcess'並保持它的外殼,我會在2分鐘後發佈代碼 –
好的,答案已更新 –
- 啓動最大化應該做的伎倆。 從http://peter.sh/experiments/chromium-command-line-switches/ 兩者還沒雖然測試它自己..
它不起作用:(。 – Tower
你是如何啓動它? ('CreateProcess','ShellExecute',...) –
我正在使用'_popen'(Windows)。 – Tower
@Matteo:但是如果您知道如何使用'CreateProcess'或其他方式工作,我很高興聽到! – Tower