Bir CHM dosyasının açılması şunları oluşturur: "web sayfasına gezinme iptal edildi"


84

Bir .chm dosyasını açmaya çalışıyorum.

Kaynağı indirdim, çıkardım ve çift tıklayıp Waffle.chm"Aç" ı tıkladım ama chm dosyasındaki hangi öğeyi tıkladığım önemli değil, mesajı alıyorum:

Navigation to the webpage was canceled.  
What you can try: 
Retype the address.  

görüntü açıklamasını buraya girin

Burada neler oluyor?

Yanıtlar:


168

Özet

Microsoft Güvenlik Güncelleştirmeleri 896358 ve 840315, bir ağ sürücüsünden (veya bir UNC yolundan ) açıldığında CHM dosya içeriklerinin görüntülenmesini engeller . Bu, Windows'un virüslere / kötü amaçlı yazılımlara yönelik saldırı vektörlerinin bilgisayarınıza bulaşmasını durdurma girişimidir ve bu chm dosyasının kullandığı "InfoTech" protokolü üzerinden veri çeken .chm dosyasını engellemiştir.

Microsoft'un sorunun özeti: http://support.microsoft.com/kb/896054

Çözümler

  1. Windows Server 2008, Windows 7 kullanıyorsanız, Windows hızlı bir düzeltme oluşturmuştur. Chm dosyasına sağ tıklayın ve "yourfile.chm Özellikler" iletişim kutusunu göreceksiniz, altta "Engellemeyi Kaldır" adlı bir düğme belirecektir. Engellemeyi Kaldır'a tıklayın ve Tamam'a basın ve chm dosyasını yeniden açmayı deneyin, düzgün çalışıyor. Bu seçenek, WindowsXP'den (SP3) önceki önceki Windows sürümlerinde kullanılamaz.

  2. Chm dosyanızı ağ sürücüsünün dışına taşıyarak sorunu çözün. Bir ağ sürücüsü kullandığınızı bilmiyor olabilirsiniz, şimdi iki kez kontrol edin: .chm dosyanızı sağ tıklayın, özellikleri tıklayın ve "konum" alanına bakın. Bunun gibi iki ters eğik çizgi ile başlıyorsa: \\epicserver\blah\o zaman ağa bağlı bir sürücü kullanıyorsunuzdur. Bu yüzden düzeltmek için chm dosyasını kopyalayın ve C: \ veya E: gibi yerel bir sürücüye yapıştırın. Sonra chm dosyasını yeniden açmayı deneyin, pencereler çıldırmaz.

  3. Son çare, dosyayı ağa bağlı sürücüden kopyalayamaz / taşıyamazsanız. Bulunduğu yerde açmanız gerekiyorsa ve XP, Vista, ME veya benzeri pencerelerin daha düşük bir sürümünü kullanıyorsanız, Windows'a bu .chm dosyası üzerinde çıldırmamasını manuel olarak söylemeniz gerekecektir . HHReg (HTML Yardım Kayıt Yardımcı Programı) Yardımcı Programı Bu Görevi Otomatikleştirir. Temel olarak HHReg yardımcı programını indirirsiniz, .chm dosyanızı yüklersiniz, Tamam'a basarsanız, Windows'a onu engellememesini söylemek için gerekli kayıt defteri anahtarlarını oluşturur. Daha fazla bilgi için: http://www.winhelponline.com/blog/fix-cannot-view-chm-files-network-xp-2003-vista/

Windows 8 mi yoksa 10 mu? -> Windows XP'ye yükseltin.


3
WinXP SP3 veya WinVista Home Premium'da "Engellemeyi Kaldır" düğmesini görmüyorum
GetFree

Çözüm 1, Windows 8'de değil, kolay bir win8 yolu var mı?
2013

2
Önerilen çözümlerden hiçbiri, başvurulan KB makalem verilen olası 4 çözümle eşleşmiyor. 'MaxAllowedZone'u' 1 'olarak ayarlamak sorunu benim için çözdü
abstrask

UNBLOCK yardımcı olmaz, dosyayı yerel bir sürücüye kopyalayıp (ağ dışı) yerel sürücüden açmanız gerekir.
Erdinç Ay

1
Bu sorun internetten indirilen chm'yi de etkiler. Engellemeyi kaldır düğmesi / onay kutusu indirildikten hemen sonra orada olmayabilir. Tecrübelerime göre, önce chm'yi yerel dosya sisteminden açmayı, harap olduğunu görmeyi, kapatmayı ve ardından kilidini açmak için yalnızca dosya özelliklerine gitmeyi gerektirir.
Frédéric

43

dosyanın "engellemesini kaldırmak" sorunu çözer. Ekran görüntüsü:

görüntü açıklamasını buraya girin


Bu hileyi uzun süre kullanmadığım için unuttum, tekrar hatırlattığın için teşekkürler.
kta

@kaziTanvirAhsan yardımcı olabildiğime sevindim.
colemik

Ağ konumundan yerel konuma geçmek yeterli değildir - bu ekran görüntüsündeki gibi engellemeyi kaldırmanız gerekir. Teşekkürler @trismarck
leinad13

Bu işe yaradı! Teşekkürler. Asla kendi başıma çözemezdim.
NilsB

win-7 ile böyle bir seçenek bulamadı. / w dosyasını açmak yerine yerel makineme kopyaladım ve çalışıyor.
tsenapathy

11

8 x64 kazanın:

sadece başka bir klasöre taşıyın veya klasörünüzü yeniden adlandırın (benim durumumda: klasörüm "c #" idi). klasör adında sembol kullanmaktan kaçının. harfle adlandırın.

