ฉันสามารถรันแอปพลิเคชัน winRT ของฉันเป็นสกรีนเซฟเวอร์ได้หรือไม่

มีวิธีทำให้แอปพลิเคชัน winRT ของฉันเป็นโปรแกรมรักษาหน้าจอใน xaml หรือไม่


person Jeric Paul Calderon    schedule 11.01.2013    source แหล่งที่มา


คำตอบ (2)


ดังที่ Jerry กล่าวไว้ ไม่มีวิธีที่ตรงไปตรงมาในการสร้างสกรีนเซฟเวอร์ของแอป Windows Store อย่างไรก็ตาม มีวิธีแก้ไขแบบวงเวียนที่อาจเหมาะกับคุณบน Windows 8 แต่ไม่ใช่ Windows RT ฉันมีมันใกล้จะทำงานแล้ว ฉันจะแบ่งปันสิ่งที่ฉันมีจนถึงตอนนี้

สกรีนเซฟเวอร์เป็นเพียงไฟล์ปฏิบัติการที่มีนามสกุล .scr เก็บไว้ใน C:\Windows\System32 ตัวอย่างเช่น ดูที่ C:\Windows\System32\Bubbles.scr วิธีแก้ปัญหาที่ฉันมีอยู่ในใจคือการสร้างสกรีนเซฟเวอร์ .scr ที่มีวัตถุประสงค์เพียงเพื่อเปิดแอปพลิเคชัน Windows Store ของคุณ ซึ่งคุณบอกว่าจะใช้ XAML

คุณไม่สามารถเปิดแอพ Windows Store จากบรรทัดคำสั่งได้โดยตรง ดังนั้นคุณจะต้องสร้างแอพ Launcher ดูโพสต์บล็อกชื่อ การทดสอบแอป Windows 8 โดยอัตโนมัติ โดย Ashwin Needamangala ในตอนท้ายของบทความ ให้มองหาส่วนที่เรียกว่าการเปิดใช้งานแอปของคุณโดยอัตโนมัติ ประกอบด้วยแอปพลิเคชัน C++ ตัวอย่างซึ่งสามารถเปิดแอป Windows Store ได้ด้วยวิธีต่อไปนี้:

C:>Win8AppLaunch.exe Microsoft.BingNews_8wekyb3d8bbwe!AppexNews

จำเป็นต้องแก้ไขตัวเรียกใช้งานตัวอย่างบนหน้านั้น แต่ก่อนที่คุณจะดำเนินการ ให้คัดลอกโค้ดลงในแอปคอนโซล C++:

ป้อนคำอธิบายรูปภาพที่นี่

คุณเกือบจะพร้อมที่จะทดสอบจากบรรทัดคำสั่งแล้ว แต่คุณต้องระบุชื่อแอปเป็น AppUserModelId รายละเอียดอยู่ในโพสต์ของ Ashwin แต่ในการถอดความคุณต้องอนุญาตให้เรียกใช้สคริปต์ PowerShell บนระบบของคุณด้วย:

PS C:> ตั้งค่า ExecutionPolicy AllSigned

จากนั้นรันสคริปต์ PowerShell นี้:

$installedapps = get-AppxPackage
foreach ($app in $installedapps)
{
    foreach ($id in (Get-AppxPackageManifest $app).package.applications.application.id)
    {
        $app.packagefamilyname + "!" + $id
    }
}

คุณอาจต้องการเรียกใช้งานใน Windows PowerShell ISE มันค่อนข้างเนียน ค้นหา AppUserModelId ของแอปของคุณ จากนั้นทดสอบ Win8AppLaunch.exe จากบรรทัดคำสั่งดังที่แสดงด้านบน สิ่งนี้ควรเปิดแอป Windows Store ของคุณจากบรรทัดคำสั่ง

จากนั้น แก้ไขตัวเรียกใช้งาน C++ เพื่อฮาร์ดโค้ด AppUserModelId ของแอปพลิเคชันของคุณ แทนที่จะแยกวิเคราะห์จากอาร์กิวเมนต์บรรทัดคำสั่ง ฉันสร้าง สรุปสาระสำคัญของสิ่งนี้ ส่วนสำคัญคือบรรทัดที่ฉันประกาศ myApp

สร้างไฟล์ปฏิบัติการใหม่ เปลี่ยนชื่อเป็น MyScreenSaver.scr และใส่ไว้ใน C:\Windows\System32 จากนั้นจะปรากฏในแผงควบคุมการตั้งค่าโปรแกรมรักษาหน้าจอ คุณสามารถดูตัวอย่างสกรีนเซฟเวอร์ได้ที่นั่นและใช้งานได้ อย่างไรก็ตาม หากคุณรอให้สกรีนเซฟเวอร์เปิดขึ้นมา หน้าต่างคอนโซลจะเปิดขึ้นชั่วครู่และไม่สามารถเปิดได้อย่างสมบูรณ์ ฉันไม่แน่ใจว่าทำไม ฉันพยายามปิดการใช้งานการสร้างหน้าต่างคอนโซลโดยเปลี่ยนโปรเจ็กต์เป็นแอพ Windows แต่นั่นไม่ได้ช่วยอะไร คุณสามารถลองด้วยตัวเองโดยเปลี่ยน Properties | Configuration | Linker | System | SubSystem เป็น WINDOWS ซับซ้อนกว่านี้อีกเล็กน้อย เนื่องจากคุณจะต้องเปลี่ยนจุดเริ่มต้นจาก _tMain เป็น _tWinMain ติดต่อฉันผ่านทางบล็อกของฉันหากคุณต้องการรายละเอียด โปรไฟล์ StackOverflow ของฉันแสดงรายการไว้

ณ จุดนี้มันทำงานได้เกือบสมบูรณ์แล้ว คุณอาจลองเริ่มต้นด้วยสกรีนเซฟเวอร์ C++ เปล่าที่คุณรู้ว่าใช้งานได้ จากนั้นจึงคัดลอกโค้ดด้านบน ถ้าฉันมีเวลามากขึ้นบางทีฉันอาจจะลองด้วยตัวเอง

person Matt Harrington    schedule 11.01.2013

ไอเดียเจ๋งๆ แต่ไม่มี.

หากคุณต้องการให้แอปพลิเคชันของคุณทำบางอย่างสำหรับ Windows นอกเหนือจากการทำงานเป็นแอปธรรมดา คุณจะต้องเขียนแอปส่วนขยาย นี่คือคำที่เป็นทางการ:

ส่วนขยาย ส่วนขยายเปรียบเสมือนข้อตกลงระหว่างแอปกับ Windows ส่วนขยายช่วยให้นักพัฒนาแอปขยายหรือปรับแต่งคุณสมบัติมาตรฐานของ Windows เพื่อใช้ในแอพของตนเป็นหลัก และอาจนำไปใช้ในแอพอื่นๆ ได้ด้วย

ขณะนี้มีแอปส่วนขยายประเภทนี้:

ผู้ให้บริการรูปภาพบัญชี (ส่วนขยาย) เมื่อผู้ใช้ตัดสินใจเปลี่ยนรูปภาพในบัญชี พวกเขาสามารถเลือกรูปภาพที่มีอยู่หรือใช้แอปเพื่อถ่ายรูปใหม่ หากแอปของคุณสามารถถ่ายรูปได้ คุณสามารถใช้ส่วนขยายนี้เพื่อให้ Windows แสดงรายการแอปของคุณในแผงควบคุมการตั้งค่ารูปภาพบัญชี จากนั้นผู้ใช้สามารถเลือกเพื่อสร้างภาพบัญชีใหม่ได้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับส่วนขยายนี้ โปรดดูหัวข้ออ้างอิงข้อมูลผู้ใช้ คุณยังสามารถตรวจสอบตัวอย่างชื่อรูปภาพบัญชีของเราได้

เล่นอัตโนมัติ (ส่วนขยาย) เมื่อผู้ใช้เชื่อมต่ออุปกรณ์เข้ากับคอมพิวเตอร์ Windows จะส่งเหตุการณ์การเล่นอัตโนมัติ ส่วนขยายนี้ช่วยให้แอปของคุณแสดงเป็นตัวเลือกเล่นอัตโนมัติสำหรับกิจกรรมเล่นอัตโนมัติอย่างน้อย 1 รายการ

งานเบื้องหลัง (ส่วนขยาย) แอปสามารถใช้งานเบื้องหลังเพื่อเรียกใช้โค้ดของแอปได้ แม้ว่าแอปจะถูกระงับก็ตาม งานเบื้องหลังมีไว้สำหรับรายการงานขนาดเล็กที่ไม่จำเป็นต้องโต้ตอบกับผู้ใช้

การตั้งค่ากล้อง (ส่วนขยาย) แอปของคุณสามารถจัดเตรียมอินเทอร์เฟซผู้ใช้ที่กำหนดเองสำหรับการเลือกตัวเลือกกล้อง และเลือกเอฟเฟกต์เมื่อใช้กล้องในการถ่ายภาพหรือวิดีโอ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับส่วนขยายนี้ โปรดดูที่การพัฒนาแอปอุปกรณ์ Windows Store สำหรับกล้อง

เครื่องมือเลือกผู้ติดต่อ (ส่วนขยาย) ส่วนขยายนี้ทำให้แอปของคุณสามารถลงทะเบียนเพื่อให้ข้อมูลผู้ติดต่อได้ แอพของคุณรวมอยู่ในรายการแอพที่ Windows แสดงทุกครั้งที่ผู้ใช้ต้องการเข้าถึงผู้ติดต่อของพวกเขา สำหรับข้อมูลเพิ่มเติมเกี่ยวกับส่วนขยายนี้ โปรดดูหัวข้ออ้างอิง Windows.ApplicationModel.Contacts.Provider คุณยังสามารถตรวจสอบการจัดการผู้ติดต่อของผู้ใช้ได้

การเปิดใช้งานไฟล์ (นามสกุล) ไฟล์ที่มีนามสกุลไฟล์เหมือนกันจะเป็นไฟล์ประเภทเดียวกัน แอปของคุณสามารถใช้ประเภทไฟล์ที่มีอยู่และเป็นที่รู้จักกันดี เช่น .txt หรือสร้างไฟล์ประเภทใหม่ก็ได้ ส่วนขยายการเปิดใช้งานไฟล์ช่วยให้คุณสามารถกำหนดประเภทไฟล์ใหม่หรือลงทะเบียนเพื่อจัดการกับประเภทไฟล์ได้

Game Explorer (ส่วนขยาย) แอปของคุณสามารถลงทะเบียนกับ Windows เป็นเกมได้ ในการดำเนินการนี้ คุณต้องสร้างไฟล์คำจำกัดความของเกม (GDF) สร้างเป็นทรัพยากรไบนารีในแอปของคุณ และประกาศทรัพยากรดังกล่าวในรายการแพ็คเกจ

การตั้งค่างานพิมพ์ (ส่วนขยาย) คุณสามารถออกแบบแอปที่แสดงอินเทอร์เฟซผู้ใช้ที่เกี่ยวข้องกับการพิมพ์แบบกำหนดเอง และสื่อสารโดยตรงกับอุปกรณ์การพิมพ์ เมื่อคุณเน้นคุณลักษณะเฉพาะสำหรับยี่ห้อและรุ่นเฉพาะของอุปกรณ์การพิมพ์ คุณสามารถมอบประสบการณ์ผู้ใช้ที่สมบูรณ์และดียิ่งขึ้นได้

การเปิดใช้งานโปรโตคอล (ส่วนขยาย) แอปของคุณสามารถใช้โปรโตคอลที่มีอยู่เพื่อการสื่อสาร เช่น Mailto หรือสร้างโปรโตคอลที่กำหนดเองได้ ส่วนขยายการเปิดใช้งานโปรโตคอลทำให้คุณสามารถกำหนดโปรโตคอลที่กำหนดเองหรือลงทะเบียนเพื่อจัดการโปรโตคอลที่มีอยู่ได้

SSL/ใบรับรอง (ส่วนขยาย) ใบรับรองดิจิทัลใช้ในการตรวจสอบสิทธิ์เอนทิตีหนึ่งไปยังอีกเอนทิตีหนึ่ง ตัวอย่างเช่น ใบรับรองมักจะใช้เพื่อตรวจสอบสิทธิ์ผู้ใช้กับบริการเว็บผ่าน SSL ส่วนขยายนี้ช่วยให้คุณสามารถติดตั้งใบรับรองดิจิทัลกับแอปของคุณได้

อ้างอิง: http://msdn.microsoft.com/en-us/library/windows/apps/hh464906.aspx

น่าเสียดายที่ไม่มีอะไรเกี่ยวข้องกับโปรแกรมรักษาหน้าจอ เหตุผลทางเทคนิค ณ เวลานี้ คุณไม่สามารถเขียนแอป Windows 8 ที่ทำหน้าที่เป็นสกรีนเซฟเวอร์ได้ เนื่องจากแอป Windows 8 โดยพื้นฐานแล้วเชื่อมโยงกับการทำงานภายในสภาพแวดล้อมการดำเนินการ WinRT เชลล์นั้นไม่ได้ขยายออกไปเลยเมนู Start ใน Windows เวอร์ชันปัจจุบันนี้ ดังนั้นจึงไม่มีทางที่จะดำเนินการภายนอกได้ - เช่นเดียวกับโปรแกรมรักษาหน้าจอ โปรแกรมรักษาหน้าจอยังคงสร้าง "วิถีแบบเก่า"

person Jerry Nixon    schedule 11.01.2013
comment
เนื่องจากคุณมาจาก MSFT ให้ฉันลองทำเคสสกรีนเซฟเวอร์ดู สกรีนเซฟเวอร์อาจไม่เกี่ยวข้องในขณะนี้ที่ CRT ใช้งานไม่ได้ แต่มีอย่างน้อย 2 เหตุผลที่ยังคงมีคุณค่า 1) มันจะเป็นวิธีที่ง่ายมากสำหรับนักพัฒนาในการทดลองสร้างสำหรับ Windows และเผยแพร่ไปยัง Windows Store 2) มียูทิลิตี้ในแอปที่ทำงานด้วยการมองเห็นในขณะที่คอมพิวเตอร์ไม่ได้ใช้งาน ตัวอย่างเช่น กรอบรูป นาฬิกา การรวมสตรีมโซเชียลเน็ตเวิร์ก แอพที่สามารถทำงานในขณะที่คอมพิวเตอร์ไม่ได้ใช้งานทำให้เราสามารถใช้เครื่องของเราเพื่อการบริโภคแบบพาสซีฟ - person Tristan; 24.07.2013