VC++でプロセスを作成する方法を教えてもらえますか?そのプロセスではWindowsでC++でプロセスを作成するには?
regasm.exe testdll /tlb:test.tlb /codebase
コマンドを実行する必要があります。
VC++でプロセスを作成する方法を教えてもらえますか?そのプロセスではWindowsでC++でプロセスを作成するには?
regasm.exe testdll /tlb:test.tlb /codebase
コマンドを実行する必要があります。
msdnでCreateProcess()を読んでください。そのページにサンプルコードがあります。
プロセスを生成するためにCreateProcess()を使用し、戻り値が正常に開始されたことを確認してから、プロセスとスレッドのハンドルを閉じるか、WaitForSingleObject()を使用して終了してハンドルを閉じます。
regasm.exe
は(アセンブリ登録ツール)Windowsレジストリの変更、あなたがregasm.exe
として昇格プロセスを開始したいので、もしあなたが、次のコードを使用することができますを行います
#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がそれを行う唯一の方法であることを前提としています。これはもっと自由である。記録のために、提案されたdupeはhttp://stackoverflow.com/questions/42531/how-do-i-call-createprocess-in-c-to-launch-a-windows-executableでした - 私はそれを取り出しました私はコンテンツを編集するのが悪いフォームだと思っています。私はそれがコメントに入れられるべきだと信じています。それが欺瞞として閉じられるならば、それ自体がそれを質問に加えます。 – paxdiablo