Windows XP'de varsayılan konsol emülatörünün değiştirilmesi


11

Windows XP'de konsol pencereleri sağlayan varsayılan programı nasıl değiştirebilirim?

Biliyorum alternatif programlar ve başlamak için bir kısayolum var cmd.exe içinde Console2 . Ancak şimdi konsol uygulamasını başlatan program üzerinde denetimim olmasa bile, konsol uygulamalarının varsayılan konsol programı yerine Konsol 2'de başlatılmasını istiyorum. (Yani, konsol dışı bir program başlar consoleapp.exeve bunun yerine Console2'yi başlatacak şekilde değiştiremiyorum, ancak uygulamanın yeni bir Console2 örneği içinde başlatılmasını istiyorum.)

(Notu değiştirmek istediğimi konsol kendisi, yani, konsolun (yani metin modu) uygulamalarının çalıştığı penceredir. Ve keyfi, değiştirilmemiş konsol uygulamalarını çalıştırabilmeliyim: Cmd gibi belirli bir konsol programının yerine geçmem bana hiç yardımcı olmaz.)

DÜZENLE : Peşinde olduğum şey bir CSRSS değişimi , hangi yol açar

OT: Microsoft'un ne zaman uygun bir CSRSS değişikliği yapacağını bilmek istiyorum. Pencereyi yeniden boyutlandırarak "terminal" genişliğini ayarlayamamak tam bir şaka.

Zaten İMKB'yi indir. (Win7 / 2008R2'ye dahil edilmiştir.)

Ama anladığım kadarıyla bu İMKB’nin Powershell için çevre , genel bir konsol emülatörü değil.


Yeni teklifinizde belirtilen eksiklik, yine de IIRC Console2'de çalıştırıldığında CMD için geçerli değildir.
paradroid

@ jason404: Evet, ancak bir toplu iş dosyasını çift tıklarsanız, örneğin Konsol 2'de açılmaz. Bunun gibi örnekler, komut satırı kabuğunu gerçekten değiştirmeniz gerekebilir. Bence bu harika bir soru, +1.
Sasha Chedygov

Yeni konsol konsolu sekmesine std konsolunun "Takılması" size uygun olabilir mi? Manuel ek, yani.
Maximus

@Maximus Ne demek istediğini anlamıyorum. "Std konsolu" ile, CSRSS mi demek istiyorsunuz? Bu "iliştirme" neresi?
Gilles

ConEmu, mevcut herhangi bir "gerçek konsol" (CSRSS, evet) veya basit GUI uygulamalarını sekmesine ekleyebilir. Ekleme ConEmu arayüzünden manuel olarak veya konsolda özel komut çalıştırılarak (varsa) yapılabilir.
Maximus

Yanıtlar:


9

