CreateProcessWithLogonW



  • Hallo,
    ich versuche einen Prozess unter einem (administrativen) Konto zum laufen zu bringen, leider ohne Erfolg. Compiler Fehlermeldung:

    [Linker error] undefined reference to `_Z23CreateProcessWithLogonWPKwS0_S0_mS0_PwmPvS0_P13_STARTUPINFOWP20_PROCESS_INFORMATION@44'
    Die libadvapi32.a ist aber in Projekt eingebunden... Entwicklungsumgebung ist DevC++ V.4.9.9.2, Platform: XP mit SP2.

    Hat jemand eine Idee woran es liegen könnte?

    Worin liegt der Unterschied zw. LPSTARTUPINFO und LPSTARTUPINFOW?

    #include <cstdlib>
    #include <iostream>
    #include <Windows.h>

    using namespace std;

    //***
    BOOL WINAPI CreateProcessWithLogonW(
    LPCWSTR lpUsername,
    LPCWSTR lpDomain,
    LPCWSTR lpPassword,
    DWORD dwLogonFlags,
    LPCWSTR lpApplicationName,
    LPWSTR lpCommandLine,
    DWORD dwCreationFlags,
    LPVOID lpEnvironment,
    LPCWSTR lpCurrentDirectory,
    LPSTARTUPINFOW lpStartupInfo,
    LPPROCESS_INFORMATION lpProcessInfo
    );
    //***

    int main(int argc, char *argv[])
    {

    HANDLE token = NULL;
    STARTUPINFOW si;
    PROCESS_INFORMATION pi;
    memset(&si,0,sizeof(STARTUPINFOW));
    si.cb = sizeof(STARTUPINFOW);
    si.wShowWindow = SW_SHOW;
    si.lpTitle = NULL;

    CreateProcessWithLogonW(
    LPCWSTR (":-)"), //LPCWSTR lpUsername
    LPCWSTR (":-)"), //LPCWSTR lpDomain
    LPCWSTR (":-)"), //LPCWSTR lpPassword
    0, //DWORD dwLogonFlags
    NULL, //LPCWSTR lpApplicationName
    LPCWSTR ("C:\\WINDOWS\\notepad.exe"), //LPWSTR lpCommandLine
    0, //DWORD dwCreationFlags
    NULL, //LPVOID lpEnvironment
    NULL, //LPCWSTR lpCurrentDirectory
    &si, //LPSTARTUPINFOW lpStartupInfo
    &pi //LPPROCESS_INFORMATION lpProcessInfo
    );
    etc.
    .
    .
    .

    return EXIT_SUCCESS;
    }



  • Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum WinAPI in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • kaasiro schrieb:

    Hat jemand eine Idee woran es liegen könnte?

    Du musst gegen die Advapi32.lib Bibliothek linken.

    kaasiro schrieb:

    Worin liegt der Unterschied zw. LPSTARTUPINFO und LPSTARTUPINFOW?

    Das 'W' steht für Wide-Character und bedeutet, dass es sich um die UNICODE-Version der Struktur handelt.



  • Danke für die Info, das mit dem "W" ist jetzt klar.
    Ich habe nach wie vor Probleme mit dem Einbinden der Advapi32.lib Bibliothek. Ich habe sie aus dem Projekt entfernt und neu eingebunden - keine Änderung 😞
    Noch ein Punkt: Ich habe auf meine HD nach der Advapi32.lib gesucht, die Datei wurde nicht gefunden?! Wenn ich aber in dem ..\Dev-Cpp\lib Verzeichnis nachschaue, finde ich eine "libadvapi32.a" (die ich wie oben erwähnt) eingebunden habe. Ich bin nun völlig konfus...


Anmelden zum Antworten