Kleiner File-Deleter



  • Frisch aus der MSDN:

    The return value is cast as an HINSTANCE for backward compatibility with 16-bit Windows applications. It is not a true HINSTANCE, however. The only thing that can be done with the returned HINSTANCE is to cast it to an int and compare it with the value 32 or one of the error codes below.

    0 The operating system is out of memory or resources.
    ERROR_FILE_NOT_FOUND The specified file was not found.
    ERROR_PATH_NOT_FOUND The specified path was not found.
    ERROR_BAD_FORMAT The .exe file is invalid (non-Microsoft Win32® .exe or error in .exe image).
    SE_ERR_ACCESSDENIED The operating system denied access to the specified file.
    SE_ERR_ASSOCINCOMPLETE The file name association is incomplete or invalid.
    SE_ERR_DDEBUSY The Dynamic Data Exchange (DDE) transaction could not be completed because other DDE transactions were being processed.
    SE_ERR_DDEFAIL The DDE transaction failed.
    SE_ERR_DDETIMEOUT The DDE transaction could not be completed because the request timed out.
    SE_ERR_DLLNOTFOUND The specified dynamic-link library (DLL) was not found.
    SE_ERR_FNF The specified file was not found.
    SE_ERR_NOASSOC There is no application associated with the given file name extension. This error will also be returned if you attempt to print a file that is not printable.
    SE_ERR_OOM There was not enough memory to complete the operation.
    SE_ERR_PNF The specified path was not found.
    SE_ERR_SHARE A sharing violation occurred.

    Da steht, Du sollst den Rückgabewert auf INT casten...

    Also:

    if (ERROR_FILE_NOT_FOUND == (int)ShellExecute(NULL, "open", Directory, NULL, NULL, SW_SHOWNORMAL))
    

    Ich würd's aber ein wenig anders machen:

    int iErgebnis = 0;
    iErgebnis = (int)ShellExecute(NULL, "open", Directory, NULL, NULL, SW_SHOWNORMAL));
    if(iErgebnis<=32)
    {
        switch(iErgebnis)
        {
        case ERROR_FILE_NOT_FOUND:
            // Datei nicht gefunden, was nun?
            break;
        case ERROR_PATH_NOT_FOUND:
            // Der Pfad wurde nich gefunden, was nun?
            break;
        default:
            // Hier das hinmachen, was im Normalfall getan wird
        }
    } else //ShellExecute() hat funktioniert!
    

    [ Dieser Beitrag wurde am 21.05.2003 um 17:23 Uhr von Hepi editiert. ]



  • cool danke! 🙂 🙂



  • So weiter gehts *g*

    Nun wollte ich noch ganz gerne einen Button haben der mir den Inhalt aus der Zwischenablage direkt in mein IDC_Directory Feld reinkopiert wenn ich draufdrücke. Das habe ich soweit hinbekommen allerdings sieht es doof aus wenn da "Clipboard" oder sowas in der Art draufsteht.

    Ich hätte da viel lieber einen von diesen schicken GrafikButtons drauf.
    Weis aber nicht wie ich den da hinbekomme *grr*
    Damit man weis was ich meine hab ich mal ein Bildchen hochgeladen. http://mitglied.lycos.de/oxse/deleter2.jpg

    Da gibt es doch eine Symboldatei im Windows "%SystemRoot%\system32\SHELL32.dll" die ganz viele Grafiken beinhaltet, das hab ich gefunden.
    Gibt es eine Möglichkeit Grafiken da rauszuholen und sie ins Programm einzubauen???



  • Für grafische Buttons guck mal bei CodeGuru.



  • Original erstellt von dEUs:
    Für grafische Buttons guck mal bei CodeGuru.

    Hab da gestern abend mal ne halbe stunde gesucht,
    aber nicht wirklich das gefunden...
    vielleicht habe ich es auch nur verpeilt weil habe nicht alles gelesene verstanden.

    So ein Copy Button ist doch bestimmt als ein Standartelement definiert, oder nich?? 😞



  • Original erstellt von Peter Piksa:
    **
    So ein Copy Button ist doch bestimmt als ein Standartelement definiert, oder nich?? :(**

    Nö, gibbet net





  • na ich mein dass die grafik an sich standart ist.
    muss doch eigentlich - schau mal wie viele programme die selben buttons verwenden. das sind doch fast alle.
    die grafiken dafür sind bestimmt standardisert.
    und per mfc muss man die doch auch irgendwie reinbekommen können.

    zu codeguru: genau da habe ich mir einige artikel angesehn.
    wie gesagt hab da nicht wirklich die antwort auf meine frage gefunden.



  • Ich mache zwar nix mit der MFC sondern alles mit purem C und der WinAPI, aber so hier packe ich Bilder (in diesem Beispiel ein Icon) auf meine Buttons:

    hBitmap= LoadImage (GetModuleHandle (NULL), MAKEINTRESOURCE(IDI_ICON1), IMAGE_ICON, 20, 20, LR_DEFAULTCOLOR);
    SendMessage(GetDlgItem(hDlg,IDC_BROWSE1),BM_SETIMAGE,IMAGE_ICON,(LPARAM)hBitmap);
    

    Natürlich muß der Button im ResourcenEditor den Stil BS_ICON erhalten...
    Genauso einfach geht das mit Bitmaps...

    Wie gesagt, keine Ahnung ob es da eine MFC-Klasse für gibt...

    Einem Anfänger wie Du einer bist würde ich eh empfehlen, erst die WinAPI in purem C/C++ "bändigen" zu lernen bevor man an Wrapperklassen wie MFC geht...

    .

    [ Dieser Beitrag wurde am 23.05.2003 um 18:11 Uhr von Hepi editiert. ]



  • http://www.codeproject.com/buttonctrl/cbuttonst.asp

    kann ich Dir da nur empfehlen.

    Gruß,
    zwette

    PS: Standard schreibt man immer noch mit d (auch nach der RS-Reform).


Anmelden zum Antworten