Veröffentlicht 13. Juni 200223 j wie oben schon zu lesen ist, möchte ich mit einer methode bzw. funktion den paierkorb von windows leeren. kann mir da wer nen tip geben, wie ich da drauf komme?
2. Juli 200223 j danke das ist das was ich suche. bin erst jetzt dazu gekommen gekommen, das endlich zu probieren und habe jetzt folgendes Problem: ompiling... Leerer.cpp d:\programme\microsoft visual studio\vc98\include\shellapi.h(53) : error C2065: 'HDROP' : undeclared identifier d:\programme\microsoft visual studio\vc98\include\shellapi.h(53) : error C2501: 'DECLARE_HANDLE' : missing storage-class or type specifiers d:\programme\microsoft visual studio\vc98\include\shellapi.h(55) : error C2146: syntax error : missing ';' before identifier 'UINT' d:\programme\microsoft visual studio\vc98\include\shellapi.h(55) : error C2501: 'DECLSPEC_IMPORT' : missing storage-class or type specifiers d:\programme\microsoft visual studio\vc98\include\shellapi.h(55) : fatal error C1004: unexpected end of file found Error executing cl.exe. die shell32.lib habe ich auch, also weiß ich nicht was das jetzt soll ... ?
2. Juli 200223 j das war ein treffer würde ich sagen - kompiliert jetzt, beim ausführen kommt dann dafür: Der Prozedureinstiegspunkt "SHEmptyRecycleBinA" konnte in der Dynamic Link Library "SHELL32.dll" nicht gefunden werden.
2. Juli 200223 j Welcher Version hat Deine Shell32.dll? Für SHEmptyRecycleBin brauchst Du 4.71 (IE 4).
2. Juli 200223 j habe zwar ie6 aber trotzdem version 4.0 ... leigt vielleicht dran das es nt4 is? jedenfalls kopier ich mal ne neuere shell32 rein, falls ich dann noch starten kann, bis gleich...
2. Juli 200223 j also das wars wohl nicht, die 4.72 version von 98 zu nehmen *g* rechner startete nicht mehr...
2. Juli 200223 j Der IE4 aktualisiert wohl die Shell nur, wenn man das bei der Installation ausdrücklich angibt, der IE5 macht es gar nicht. Was der IE6 macht, habe ich nicht herausfinden können. Womöglich gibt es da eine Installationsoption. Jedenfalls kann es bei Windows 95 und NT 4 passieren, dass man trotz aktueller IE-Version noch die Version 4.0 der Shell32.dll hat. Weitere Info: http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/versions.asp
4. Juli 200223 j ok, ich wollte das jetzt so lösen, indem erst die version abfrage: CLeerer::Leeren() { if(GetDllVersion(TEXT("shell32.dll")) >= PACKVERSION(4,71)) { SHEmptyRecycleBin(NULL,NULL,SHERB_NOPROGRESSUI); } else { //Use an alternate approach for older DLL versions. } return 1; } nun ändert das aber nichts. sobald das SHEmpty... nicht auskommentiert ist, kommt diese meldung und zwar bevor das programm irgendwas macht. desshalb bringt mir die abfrage auch nichts - hat wer nen tip?
4. Juli 200223 j Kann sein, dass das Programm bereits beim Laden der DLL versucht, die Einsprungpunkte aller referenzierten Funktionen zu finden. Versuch mal, die Methode bei erfolgreicher Versionsprüfung dynamisch zu laden: typedef HRESULT (CALLBACK *EMPTYRECYCLEBINPROC)( HWND, LPCTSTR, DWORD ); HINSTANCE hShell32Instance = LoadLibrary( TEXT("shell32.dll" ) ); if( hShell32Instance ) { EMPTYRECYCLEBINPROC pERB; pERB = (EMPTYRECYCLEBINPROC) GetProcAddress( hShell32Instance, "SHEmptyRecycleBinA"); if( pERB ) (*pERB)(NULL,NULL,SHERB_NOPROGRESSUI); FreeLibrary( hShell32Instance ); }[/CODE]
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.