none
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; (GÖRÜNÜYOR) RRS feed

  • Soru

  • Arkadaşlar şu şekilde bir  Process çalıştırıyorum.

    p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

    Konudu kullanıyorum ayrıca

    p.StartInfo.CreateNoWindow = false;
    p.StartInfo.UseShellExecute = false;

    Bu şekilde yaptım. Process açıldığı zaman Process oluşturduğu messegebox tarzı küçük form parçaları görünür oluyor. Bunları da nasıl görünmez yapabilirim.

    2 Mayıs 2017 Salı 13:14

Yanıtlar

  • Çözüm, WinRAR tarafından sessiz faaliyet için sağlanan komut parametrelerini kullanmak:

    Process p = new Process();
    p.StartInfo.CreateNoWindow = true;
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
    
    // Komut satırı parametreleri:
    // -IBCK: WinRAR komutunu arka planda çalıştır (background).
    // -INUL: Hata mesajlarını etkisizleştir.
    // -O+  : Varolan dosyaların üzerine yaz.
    // Detaylar: http://acritum.com/software/manuals/winrar/
    
    p.StartInfo.FileName = winRARkomutYolu;
    p.StartInfo.Arguments = string.Format(@"X -IBCK -INUL -O+ -P""{0}"" ""{1}"" *.* ""{2}\""",
        tbSifre.Text, source, destinationFolder);
    
    p.Start();
    p.WaitForExit();

    Yukardaki kodu içeren ufak bir program yazdım, ekte paylaşıyorum: CreateNoWindow.zip

    Çalıştırmak için 1) Desktop'da winrartest adında bir klasör yaratın, 2) Klasörün içine şifreli bir test.rar dosyası kaydedin, 3) Aynı klasörün içinde destfolder adında ikinci bir klasör yaratın.  Dosyanın şifresini ben "abcdefgh" olarak kullandım, program arayüzünden değiştirilebilir.

    Program arayüzü:

    Teşekkürler.


    3 Mayıs 2017 Çarşamba 02:55

Tüm Yanıtlar

  • p.StartInfo.CreateNoWindow = true;
    olarak değiştirin...
    2 Mayıs 2017 Salı 13:25
  • onu true yada false yapınca görünürde hiç bir şey değişmiyor.
    2 Mayıs 2017 Salı 14:11
  • Tüm kodu gösterin, lütfen.

    2 Mayıs 2017 Salı 18:34
  • Kodlarım şu şekilde:

    System.Diagnostics.Process p = new System.Diagnostics.Process();
    p.StartInfo.CreateNoWindow = true;
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
    p.StartInfo.FileName = "\"C:\\Program Files\\WinRAR\\winrar.exe\"";
    p.StartInfo.Arguments = string.Format(@"x -p{0} ""{1}"" *.* ""{2}\""", sifre, source, destinationFolder);
    p.Start();
    p.WaitForExit();

    kullanıcıya bir rar bir de exe gönderiyorum kullanıcı rar'ı görmüyor sadece exe'yi görüyor. kullanıcı exe'ye ona verdiğim şifreyi giriyor. eğer şifre doğru ise exe rar'ın içindekileri kullanıcının masa üstüne çıkartıyor ve sonra hem rar'ı hem de kendini siliyor.

    ama bazen yanlış şifre girilebiliyor ve o zman rar dosyasın 2 tane penceresi açılıyor. bende çalışan proseslerin içerisinden rar'ınkini bulup kapatıyorum ve kullanıcıya yanlış şifre girdiniz diyorum. fakat bu sırada kulanıcı benim rar kullandığımı anlıyor. 

    rar dosyasının pencerelerini kapatmak için:

    foreach (Process v in Process.GetProcesses())
    {
           if (v.MainWindowTitle == "WinRAR: Tanı mesajları" || 
    v.MainWindowTitle == "Parolayı girin")
           {
                  v.Kill();
           }
    }
    kullanıyorum. ama istediğim şey o pencereleri ben kapatırken ekranda görülmemesi. bunun için yapmam gereken nedir. Bu rar olayını bu şekilde yapmam gerek yani rar olayında değişiklik yapamam. bu işlem bu şekilde yürüyor. yapmam gereken açılan pencerelerin hiç görülmemesi.


    2 Mayıs 2017 Salı 19:18
  • Siz kullanıcının girdiği şifreyi kontrol ettikten sonra şifre doğru ise rar dosyaya sizin belirlediğiniz başka bir şifreyi gönderin. Şifre doğru değilse rar dosyayı hiç çağırmayın. Böylece rar dosyaya girilen şifrenin hatalı olma ihtimalini ortadan kaldırmış olursunuz...
    2 Mayıs 2017 Salı 20:40
  • neden? o küçük pencereleri ortadan kaldıramıyor muyuz?
    2 Mayıs 2017 Salı 20:48
  • Çözüm, WinRAR tarafından sessiz faaliyet için sağlanan komut parametrelerini kullanmak:

    Process p = new Process();
    p.StartInfo.CreateNoWindow = true;
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
    
    // Komut satırı parametreleri:
    // -IBCK: WinRAR komutunu arka planda çalıştır (background).
    // -INUL: Hata mesajlarını etkisizleştir.
    // -O+  : Varolan dosyaların üzerine yaz.
    // Detaylar: http://acritum.com/software/manuals/winrar/
    
    p.StartInfo.FileName = winRARkomutYolu;
    p.StartInfo.Arguments = string.Format(@"X -IBCK -INUL -O+ -P""{0}"" ""{1}"" *.* ""{2}\""",
        tbSifre.Text, source, destinationFolder);
    
    p.Start();
    p.WaitForExit();

    Yukardaki kodu içeren ufak bir program yazdım, ekte paylaşıyorum: CreateNoWindow.zip

    Çalıştırmak için 1) Desktop'da winrartest adında bir klasör yaratın, 2) Klasörün içine şifreli bir test.rar dosyası kaydedin, 3) Aynı klasörün içinde destfolder adında ikinci bir klasör yaratın.  Dosyanın şifresini ben "abcdefgh" olarak kullandım, program arayüzünden değiştirilebilir.

    Program arayüzü:

    Teşekkürler.


    3 Mayıs 2017 Çarşamba 02:55
  • Çok teşekkürler Ahmet bey.
    3 Mayıs 2017 Çarşamba 11:50