2016-02-24 17 views
13

Dizüstü bilgisayarımı otomatik olarak (önyükleme veya tuş bileşimi) ekran yansıtma için MS kablosuz ekran bağdaştırıcımla bağlayan bir Windows hizmeti (C#) veya bir powershell komut dosyası yazmak istiyorum. Windows 10'da, yalnızca bildirimlere giderek el ile yapabilir ve Bağlan> MS Kablosuz bağdaştırıcı> bağla'yı tıklatabilirim.MS'ye Otomatik Bağlan Windows 10'daki Kablosuz ekran

Bulduğum şey, bir Miracast API'sinin (https://msdn.microsoft.com/en-us/library/windows/hardware/dn265515(v=vs.85).aspx) bulunduğunu, ancak nasıl kullanılacağına dair çok fazla belge bulunmadığını.

Ayrıca bu http://filelog.net/file/MiraDisp.dll/2c279c8d57a47a9ca06aa279bd9e0e8e22c7c1c1 buldum ve OpenMiracastSession ve CloseMiracastSession iki işlevi vardır.

sorun C# Bu işlevleri nasıl kullanılacağını bilmiyorum. Biliyorum muhtemelen pInvoke kullanmalıyım. Beni doğru yöne yönlendiren var mı?

+0

(Ben sadece bir kablosuz ekran dongle varsa, bu benim için bir sorun değildir) - sadece bir WiFi ağına - Bir "kablosuz ekran" bağlanmaya çalışıyorsunuz. – jaredbaszler

+2

Bu Miracast API'larının sizin düşündüğünüz şey olduğunu sanmıyorum, muhtemelen Windows'un kendi yansıtma yapmak için değil, ekran yansıtma işlemini yapmak için Windows'un kendisi (kapağın altında) kullandığı durumdur. Temel olarak tuşa basma + fare makroları kaydedebileceğiniz ve bunları bir tuşa basarak çalıştırabileceğiniz [AutoHotKey] (https://www.autohotkey.com/) gibi bir şeyi düşündünüz mü – CodingGorilla

+0

Listeye göre, Miracast API listesi bir sürücünün uygulaması gereken işlevler; Bunları arayamazsınız çünkü işletim sisteminin cihaza zaten bir soket bağlantısı olması gerekir. Bildirim API'sının üstünde otomasyona baktınız mı? Bu, en büyük ihtimalle olurdu, çünkü Connect -> MS Wireless adapter -> connect'i tıklatarak otomatikleştirmeye çalışıyorsunuz. –

cevap

5

Her şeyden önce, AutoHotkey hakkındaki öneri için @CodingGorilla'ya teşekkürler. Son birkaç gündür buralarda oynuyorum.

Herhangi bir Windows 10 API'siyle başlamak için kolay bir yer bulamadığım için AutoHotkey rotasına gittim. Tost bildirimlerini zorlamak için her türlü belge var ama eylem merkezini kontrol etmek için hiçbir şey bulamadım. Herkes bu cephede önerileri varsa , onları gönderin.

İşte AutoHotkey kullanarak geldim. Oldukça basit ama bununla bir kaç değişken olduğu için ideal bir çözüm değil. Ben de ne yaptım bir örnek olarak görüntüleri ekledim

Send #a ;Sends Windows button + A to open the action center 
Sleep, 750 ; Give it some time to slide open 
ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, C:\Connect.png ;Try to find the Connect button tile 
if ErrorLevel = 2 
    MsgBox Could not conduct the search for the connect button in action center. Make sure your search image is in the correct location. 
else if ErrorLevel = 1 
    MsgBox Connect button cannot be found on the screen. 
else 
    MoveMouseAndClick(FoundX, FoundY) 
Sleep, 1250 ;Delay so the wireless displays have a chance to load into the Action Center window 
ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, C:\WirelessDisplay.png 
if ErrorLevel = 2 
    MsgBox Could not conduct the search for the wireless display. 
else if ErrorLevel = 1 
    { 
     ;Search image cannot be found. Try 1 more time in case it took a long time for the wireless displays to appear 
     Sleep, 750 
     ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, C:\WirelessDisplay.png ;try to find the first Wireless Display device listed 
     if ErrorLevel = 1 
      MsgBox Wireless display image cannot be found on the screen. Make sure the wireless device is turned on. 
     else 
      MoveMouseAndClick(FoundX, FoundY) 
    } 
else 
    MoveMouseAndClick(FoundX, FoundY) 
Send {Esc} ;Send Esc to get rid of the Action Center window 
Return 

MoveMouseAndClick(x, y) { 
    MouseMove, x + 25, y + 25 ;Move it down the right a bit to make sure we click the button 
    Sleep, 250 
    MouseClick, left 
} 

: Aşağıda Bağladığım tıklayın, aksiyon merkezini açmak için kullanılan AutoHotkey komut kodu, sonra en üstteki listelenmiş kablosuz ekranı tıklayın. Kendi arama görüntüleri yapmak gerekecektir. bu görüntüleri yapmadan önce, aynı zamanda Eylem Merkezi şeffaflığını kapatmalısınız Windows 10 başlangıç ​​ve görev çubuğu - Ayarlar-> Personalization-> Colors-> Kapalı Başlat, görev çubuğu ve hareket merkezi transparent-> olun. Resimdeki "Roku Çubuğu" resim görüntü listeleri olarak 2. resmi tekrarlamak özellikle önemlidir. Benim masaüstü geliştirme makine ve MS Yüzey 3 Ben bu senaryoyu çalıştırıyorum arasında benim arama görüntüyü yinelemek zorunda kaldı. Çözünürlük ve benzeri cihazlar arasında değişecektir. Buraya kendi arama görüntüsünü oluşturmaya ilişkin talimatları izleyin: Kablosuz ekran zaten bağlıysa

https://autohotkey.com/docs/commands/ImageSearch.htm

Son olarak, bu büyük olasılıkla çalışmayacaktır. Kablosuz ekran bağlamak benim ortamında değiştirmek için tabletteki çözünürlük neden olur ve bu nedenle ekrandaki görüntüleri bulamıyorum.

Image of the connect button in Action Center
enter image description here

4

Önce o @jaredbaszler gerçekten iyi çözüm sağladı söylemek istiyorum. Bu bir cazibe gibi çalıştı teşekkür :) teşekkür

Bunu yapmanın başka bir yolu olup olmadığını öğrenmek istedim çok beri AutoHotkey etrafında oynuyordum. Bir süre sonra şu komut dosyası ile geldim:

Tamam.Şimdi bana bu komut nasıl çalıştığını açıklayalım:

Önce Kablosuz ekran dongle bulunabilir böylece 3 saniye bekler Eylem Merkezi Bağlan penceresini Sonra
  • açılacak WIN + K (baskı yapacak
    1. siz lütfen bu değeri ayarlayabilirsiniz ama) göstermek benim kablosuz ekran dongle için otomatik listesi ve tetiğin ilk kablosuz ekran kilidini seçecek hangi tuşuna basın edecek bekleyişten sonra
    2. 2'den fazla saniye beklemek gerekli bağlantı fonksiyonu (kablosuz ekran dongleler bulunabilir Eğer Varsayılan Tarayıcı "Yardım" bağlantısını açacak)
    3. T Kabuk programı o son şey That'so, Eylem Merkezi'ni

    Eh kapatmak için ESC tuşuna basmaktır. Özel bir şey değil ama işe yarıyor. Bu komut dosyasını tabletimle ve kablosuz ekran dongle'ımla (bu bir here var) birkaç kez test ettim ve gayet iyi çalışıyor gibi görünüyor. Ne yazık ki, çok sayıda kablosuz ekranınızın aynı anda çalışıp çalışır durumda olması durumunda betiğiniz beklendiği gibi çalışmayacaktır, çünkü betiğim ilk ortaya çıkanları seçecektir. MuratYıldız @

  • +1

    Bu, çok iyi çalışması gereken son derece basit bir çözümdür. İstediğiniz adaptörün üzerindeki vurguyu taşımak için bazı {Tab} tuşlarını da gönderebileceğinizi ve daha sonra etkinleştirmek için {Enter} tuşunu gönderebileceğinizi unutmayın. –

    +0

    Ayrıca, birden çok bağdaştırıcınız varsa, "Ara" seçeneğini vurgulamak için {Sekme} seçeneğini kullanabilir, sonra aramak için biraz metin gönderir, sonra da sonuçta ortaya çıkan bağdaştırıcıya {Sekme} gönderebilir ve {Enter} gönderebilirsiniz. –