NetSend aus Dialog senden



  • Hi wie kann ich aus meiner dialogbasirenden Anwendung an einen einen anderen Rechner eine Net Send Msg senden?
    Ich habe es schon mir NetMessageBufferSend versucht, aber da sagt er mir immer, das er den benutzer nicht finden kann, den es aber gibt. ich habe es auch schon mit 127.0.0.1 und localhost versucht.



  • @matti83

    Was meinst Du genau mit

    Net Send Msg

    ???

    Das interne ab Windows NT verfügbare net send Kommando oder doch etwas anderes ???

    MfG veganza



  • Ja das interne ab WinNT. Habs aber schon raus:

    void CAlertDlgDlg::OnButtonSendmsg() 
    {
        // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
        UpdateData();
        NET_API_STATUS     nasRc=0;
    
        const int MAXLEN = 256;
        wchar_t name[MAXLEN], from[MAXLEN], msg[MAXLEN];
    
        mbstowcs( name, m_sTarget.GetBuffer(0), MAXLEN );
        name[MAXLEN - 1] = L'\0';
        mbstowcs( from, m_sNick.GetBuffer(0), MAXLEN );
        from[MAXLEN - 1] = L'\0';
        mbstowcs( msg, m_sMsg.GetBuffer(0), MAXLEN );
        msg[MAXLEN - 1] = L'\0';
    
        nasRc = NetMessageBufferSend( NULL, name, from, (BYTE *) &msg[0], wcslen( msg ) * 2 );
        switch(nasRc)
        {
            case ERROR_ACCESS_DENIED:
                AfxMessageBox("You do not have access to the requested function.",MB_OK | MB_ICONSTOP);
                break;
    
            case ERROR_INVALID_PARAMETER:
                AfxMessageBox("One of the passed parameters is invalid.",MB_OK | MB_ICONSTOP);
                break;
    
            case ERROR_NOT_SUPPORTED:
                AfxMessageBox("This network request is not supported.",MB_OK | MB_ICONSTOP);
                break;
    
            case NERR_NameNotFound:
                AfxMessageBox("The user name could not be found or is not logged in.",MB_OK | MB_ICONSTOP);
                break;
    
            case NERR_NetworkError:
                AfxMessageBox("A general failure occurred in the network hardware.",MB_OK | MB_ICONSTOP);
                break;
    
            case NERR_Success:
                AfxMessageBox("Message successfully sent!",MB_OK);
                break;
    
            default:
                AfxMessageBox("Unknown error",MB_OK);
        }
    }
    


  • @matti83

    Ach da gibt es eine Funktion für 😮
    Ich hätte das einfach mittels system() Kommando realisiert... sieht aber nicht so professionell aus wie Deine Version 😉

    MfG veganza



  • Interessant aber geht es mit WinExec nicht einfacher?

    Kann man bei WinExec rasufinden ob der Befehl geklappt hat und das in sein Programm einbauen???


Anmelden zum Antworten