Cita:
Empezado por yelian
...explicarme como pudiera poner el contenido de un Edit en el parámetro (L"User", // El usuario)...
|
Cita:
Empezado por escafandra
Te habrás fijado que esta API trabaja con wchar_t* en lugar de char*. Esta es la forma de trabajo interno de Windows.
|
Revisa wchar_t y las cadenas Unicode.
Código:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
PROCESS_INFORMATION piProcInfo;
STARTUPINFOW siStartInfo;
// Set up members of STARTUPINFO structure.
ZeroMemory(&siStartInfo, sizeof(STARTUPINFO));
siStartInfo.cb = sizeof(STARTUPINFO);
HRESULT hRes = CreateProcessWithLogonW(
WideString(Edit1->Text.c_str()), // L"User", // El usuario
WideString(Edit2->Text.c_str()), // L".", // El dominio
WideString(Edit3->Text.c_str()), // L"Password", // El password
LOGON_WITH_PROFILE,
NULL,
L"Notepad.exe", // Nombre de la aplicación
NULL, // flags
NULL, // entorno
L"C:\\", // use parent's current directory
&siStartInfo, // puntero STARTUPINFO
&piProcInfo // PROCESS_INFORMATION (valor devuelto)
);
// Liberamos los Handles que no vamos a usar
if(hRes){
CloseHandle(piProcInfo.hProcess);
CloseHandle(piProcInfo.hThread);
}
}
Saludos.