Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » CreateProcessWithLogonW

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
28.09.2004, 17:59 Uhr
andy_mann



Hallo Leute,

ich versuche jetzt schon seit stunden die Funktion CreateProcessWithLogonW in meine CDialog Projekt mit einzubinden.

Er erzählt mir die ganze Zeit dass er diese Funktion nicht kennt, obwohl ich die Advapi32.lib eingefügt habe, er zeigt mir auch schön an welche Variablen er benötigt aber er will es anscheinend nicht kennen.......

Ich habe in einem anderen Projekt diese Funktion am Laufen dort funkt Sie, ist allerdings auch ne Win32...

Kann mir jemand helfen ??

Gruß
andy_mann

Dieser Post wurde am 28.09.2004 um 18:00 Uhr von andy_mann editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.09.2004, 19:00 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Hast du auch die entsprechende Headerdatei eingebunden?

Wie lautet die genaue Fehlermeldung?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.09.2004, 19:15 Uhr
andy_mann



Hallo,

eigentlich schon, windows.h, die selben wie in meinem anderen Projekt auch.

Die Fehlermeldung lautet:

C++:
error C3861: 'CreateProcessWithLogonW': Bezeichner wurde auch mit einer argumentbezogenen Suche nicht gefunden



Ich weis echt nicht warum, wenn ich Ihn Frage wo die Defination ist, zeigt er mir Sie an, eigentlich alles so wie es sein sollte......

Trotzdem Fehler......

Gruß
andy_mann
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.09.2004, 19:18 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


So wie es aussieht brauchst du das Plattform SDK von Microsoft um die Funktion nutzen zu können.
Das kannst du auf der Microsoft Homepage downloaden. Hier im Forum müsstest du aber auch einen direkten Link finden.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
28.09.2004, 20:00 Uhr
andy_mann



Meinst Du ??

warum sich dann aber mein anderes Projekt immernoch Kompilieren läst, hat das dann einen anderen Grund ??

ich habe VC++ .net 2003 ist es da nicht dabei ??

Gruß
andy_mann
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
28.09.2004, 20:08 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Achso ne wenn es bei einem anderem Projekt geht dann wird es bei VC+ 2003 schon dabei sein.

Du sagst in einem anderem Projekt das Win32 ist läuft es. Was für ein Projekt ist denn das jetzige?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
28.09.2004, 20:18 Uhr
andy_mann



Ich habe ein einfaches Dialog Projekt....

Hat das eventuell mit der WinApi zu tun ??

Gruß
andy_mann
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
28.09.2004, 21:03 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Hmm nö würde ich jetzt nicht sagen.

Versuch mal noch die winbase.h einzubinden.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
28.09.2004, 23:10 Uhr
andy_mann



hhmmm, nö leider nicht, habe ich auch schon probiert.....

hier mal die Funktion:


C++:
void CProjekt::StarteProgrammMitPasswort(std::string u_strStartProgramm)
{
                    
                STARTUPINFOW si;
                PROCESS_INFORMATION pi;

                memset(&si, 0, sizeof(si));
                memset(&pi, 0, sizeof(pi));
                si.cb = sizeof(si);

                size_t count = u_strStartProgramm.size() + 1;
                wchar_t* p = new wchar_t[count]();

                copy(u_strStartProgramm.begin(),u_strStartProgramm.end(),p);
        
                                
                
                if(!CreateProcessWithLogonW(L"test", L"test", L"test", LOGON_WITH_PROFILE, NULL, p, NULL, NULL, NULL, &si, &pi))
                // Der Punkt beim Parameter 2 bedeutet, das die lokale Benutzerdatenbank verwendet werden soll.
                {
                    LPVOID lpMsgBuf;
                    FormatMessage(
                        FORMAT_MESSAGE_ALLOCATE_BUFFER |
                        FORMAT_MESSAGE_FROM_SYSTEM |
                        FORMAT_MESSAGE_IGNORE_INSERTS,
                        NULL,
                        GetLastError(),
                        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
                        (LPTSTR) &lpMsgBuf,
                        0,
                        NULL
                    );
                    MessageBox(NULL, (LPCTSTR)lpMsgBuf, NULL, MB_OK | MB_ICONEXCLAMATION);
                    LocalFree(lpMsgBuf);
                    // Bei Fehlermeldung: "Der angegebene Dienst kann nicht gestartet werden..."
                    // überprüfe ob der Dienst "Sekundäre Anmeldung" aktiviert und gestartet ist!
                }

                WaitForSingleObject( pi.hProcess, INFINITE );
                CloseHandle(pi.hProcess);
                CloseHandle(pi.hThread);
                

                // Ende für Code
                delete p;
    // ----------------------------------------------------------------
}



Gruß
andy_mann

Dieser Post wurde am 28.09.2004 um 23:11 Uhr von andy_mann editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
29.09.2004, 11:12 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


schreib mal nur CreateProcessWithLogon und dann lass das L vor den Strings weg.

CreateProcessWithLogonW (Wide) ist meist nur "an" wenn man was bestimmtes definiert, ansonsten wird CreateProcessWithLogonA (oder wars CreateProcessWithLogonT?) benutzt


Bearbeitung:

Halt Kommando zurück:


Zitat:

Requirements
Client: Included in Windows XP and Windows 2000 Professional.
Server: Included in Windows Server 2003 and Windows 2000 Server.
Unicode: Implemented only as Unicode.
Header: Declared in Winbase.h; include Windows.h.
Library: Use Advapi32.lib.



und weiter oben im Text:


Zitat:

To compile an application that uses this function, define the _WIN32_WINNT macro as 0x0500 or later. For more information, see Using the SDK Headers.





--
class God : public ChuckNorris { };

Dieser Post wurde am 29.09.2004 um 11:17 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: