Delphi Xe ve Windows7 Manifest ile ilgili (Çözüldü)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Rew33
Üye
Mesajlar: 70
Kayıt: 10 Tem 2009 02:28

Delphi Xe ve Windows7 Manifest ile ilgili (Çözüldü)

Mesaj gönderen Rew33 »

embarcadero'nun formlarından bir örnek buldum.

Kod: Tümünü seç

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
<!-- Change Version, Name and Description to match application. -->
<assemblyIdentity 
version="1.0.0.0" 
processorArchitecture="X86" 
name="Project1" 
type="win32"/> 
<description>Does some stuff</description> 
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
<application>
<!--The ID below indicates application support for Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
bu dosyadan Res file oluşturup,delphinin içerisine gerekli yere kodu yazıyorum ama bir türlü kullanıcı denetimini çalıştıramadım.yapmak istediğim kullanıcının yetkisinin olmadığı bir klasöre (system32) dosya yazmak.daha önce bu şekilde manifest dosyalarıyla işlem yapan biri yardım edebilir mi?
En son Rew33 tarafından 28 Eyl 2011 01:41 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
Kimseye hiçbir şey öğretemem, sadece onların düşünmelerini sağlayabilirim.
SOKRATES
Kullanıcı avatarı
Rew33
Üye
Mesajlar: 70
Kayıt: 10 Tem 2009 02:28

Re: Delphi Xe ile Windows7 Manifest ile ilgili

Mesaj gönderen Rew33 »

sorumun tam anlaşılmadığını düşünerek biraz daha açayım,
mutlaka sizinde başınıza gelmiştir,
vista yada windows7 kullanan bir bilgisayarda kullanıcının yetkisinin olmadığı bir işlem yaparken çıkan Kullanıcı Hesabı Denetimi (User Account Control) penceresini açıp program için gerekli izinleri almak.
işte benim yapmak istediğim bu,
mutlaka forumda bunu yapan olmuştur.
Kimseye hiçbir şey öğretemem, sadece onların düşünmelerini sağlayabilirim.
SOKRATES
bocek
Üye
Mesajlar: 25
Kayıt: 01 May 2011 07:51
Konum: İstanbul, Antalya

Re: Delphi Xe ile Windows7 Manifest ile ilgili

Mesaj gönderen bocek »

Sorunun projenin içine Uac.Res eklememiş olman gibi görünüyor.
Uac.Res diye forumda arattır, projene resource olarak ekle.
Kullanıcı avatarı
Rew33
Üye
Mesajlar: 70
Kayıt: 10 Tem 2009 02:28

Re: Delphi Xe ile Windows7 Manifest ile ilgili

Mesaj gönderen Rew33 »

bocek yazdı:Sorunun projenin içine Uac.Res eklememiş olman gibi görünüyor.
Uac.Res diye forumda arattır, projene resource olarak ekle.
projeme res dosyasını ekledim zaten ekli olmasa hata vermesi lazım.
Kimseye hiçbir şey öğretemem, sadece onların düşünmelerini sağlayabilirim.
SOKRATES
Kullanıcı avatarı
Rew33
Üye
Mesajlar: 70
Kayıt: 10 Tem 2009 02:28

Re: Delphi Xe ile Windows7 Manifest ile ilgili

Mesaj gönderen Rew33 »

sorunu çözdüm,sorun ana formun uses larında XPMAn vamış onu silince düzeldi.şimdi programı win7 li bir bilgisayarda çalıştırınca kullanıcı yetkisi yoksa uac açılıyor ve izin istiyor.
başka arkadaşların da işine yarayacağını düşündüğümden yaptıklarımı bir özet geçeyim;

Kod: Tümünü seç

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity type="win32" 
                    name="App" 
                    version="3.1.0.0" 
                    processorArchitecture="*"/>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" 
                        name="Microsoft.Windows.Common-Controls" 
                        version="6.0.0.0" 
                        publicKeyToken="6595b64144ccf1df" 
                        language="*" 
                        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator" 
                                 uiAccess="false"/>
        </requestedPrivileges>
    </security>
  </trustInfo>
  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <!--The ID below indicates application support for Windows Vista -->
      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
      <!--The ID below indicates application support for Windows 7 -->
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
    </application>
  </compatibility>
</assembly>
öncelikle yukarıdakileri bir text dosyasına yapıştırın ve dpr dosyanızın yanına .manifest olarak kayıt edin (ne ad verdiğinizin bir önemi yok ben WinUAC.manifest verdim)

Kod: Tümünü seç

1 24 "WinUAC.manifest"
sonra yukarıdakileride yine aynı klasörde .rc olarak kayıt edin (ben WinUACManifest.rc verdim)

Kod: Tümünü seç

brcc32 WinUACManifest.rc
daha sonra bir konsol açarak dpr klasörüne gidin ve yukarıdaki komutu çalıştırın.
aynı klasöre .res dosyası oluşacak benim örnekte WinUACManifest.res dosyası oluştu.
daha sonra delphide projenin View Source kısmını
program xXx;
{$R 'WinUACManifest.res' 'WinUACManifest.rc'}

uses
Forms,
.....
kendinize göre düzeltin.
şimdiki sorunum da doğal olarak açılan UAC ekranında yayıncı kısmının bilinmeyen olarak çıkması,bu sorunu ücretsiz çözebilirmiyim biraz ona bakacağım.
Kimseye hiçbir şey öğretemem, sadece onların düşünmelerini sağlayabilirim.
SOKRATES
Cevapla