كيفية مسح ذاكرة التخزين المؤقت عند التطبيق الخاص بك تستضيف عنصر تحكم WebBrowser في Visual c + +.NET أو في Visual c + + 2005


للحصول على إصدار Microsoft Visual Basic.NET من هذه المقالة، راجع 311289 .
للحصول على إصدار Microsoft Visual C#.NET من هذه المقالة، راجع 326201 .

في هذه المهمة

مقدمة


توضح هذه المقالة خطوة بخطوة كيفية استخدام وظائف WinInet API لمسح ذاكرة التخزين المؤقت مباشرة. قد تضطر لمسح ذاكرة التخزين المؤقت برمجياً عند التطبيق الخاص بك تستضيف عنصر تحكم WebBrowser . ومع ذلك، هذه الميزة غير متوفرة من خلال واجهات عنصر التحكم WebBrowser . عودة إلى الأعلى

تستخدم وظائف WinInet

يمكنك استخدام الدالات التالية WinInet لمسح ذاكرة التخزين المؤقت مباشرة:

فيندفيرستورلكاتشينتري

يمكنك استخدام هذه الدالة للعثور على إدخال ذاكرة التخزين المؤقت الأول.

فيندنيكستورلكاتشينتري

استخدم هذه الدالة لتعداد ذاكرة التخزين المؤقت.

ديليتيورلكاكهينتري

يمكنك استخدام هذه الدالة لحذف كل إدخال. ملاحظة: نماذج التعليمات البرمجية في هذه المقالة استخدام هذه الدالات. ملاحظة: تعتبر هذه الدالات المتوفرة مع Microsoft Internet Explorer الإصدار 5.0 أو أحدث. ولذلك، يجب عليك تضمين الضوابط المناسبة لمنع الأخطاء. نماذج التعليمات البرمجية في هذه المقالة يتضمن الضوابط المناسبة لمنع الأخطاء. عودة إلى الأعلى

مسح كافة الملفات في ذاكرة التخزين المؤقت باستخدام وظائف WinInet في Visual c + +.NET أو في Visual c + + 2005

