İhtiyacı olmayan bir uygulama için yükseltmeyi (UAC) önle [yinelenen]


34

Son zamanlarda Vista 32bit'ten Windows 7 64bit'e geçiş yapmış olan programlarımdan biri şimdi yönetici haklarına ihtiyaç duyuyor.

Oldukça egzotik bir metin editörü (Crimson Editor) kullanıyorum. Vist / Win7 için tasarlanmamış olmasına rağmen Vista ile iyi çalıştı. Ama Windows 7 altında program çalıştırılabilir bu UAC simgesinin eklenen kalkanı (uyumluluk sekmesinde "Yönetici olarak çalıştır" bayrak olsa alır değil bunu her çalıştırdığında yükseklik için belirlenen) ve istemleri.

Win7, bu not defteri benzeri uygulamanın yönetici haklarına ihtiyacı olduğunu nasıl belirler? Bu sahte sezgisel bilgiyi nasıl geçersiz kılabilirim?

Yanıtlar:


22

Hayır, Kızıl Editör'ün bunu yapmasının nedeni imzasız olduğu için DEĞİLDİR. (Ve bu Win7 için yeni değil). Derleme zamanında gömülü olan uygulama bildiriminin belirttiğinden kaynaklanmaktadır requestedPrivilegeLevel="highestLevel".

Bu foruma göre , Crimson Editor geliştiricileri 237-241 revizyonunda bunu değiştirdi. Bunu yaptılar, çünkü "bağlam menülerine kabuk eklemek için Koyu Kırmızı Editör ekle" özelliği yönetici ayrıcalıkları gerektiriyor.

Uzun vadeli düzeltme, Crimson Editor geliştiricilerin uygulama bildirimlerini düzeltmeleri için olacaktır. Kurulum sırasında kendilerini kabuk bağlamı menülerine eklemeliler ya da en azından kullanıcılara uygulamayı gerektirmek yerine yükseltilmiş (kolay olan) manuel olarak çalıştırmaları gerektiğini söylemeleri gerekir.

Bildirimlerindeki tüm uygulamalar için requestedPrivilegeLevel="highestLevel"( uygulama bildirimlerini görüntülemek için Manifest View uygulamasını kullanın), uygulamayı standart kullanıcı belirteçlerinizle çalışmaya zorlayan RunAsInvoker düzeltmesi ile uygulamayı küçültmek için Microsoft'un Uygulama Uyumluluğu Araç Takımı'nı kullanabilirsiniz.

Uygulama Uyumluluğu Araç Takımı'nın nasıl kullanılacağı hakkında daha fazla bilgi için, onu Crimson Editor'a veya genel talimatlara uygulamakla ilgili bu yazıya bakın .


1
Alternatif olarak, Visual Studio Express ile ücretsiz alabileceğiniz mt.exe komut satırı aracını kullanarak varolan bildirimi değiştirebilirsiniz (uzun zamandır ama bu soruna çok çarptıysanız buna değer). Katıştırılmış bildirimin değiştirilmesinin .exe dosyasını değiştireceğini unutmayın; bu nedenle a) bir şeyi kırmanız durumunda bir kopyasına sahip olduğunuzdan emin olun ve b) İmzalıysa imzayı kıracağınız (ancak bu durumda Zaten zaten imzasız olduğu belirlendi).
AdamV

st.stro, sen bir cankurtaransın, harika çalışıyor.
phloopy

1
"Uygulamalarını düzelt" için +1 ve onlar için hatalarını gidermek üzere AppCompat araç setini kullanma.
Ian Boyd

13

Bu problemi olan iki uygulamam olduğunu öğrendim. Biri dosya adına 'güncelleme' diğeri 'FileDecsription'da' güncelleme 'yapmıştı. 'Update' kelimesini bu iki uygulamadan kaldırdım ve daha fazla UAC uyarısı yok. 'UAC Nasıl Çalışıyor' - 'Yükleyici Algılama' altındaki bilgileri şu konumda buldum:

http://msdn.microsoft.com/en-us/library/aa905330.aspx

Aşağıdakileri belirtir:

Yükleyici Algılama yalnızca aşağıdakiler için geçerlidir:

  • 32 bit çalıştırılabilir
  • RequestExExCutionLevel olmadan başvurular
  • UAC özellikli Standart Kullanıcı olarak çalışan etkileşimli işlemler

Bir 32 bit işlem oluşturulmadan önce, bir yükleyici olup olmadığını belirlemek için aşağıdaki öznitelikler kontrol edilir:

  • Dosya adı "install", "setup" ve "update" gibi anahtar kelimeler içerir.
  • Aşağıdaki Sürüm Oluşturma Kaynağı alanlarındaki anahtar kelimeler: Satıcı, Şirket Adı, Ürün Adı, Dosya Açıklaması, Orijinal Dosya Adı, Dahili Ad ve İhracat Adı.
  • Yan yana uygulamadaki anahtar kelimeler çalıştırılabilir dosyaya gömülüdür.
  • Yürütülebilir dosyaya bağlı belirli StringTable girişlerindeki anahtar kelimeler.
  • Yürütülebilir dosyaya bağlı kaynak dosya verilerindeki anahtar özellikler.
  • Yürütülebilir içinde hedeflenmiş bayt dizileri.

  • Not: Bayt anahtar kelimeleri ve dizileri, çeşitli yükleyici teknolojilerinden gözlemlenen genel özelliklerden elde edilmiştir.


7

Visual Studio'nuz varsa aşağıdakileri yapabilirsiniz:

  1. Visual Studio'yu Yönetici olarak açın.
  2. Bir dosyayı açmak için Ctrl-O tuşlarına basın.
  3. Crimson Editor uygulamasının bulunduğu klasöre göz atın ve cedt.exe dosyasını açın.
  4. Dosya kaynak editörü kullanılarak açıldı ve RT_MANIFEST adlı şubesi olan bir ağaç göreceksiniz, bunu genişletin ve "1 [English United States]" adlı tek alt girişe çift tıklayın.
  5. Sağ sütunda aşağıya doğru yaklaşık dörtte üçü, "ExExvailable" ifadesini göreceksiniz, "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "tuşuna basın.
  6. Dosyayı kaydedin ve bitirdiniz.

HTH

Kevan


4

Buradaki sezgisel tarama hakkında bazı bilgiler var: http://msdn.microsoft.com/en-us/library/aa905330.aspx

Bir tezahür, bunlardan bazılarının kontrolüne yardımcı olabilir.


MSDN, bildirimi "yerleştirme" hakkında konuşuyor. Program derlenirken bu yapılmaz mı? Orada böyle bir açıklama yapmak için Kızıl Editör'ü kendim derlemek zorunda mıyım?
SealedSun,

5
Bir dosyaadı.exe.manifest dosyasını aynı klasöre ekleyebilirsiniz; Windows uygun şekilde okuyacaktır.
Faktör Mystic
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.