Hata: Windows Klasik mod, Windows Explorer döndürüyor Selectedıtems için yanlış değer kullanma.

ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.

819499
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Belirtiler
Windows Gezgini, Windows Klasik modunda klasörleri görüntülemek için ayarladığınızda, IShellFolderViewDual arabirimi Selectedıtems yöntemi FolderItems yanlış bir dizi döndürür.
Durum
Microsoft, bunun bu makalenin başında listelenen Microsoft ürünlerinde bir hata olduğunu onaylamıştır.
Daha fazla bilgi

Davranışı Yeniden Oluşturma Adımları

  1. Not Defteri gibi bir metin düzenleyicisini açın, aşağıdaki kod yeni bir dosyaya yapıştırın ve dosyayı Sample.cpp kaydedin:
    #include <Windows.h>#include <TChar.h>#import <SHDocVw.dll>#import <Shell32.dll>#include <iostream>using namespace std;int _tmain(int argc, TCHAR ** argv){    CoInitialize(0);    try    {            SHDocVw::IShellWindowsPtr sw(__uuidof(SHDocVw::ShellWindows));        for (long i = 0; i < sw->Count; ++i)        {            if (SHDocVw::IWebBrowser2Ptr ie = sw->Item(i))            {                cout << _com_util::ConvertBSTRToString(ie->LocationURL) << endl;                if (Shell32::IShellFolderViewDualPtr view = ie->Document)                {                   cout << view->SelectedItems()->Count << _T(" selected item(s)") << endl;                }            }        }    }    catch (_com_error const & e)    {        cout << e.ErrorMessage() << endl;    }    CoUninitialize();    return 0;}
  2. Bir komut isteminde, aşağıdaki komutu çalıştırarak dosya derleme: cl /EHsc Sample.cpp
  3. Şu anda açık olan tüm Windows Gezgini pencerelerini kapatın.
  4. Başlat ' ı sağ tıklatın ve sonra Windows Gezgini penceresini açmak için Araştır ' ı tıklatın.
  5. Araçlar menüsünde Klasör Seçenekleri
  6. Genel sekmesinde, Web görünümü altında <a2>Windows klasik klasörlerini kullan</a2> seçeneğini belirleyin ve Tamam ' ı tıklatın.
  7. Çok sayıda öğe içeren bir klasör seçin. Sağ bölmede, bu klasördeki öğelerden bazılarını seçin.
  8. Bir komut isteminde (diğer bir deyişle, 2 numaralı adımda oluşturulur) örnek.exe yürütülebilir dosyayı çalıştırmak.

    Çıktı, Count özelliğini IShellFolderViewDual arabiriminin Selectedıtems yöntemi tarafından döndürülen FolderItems örneğinin sonucunu görüntüler.

    Windows Gezgini klasöründeki önceki adımdaki seçtiğiniz öğelerin sayısı çıktı beklediğiniz. Ancak, çıktı, Windows Gezgini'nde seçilen klasördeki öğelerin tüm numarasını içerir.
  9. Windows Gezgini Web görünümünde moddayken Selectedıtems tarafından döndürülen klasör öğeleri doğru ayarlanmış FolderItem örneklerine seçilir.

    Windows Gezgini'nde, Araçlar menüsünde önceki ifade doğrulamak için Klasör Seçenekleri ' ni tıklatın.
  10. Genel sekmesinde, Web görünümü altında Web içeriğini etkinleştir Masaüstümde seçeneğini ve sonra iletişim kutusunu kapatmak için Tamam ' ı tıklatın.
  11. Bir komut isteminde örnek.exe (2. adımda oluşturulan) çalıştırın.

    Çıktı, Count özelliğini IShellFolderViewDual arabiriminin Selectedıtems yöntemi tarafından döndürülen FolderItems örneğinin sonucunu görüntüler.

    Çıkış alınır, beklendiği gibi seçtiğiniz klasörde öğe sayısı.
Alternatif olarak, IShellFolderViewDual arabirimi FocusedItem yöntemi yanlış işlevselliğini Selectedıtems yöntemini değiştirmek için kullanabilirsiniz. FocusedItem yöntemi, seçili öğenin klasörü verir ve uygulamanıza Windows Gezgini'nde bir tek klasör seçimi kısıtlar.
Referanslar
Kabuk kılavuz programlama hakkında ek bilgi için aşağıdaki MSDN belgelerine bakın:

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 819499 - Son İnceleme: 02/26/2014 21:06:00 - Düzeltme: 3.4

  • Microsoft Windows 2000
  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbshell kbbug KB819499 KbMttr
Geri bildirim