لمسح كافة الملفات في ذاكرة التخزين المؤقت باستخدام وظائف WinInet في Visual c + +.NET أو في Visual c + + 2005، اتبع الخطوات التالية:
  1. بدء تشغيل Microsoft Visual Studio.NET أو Microsoft Visual Studio 2005.
  2. من القائمة ملف ، أشر إلىجديد، ومن ثم انقر فوق مشروع.
  3. في Visual Studio.NET 2002، انقر فوق مشاريع Visual c + + ضمن أنواع المشروعومن ثم انقر فوق مشروع Win32 ضمن قوالب. في Visual Studio.NET 2003، انقر فوق مشاريع Visual c + + ضمن أنواع المشروعومن ثم انقر فوق مشروع وحدة تحكم Win32 ضمن قوالب. في Visual Studio 2005، انقر فوق Visual c + + ضمن أنواع المشاريع، ومن ثم انقر فوق مشروع Win32 ضمن قوالب.
  4. في مربع النص الاسم ، اكتب Q815718اكتب C:\Test في مربع نص في الموقع ومن ثم انقر فوق موافق.
  5. في "مستكشف الحلول"، انقر نقراً مزدوجاً فوق Q815718.cpp في مجلد ملفات المصدر.
  6. قم بإضافة العبارات التالية تتضمن في إطار التعليمات البرمجية بعد #include "stdafx.h" العبارة وقبل الدالة _tmain :
    #include <windows.h>#include <wininet.h>
  7. استبدال التعليمات البرمجية في الدالة_tmain بالتعليمات البرمجية التالية:
    // Pointer to a GROUPID variableGROUPID groupId = 0;// Local variablesDWORD cacheEntryInfoBufferSizeInitial = 0;    DWORD cacheEntryInfoBufferSize = 0;    int *cacheEntryInfoBuffer = 0;    INTERNET_CACHE_ENTRY_INFOA *internetCacheEntry;    HANDLE enumHandle = NULL;    BOOL returnValue = false;// Delete the groups first.    // Groups may not always exist on the system.    // For more information, visit the following Microsoft Web site:    // http://msdn2.microsoft.com/en-us/library/ms909365.aspx    // By default, a URL does not belong to any group. Therefore, that cache may become    // empty even when the CacheGroup APIs are not used because the existing URL does not belong to any group.    enumHandle = FindFirstUrlCacheGroup(0, CACHEGROUP_SEARCH_ALL, 0, 0, &groupId, 0);// If there are no items in the Cache, you are finished.if (enumHandle != NULL && ERROR_NO_MORE_ITEMS == GetLastError())return 0;// Loop through Cache Group, and then delete entries.while(1){// Delete a particular Cache Group.returnValue = DeleteUrlCacheGroup(groupId, CACHEGROUP_FLAG_FLUSHURL_ONDELETE, 0);if (!returnValue && ERROR_FILE_NOT_FOUND == GetLastError()){returnValue = FindNextUrlCacheGroup(enumHandle, &groupId, 0);}if (!returnValue && (ERROR_NO_MORE_ITEMS == GetLastError() || ERROR_FILE_NOT_FOUND == GetLastError())){break;}}// Start to delete URLs that do not belong to any group.enumHandle = FindFirstUrlCacheEntry(NULL, 0, &cacheEntryInfoBufferSizeInitial);if (enumHandle == NULL && ERROR_NO_MORE_ITEMS == GetLastError())                return 0;cacheEntryInfoBufferSize = cacheEntryInfoBufferSizeInitial;internetCacheEntry =  (INTERNET_CACHE_ENTRY_INFOA *)malloc(cacheEntryInfoBufferSize);enumHandle = FindFirstUrlCacheEntry(NULL, internetCacheEntry, &cacheEntryInfoBufferSizeInitial);    while(1){cacheEntryInfoBufferSizeInitial = cacheEntryInfoBufferSize;returnValue = DeleteUrlCacheEntry(internetCacheEntry->lpszSourceUrlName);if (!returnValue){returnValue = FindNextUrlCacheEntry(enumHandle, internetCacheEntry, &cacheEntryInfoBufferSizeInitial);}DWORD dwError = GetLastError();if (!returnValue && ERROR_NO_MORE_ITEMS == dwError){break;}if (!returnValue && cacheEntryInfoBufferSizeInitial > cacheEntryInfoBufferSize){cacheEntryInfoBufferSize = cacheEntryInfoBufferSizeInitial;internetCacheEntry =  (INTERNET_CACHE_ENTRY_INFOA *)realloc(internetCacheEntry, cacheEntryInfoBufferSize);returnValue = FindNextUrlCacheEntry(enumHandle, internetCacheEntry, &cacheEntryInfoBufferSizeInitial);}}free(internetCacheEntry);printf("deleted the cache entries\n");return 0;
    ملاحظة: يجب إضافة خيار المحول البرمجي دعم وقت تشغيل اللغة العامة (/clr: oldsyntax) في Visual c + + 2005 ترجمة نموذج التعليمات البرمجية السابق بنجاح. لإضافة خيار المحول البرمجي دعم وقت تشغيل اللغة الشائعة في Visual c + + 2005، اتبع الخطوات التالية:
    1. انقر فوق المشروعومن ثم انقر فوق خصائص < اسم > المشروع. ملاحظة:< اسم > المشروع عنصرا نائبا لاسم المشروع.
    2. توسيع تكوين خصائص، وانقر فوق عام.
    3. انقر لتحديد دعم وقت تشغيل اللغة العامة, بناء الجملة القديمة (/clr: oldsyntax) في إعداد مشروع دعم "وقت تشغيل اللغة الشائعة" في الجزء الأيسر، انقر فوق تطبيق، ومن ثم انقر فوق موافق.
    لمزيد من المعلومات حول وقت تشغيل اللغة العامة يدعم خيار برنامج التحويل البرمجي، قم بزيارة موقع Microsoft التالي على الويب:
    (تجميع وقت تشغيل اللغة العامة) clr/http://msdn2.microsoft.com/en-us/library/k8d11d4s.aspx
  8. لربط التعليمات البرمجية بنجاح، إضافة ملف مكتبة WinInet.lib. للقيام بذلك، اتبع الخطوات التالية:
    1. في "مستكشف الحلول"، زر الماوس الأيمن فوق عقده المشروع Q815718 ، ومن ثم انقر فوق خصائص.
    2. توسيع خصائص تكوينوتوسيع رابطثم انقر فوق الإدخال.
    3. اكتب WinInet.lib في الخاصية تبعيات إضافية ومن ثم انقر فوق موافق.
  9. اضغط CTRL + SHIFT + S لحفظ المشروع.
  10. اضغط على CTRL + SHIFT + B بناء الحل.
  11. اضغط CTRL + F5 لتشغيل البرنامج.
  12. للتأكد من أنه قد تم حذف ملفات إنترنت المؤقتة في ذاكرة التخزين المؤقت الخاصة بك، اتبع هذه الخطوات في Microsoft Internet Explorer:
    1. من القائمة أدوات ، انقر فوق " خيارات إنترنت".
    2. في التبويب عام ، انقر فوق إعدادات تحت ملفات "إنترنت المؤقتة".
    3. انقر فوق عرض الملفات. لاحظ أنه قد تم حذف كافة الملفات الموجودة في ذاكرة التخزين المؤقت Internet Explorer.
عودة إلى الأعلى

المراجع


للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":
262110 HOWTO: مسح ذاكرة التخزين المؤقت عند التطبيق الخاص بك تستضيف عنصر تحكم WebBrowser
لمزيد من المعلومات حول تطوير Microsoft.NET Framework، قم بزيارة موقع ويب شبكة مطوري Microsoft (MSDN) التالية:لمزيد من المعلومات حول بناء جملة وظائف التخزين المؤقت ل WinInet ، قم بزيارة موقع Msdn التالي:لمزيد من المعلومات حول تطوير حلول تستند إلى ويب ل Microsoft Internet Explorer، قم بزيارة موقع Msdn التالي:عودة إلى الأعلى