Ben bir yazarım ConEmu - Windows konsol emülatörü. Özelliklerinden biri, mevcut konsollarını veya basit GUI uygulamalarını sekmesine yakalamaktır. Bu nedenle, standart konsoldaki (CSRSS / ConHost) konsol programını başlattıktan sonra şunları yapabilirsiniz:

  • ConEmu sistem menüsünde, "Ekle ..." öğesini seçin ( kazanmak + G, varsayılan olarak) ve ekleme penceresini seçin. ConEmu başlatılmadıysa, isteğe bağlı olarak başlangıçta konsol / sekme oluşturmadan başlatabilirsiniz:

    C:\Tools\ConEmu.exe /detached
    
  • Veya uygunsa, başlatılan konsolda konsol tarafından eklemeye başlayan aşağıdaki komutu (ConEmu \ Attach.cmd) çalıştırın. Bu durumda, henüz mevcut değilse, ConEmu.exe (GUI) otomatik olarak başlatılır.

    ConEmuC.exe /ATTACH /NOCMD
    
  • Bir yol daha var. Sanırım gereksinimlerinize uymuyor, ancak açıklayacağım. Konsolda başlatıldıktan sonra cmd / tcc içeriğinin yürütüldüğü kayıt defterinde bir anahtar vardır. Sen başlarken consoleapp.exe, değil cmd.exe, bu bayan. Var Cmd_Autorun.cmd ConEmu içindeki dosya bu komutu yüklemek / kaldırmak için dağıtılır.

    [HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
    "AutoRun"="\"<Command to be executed>\"" 
    

Var etiket burada, Superuser.com'da

UPD . Yapım 120704. Konsol pencereleri için alternatif müdahaleci olmayan ekleme modu.

ConEmu attach external console dialog

UPD2 . Yapı 121128. Belirlenmiş (kullanıcı tarafından) uygulamalardan "konsol penceresi oluşturulmasını" engellemek mümkündür. explorer.exe,vcexpress.exe. Bu müdahaleci hakkında devamını oku deneysel özellik .


Umut verici görünüyor, ama benim için işe yaramıyor (Sanırım diğerleri için işe yarayabilir). Eklemeye çalıştığımda consoleapp.exeMesajı aldım ConEmuC.X, PID=5656 Injecting remote into PID=5432 FAILED, code=-111:0x00000057. Dan beri consoleapp.exe “uzaktan enjekte” görmek, ConEmu tarafından kullanılan tekniğin benim için hiçbir zaman işe yaramayacağından kuşku duyduğum bir programdır - “yabancı” programların hata ayıkladığım programı rahatsız etmesine izin veremem.
Gilles

120704'ü deneyin. Alternatif mod sizin için çalışacaktır.
Maximus

Alternatif mod çalışmaları ile 120704'ü derleyin, teşekkürler. Varsayılan konsol emülatörünü değiştiremezsem, uygulama başladıktan sonra daha iyi bir taneye takmak hiç olmamasından iyidir. Bir tuşa basıldığında nasıl olduğunu çözemiyorum olsa.
Gilles

@ Maxximus: Harika çalışmanızı ödetmemeye yardım edemem. Nadiren Windows'u kullanıyorum, ancak bazen zorluyorum ve olduğumda Cygwin veya Msys entegrasyonuna ihtiyacım var. Console2 şu ana kadar gördüğüm en güzel çözüme sahipken, biraz dağınıktı. ConEmu çok güzel, ancak 2 şey diliyorum: 1. Profiller için daha iyi bir destek olmalı, yani özel konsol profillerini kaydetmek / silmek için bir menajere sahip olmalıdır (örn. sh direkt olarak; 2. Pencerenin çoklu dikey / yatay sekmelerde bölünmesine izin vermeli ve yeniden başlatma sırasında bu özel sekme düzenlemesini geri çağırmalıdır.
axel22

@ axel22: Dileklerinizi gönderebilirsiniz ConEmu sorunları . 1. Zaten profilleri var. 2. Yol haritasında.
Maximus

1

Yapamazsın Win32 konsolları her zaman CSRSS tarafından sağlanan yerleşik konsol pencerelerini kullanın.


Teşekkürler, şimdi neyin peşinde olduğumun bir CSRSS değişiminin olduğunu biliyorum.
Gilles

@Gilles: Bununla iyi şanslar. (Aslında, Windows 7'de işlevselliği büyük oranda çekirdeğe taşınmıştır, ancak yine de Win32 alt sisteminin özü olan "kritik bir süreç" olarak kalır.)
grawity

@Gilles: Sonra dediğim gibi farklı bir kabuk kullanın. Win32 konsolu sadece standart Windows terminal emülatörüdür.
paradroid

1
@ jason404: Ve Gilles dediği gibi, öyle değil kabuk (cmd.exe) ancak konsol (terminal emülatörü) değiştirmek istiyor. herhangi bir program Konsol pencerelerini kullananlar yerine geçer.
grawity

2
Windows 7'nin konsol penceresi uygulaması dışına taşındı csrss içine conhost.exe. Ne yazık ki, hala aynı eski UI ve bildiğim kadarıyla, API'leri belgelenmemiş. Daha fazla blogs.technet.com/b/askperf/archive/2009/10/05/...
ak2
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.