bitti.


Bu da işe yarar. .Chm dosyam bu C: \ C # \ Samples klasöründeydi, sonra onu C: \ temp ve boom'a taşıdım! İşe yarıyor! Bunun için teşekkürler. :)
klaydze

Mükemmel! Ben bir Windows 10 kullanıcısıyım: hem dosya adından "#" hem de eski bir c # chm yardım dosyasından klasör adını kaldırmak zorunda kaldım.
Marcelo Bergweiler

11

Eric Leschinski'nin cevabına ek olarak ve bu yığın aşımı olduğu için programlı bir çözüm:

Windows, içeriği "indirildi" olarak işaretlemek için gizli dosya çatalları kullanır. Bunların kırpılması dosyanın engelini kaldırır. CHM'ler için kullanılan akışın adı "Zone.Identifier" dır. Akışlara dosyayı açarken: streamname ekleyerek erişebilirsiniz. (RTL'niz bunu karıştırırsa diye yedekleri ilk seferde saklayın!)

Delphi'de şöyle görünecektir:

var f : file;
begin
 writeln('unblocking ',s);
 assignfile(f,'some.chm:Zone.Identifier');
 rewrite(f,1);
 truncate(f);
 closefile(f);
end;

Çatallanmamış dosya sistemlerinde (FAT32 gibi) gizli dosyalar olduğu söylendi, ancak henüz bunun altına inmedim.

Ps Delphi'nin DeleteFile () dosyası da çatalları tanımalıdır.


Çok ilginç cevap. Bu gizli dosya çatalı hakkında daha fazla bilgiyi nerede bulabilirim?
ViRuSTriNiTy

MSDN. Örneğin sb, dosya silme işleminin de çalıştığına dair bir açıklama yaptı ve MSDN'deki ilgili çağrıya ve işlevin tam olarak nasıl davrandığının belgelendiğine baktım. İnternetten aldığım belirli Zone.Identifier biti. Ayrıca MSIE için yüksek güvenlik ayarları varsa mesela için EXE'ler dled Engellenen işleri
Marco van de Voort

6

Kesin çözüm, InfoTech protokolünün intranet bölgesinde çalışmasına izin vermektir.

Kayıt defterine aşağıdaki değeri ekleyin ve sorunun çözülmesi gerekir:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000001

Daha fazla bilgi burada: http://support.microsoft.com/kb/896054


4

Başlangıca git

Tür regsvr32 hhctrl.ocx

Aşağıdaki gibi bir başarı mesajı almalısınız:

"Hhctrl.ocx dosyasındaki DllRegisterServer başarılı oldu"

Şimdi CHM dosyanızı tekrar açmayı deneyin.


1
Voww ... benim için çalışıyor ... (dosya sağ tıklama, özellikler 'engellemeyi
kaldır

3

diğer bir yol, farklı üçüncü taraf yazılımları kullanmaktır. Bu bağlantı , chm dosyalarını görüntülemek için daha fazla üçüncü taraf yazılımı gösterir ...

SumatraPDF ile denedim ve iyi çalışıyor.


2

Bunu yazılımımda C ++ Builder kullanarak programlı olarak düzelttim.

CHM yardım dosyasını atamadan önce Application->HelpFile = HelpFileName, "Zone.Identifier" akışını içerip içermediğini kontrol ediyorum ve içerdiğinde basitçe kaldırıyorum.

String ZIStream(HelpFileName + ":Zone.Identifier") ;

if (FileExists(ZIStream))
    { DeleteFile(ZIStream) ; }

1

Görünüşe göre farklı kimlik doğrulama seviyeleri var. Okuduğum makalelerin çoğu, MaxAllowedZone'u '1' olarak ayarlamanızı söylüyor; bu, yerel makine bölgesi ve intranet bölgesine izin verildiği, ancak '4'ün' tüm 'bölgelere erişime izin verdiği anlamına geliyor.

Daha fazla bilgi için şu makaleyi okuyun: https://support.microsoft.com/en-us/kb/892675

Kayıt defterim şöyle görünüyor (Joker kartlarla çalışacağından emin değildim ama benim için işe yarıyor gibi görünüyor):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000004

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"UrlAllowList"="\\\\<network_path_root>;\\\\<network_path_root>\*;\\ies-inc.local;http://www.*;http://*;https://www.*;https://*;"

Ek bir not olarak, tuhaf bir şekilde "UrlAllowList" anahtarı bunun başka bir bilgisayarda çalışmasını sağlamak için gerekliydi, ancak benim test ettiğim bilgisayarda değil. Muhtemelen hiç gerekli değil ama eklediğimde sorunu çözdü. Kullanıcı orijinal dosyayı veya buna benzer bir şeyi kapatmamış olabilir. Yani sadece bir değerlendirme. En azını denemenizi ve test etmenizi öneririm, ardından gerekirse ekleyin. Onayladıktan sonra, gerekirse dağıtabilirsiniz. İyi şanslar!

Düzenleme: PS İşe yarayan başka bir yöntem, mklink / d (Windows 7 veya daha yeni sürümlerde sembolik bağlantı) kullanarak ağa giden yolu yerel olarak eşlemekti, ancak bir ağ sürücü harfini (Z: test için) eşlemek işe yaramadı. Sadece düşünmek için yiyecek ve hiçbir dosyanın 'Engelini Kaldırmak' zorunda kalmadım. Ayrıca kabul edilen 'Çözüm' sorunu benim için çözmedi.


Sorun değil, birinin fayda sağladığına sevindim En iyi!
jacktrader
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.