以下方法我试过了,不管用。提示没有fexplore.exe这个命令,在“运行”里都找不到这个命令。
2、打开指定的文件夹 TCHAR szAppName[_MAX_PATH] = TEXT("fexplore.exe");//资源管理器程序 TCHAR szCmdLine[_MAX_PATH] = TEXT(\\Windows\\); CreateProcess(szAppName,szCmdLine, NULL, NULL,FALSE, 0, NULL, NULL, NULL, NULL);
多谢各位了!
2、打开指定的文件夹 TCHAR szAppName[_MAX_PATH] = TEXT("fexplore.exe");//资源管理器程序 TCHAR szCmdLine[_MAX_PATH] = TEXT(\\Windows\\); CreateProcess(szAppName,szCmdLine, NULL, NULL,FALSE, 0, NULL, NULL, NULL, NULL);
多谢各位了!
ShellExecute(NULL, "open", "explorer" "", NULL, NULL, 1);
PROCESS_INFORMATION pi = {0}; CreateProcess(szAppName, szCmdLine, NULL, NULL,FALSE, 0, NULL, NULL, &si, &pi);
测试了没问题呀,试试下面的:
// 用CreateProcess打开资源管理器,并定位到C:\Windows文件夹#include <windows.h>
#include <tchar.h>int _tmain()
{
TCHAR szCmd[MAX_PATH] = _T("\"C:\\Windows\\Explorer.exe\" \"C:\\Windows\"");
STARTUPINFO si = {sizeof(si)};
PROCESS_INFORMATION pi = {0}; if (CreateProcess(NULL, szCmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
MessageBox(NULL, _T("打开成功"), NULL, MB_OK);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
} return 0;
}
// Start the child process. First suspend this process
isSuccessFlg = CreateProcess( pName, // pe file name.
pCmdLine, // Command line.
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
CREATE_SUSPENDED, // NULL, // CREATE_DEFAULT_ERROR_MODE.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
&g_curPi // Pointer to PROCESS_INFORMATION structure.
);
if( !isSuccessFlg )
{
printf( "--------- VEAPI RunProcess CreateProcess failed (%d). --------- \n", GetLastError() );
hProcess = NULL;
return isSuccessFlg;
}
else
{
// Assigns a process to an existing job object
isSuccessFlg = AssignProcessToJobObject(g_VEJobList[jobIndex].jobHandle, g_curPi.hProcess);
/*
BOOL WINAPI AssignProcessToJobObject
(
__in HANDLE hJob,
__in HANDLE hProcess
);
*/
if( !isSuccessFlg )
{
DWORD errorCode = GetLastError();
printf("--------- VEAPI RunProcess AssignProcessToJobObject error errorCode = %d --------- \n", errorCode);
return isSuccessFlg;
} // Resume the thread
::ResumeThread(g_curPi.hThread); // Set output parameter
*hProcess = g_curPi.hProcess;
}
isSuccessFlg = CreateProcess( pName, // pe file name.
pCmdLine, // Command line.
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
CREATE_SUSPENDED, // NULL, // CREATE_DEFAULT_ERROR_MODE.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&si, // Pointer to STARTUPINFO structure.
&g_curPi // Pointer to PROCESS_INFORMATION structure.
);
if( !isSuccessFlg )
{
printf( "--------- VEAPI RunProcess CreateProcess failed (%d). --------- \n", GetLastError() );
hProcess = NULL;
return isSuccessFlg;
}
else
{
// Assigns a process to an existing job object
isSuccessFlg = AssignProcessToJobObject(g_VEJobList[jobIndex].jobHandle, g_curPi.hProcess);
/*
BOOL WINAPI AssignProcessToJobObject
(
__in HANDLE hJob,
__in HANDLE hProcess
);
*/
if( !isSuccessFlg )
{
DWORD errorCode = GetLastError();
printf("--------- VEAPI RunProcess AssignProcessToJobObject error errorCode = %d --------- \n", errorCode);
return isSuccessFlg;
} // Resume the thread
::ResumeThread(g_curPi.hThread); // Set output parameter
*hProcess = g_curPi.hProcess;
}
WCHAR szSysDir[120];
// execute windows\system32\taskmgr.exe
GetSystemDirectory(szSysDir, 120);
ShellExecute(NULL, L"open", L"taskmgr.exe", NULL, szSysDir, SW_SHOWNORMAL);