누구나 VC++에서 프로세스를 만드는 방법을 알려 줄 수 있습니까? 그 프로세스에서 실행해야Windows에서 C++로 프로세스를 만드는 방법은 무엇입니까?
regasm.exe testdll /tlb:test.tlb /codebase
명령을 실행해야합니다.
누구나 VC++에서 프로세스를 만드는 방법을 알려 줄 수 있습니까? 그 프로세스에서 실행해야Windows에서 C++로 프로세스를 만드는 방법은 무엇입니까?
regasm.exe testdll /tlb:test.tlb /codebase
명령을 실행해야합니다.
CreateProcess()을 msdn에서 읽어야합니다. 해당 페이지에 샘플 코드가 있습니다.
CreateProcess()를 사용하여 프로세스를 생성하고 반환 값이 올바른지 확인한 다음 프로세스와 스레드의 핸들을 닫거나 WaitForSingleObject()를 사용하여 완료 될 때까지 기다린 다음 핸들을 닫습니다.
regasm.exe
당신이 regasm.exe
으로 높은 프로세스는 다음과 같은 코드를 사용할 수 시작할 그래서 만약 (어셈블리 등록 도구), Windows 레지스트리을 변경합니다 : 프로세스가 상승 시작됩니다
#include "stdafx.h"
#include "windows.h"
#include "shellapi.h"
int _tmain(int argc, _TCHAR* argv[])
{
SHELLEXECUTEINFO shExecInfo;
shExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
shExecInfo.fMask = NULL;
shExecInfo.hwnd = NULL;
shExecInfo.lpVerb = L"runas";
shExecInfo.lpFile = L"regasm.exe";
shExecInfo.lpParameters = L"testdll /tlb:test.tlb /codebase";
shExecInfo.lpDirectory = NULL;
shExecInfo.nShow = SW_NORMAL;
shExecInfo.hInstApp = NULL;
ShellExecuteEx(&shExecInfo);
return 0;
}
shExecInfo.lpVerb = L"runas"
shExecInfo.lpVerb
을 NULL로 설정하십시오. 그러나 Vista 또는 Windows 7에서는 Windows 레지스트리의 일부분을 변경하려면 관리자 권한이 필요합니다.
전혀 속지가 아닙니다. 그 다른 질문은 CreateProcess가 그것을 수행하는 유일한 방법이라고 전제합니다. 이것은 하나의 개방형입니다. 기록을 위해 제안 된 속담은 http://stackoverflow.com/questions/42531/how-do-i-call-createprocess-in-c-to-launch-a-windows-executable이었습니다. 나는 내용을 편집하는 것이 나쁜 형태라고 생각하기 때문에 질문의 내가 그 말을 코멘트에 써야한다고 생각합니다. 속임수로 폐쇄되면 SO 그 자체가 문제에 추가됩니다. – paxdiablo