FindWindow und HWND



  • hi,
    mein name ist patrick erstberger und gehe in die fachhochschule köln 😉

    wir schreiben dieses Semester eine Arbeit über das große Thema WinAPI und ich möchte mich langsam einarbeiten. Die Grundlagen verstehe ich jetzt.

    nun hab versucht ein Fenster zu finden:

    HWND windowTo = NULL;
    windowTo = FindWindow("Paint.NET001",NULL);
    

    Scheint aber nicht zu klappen 😞

    Fehler:

    error C2664: 'FindWindowW': Konvertierung des Parameters 1 von 'const char [9]' in 'LPCWSTR' nicht möglich
    1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
    

    wäre sehr dankbar für jegliche Hilfe 😉

    Patrick



  • ein tipp: es fehlt ein L in der findwindow-zeile.



  • Du brauchst einen wchar_t* wenn du Unicode verwendest.



  • unicode schrieb:

    ein tipp: es fehlt ein L in der findwindow-zeile.

    windowTo = FindWindowL("Paint.NET001",NULL);
    

    Klappt auch nicht 😞

    Danke trodzdem 😉



  • windowTo = FindWindow(L"Paint.NET001",NULL);
    

    Da gehört das L hin 😉



  • Storm.Xapek.de schrieb:

    windowTo = FindWindow(L"Paint.NET001",NULL);
    

    Da gehört das L hin 😉

    Danke 😉
    hmm aber es kommt auf einmal dieser fehler:

    error C2664: 'MessageBoxW': Konvertierung des Parameters 3 von 'const char [8]' in 'LPCWSTR' nicht möglich
    1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
    

    bei

    MessageBox(0, L"Process is already running", "Warning", MB_ICONWARNING);
    

    ich will damit bezwecken,dass der prozess nicht doppelt gestartet wird.

    Patrick



  • So ganz verstanden hast du wohl nicht was
    wir dir hier versuchen zu sagen.

    MessageBox(0, L"Process is already running", L"Warning", MB_ICONWARNING);
    

    Das L muss vor alle Strings die in den Typ LPCWSTR
    konvertiert werden sollen.



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

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

    Dieses Posting wurde automatisch erzeugt.



  • Storm.Xapek.de schrieb:

    So ganz verstanden hast du wohl nicht was
    wir dir hier versuchen zu sagen.

    MessageBox(0, L"Process is already running", L"Warning", MB_ICONWARNING);
    

    Das L muss vor alle Strings die in den Typ LPCWSTR
    konvertiert werden sollen.

    Wobei ich da eher die Hilfsmakros _T() oder TEXT() verwenden würde - das L liefert wieder die alten Fehlermeldungen, wenn du tatsächlich umsteigst auf ANSI-Build.


Anmelden zum Antworten