ไม่สามารถเข้าถึงอุปกรณ์ USB ภายในแอพ Windows Store

ตกลง ก่อนอื่น ฉันต้องชี้ให้เห็นว่าฉันยังใหม่กับการพัฒนา Windows Apps ซึ่งถือว่าดี เนื่องจากฉันกำลังพยายามพัฒนาแอป Windows Store สำหรับพีซีเพื่อใช้ PrimeSense Scanner ที่เชื่อมต่อผ่าน USB ฉันได้ถามคำถามที่เฉพาะเจาะจงมากขึ้นเกี่ยวกับที่นี่ .

คราวนี้ฉันมีคำถามทั่วไปซึ่งเกี่ยวข้องกับการพัฒนาแอป Windows Store มากกว่า ฉันใช้ VS2013 Express และคอมไพล์สำหรับ Win32

เมื่อฉันคอมไพล์แอปพลิเคชันของฉันสำหรับ VS2012 และเรียกใช้เป็นไฟล์ปฏิบัติการ ฉันสามารถเชื่อมต่อกับสแกนเนอร์ได้อย่างสมบูรณ์แบบ แต่ฉันไม่สามารถทำเช่นเดียวกันกับ VS2013 และเรียกใช้เป็นแอป Store ได้

ฉันรู้ว่าอุปกรณ์เชื่อมต่ออยู่และไดรเวอร์ได้รับการอัปเดตและไฟล์ dll ทั้งหมดอยู่ในไดเร็กทอรี Widnows System 32 ฉันยังได้เพิ่มความสามารถทั้งหมดลงใน App Manifest และยังได้เพิ่มความสามารถของอุปกรณ์ต่อไปนี้ด้วย

 <m2:DeviceCapability Name="usb">
  <!--OSRFX2 Device-->
  <m2:Device Id="vidpid:1d27 0609">
    <m2:Function Type="classId:ff * *" />
    <m2:Function Type="name:vendorSpecific" />
  </m2:Device>
</m2:DeviceCapability>

vid และ pid ตรงกับรหัสที่เกี่ยวข้องของอุปกรณ์อย่างชัดเจน

ข้อผิดพลาดประการหนึ่งที่ฉันได้รับเมื่อพยายามเชื่อมต่อกับเครื่องสแกนโดยใช้ OpenNI คือ:

Could not open to "\\?\usb#vid_1d27&pid_0609&mi_00#7&1601586a&0&0000#{c3b5f022-5a42-1980-1909-ea72095601b1}" USB Device not found

ข้อผิดพลาดนี้ค่อนข้างน่าหงุดหงิดเนื่องจากฉันรู้ว่าอุปกรณ์เชื่อมต่ออยู่ ดังนั้นฉันจึงคิดว่ามีความเฉพาะเจาะจงของระบบปฏิบัติการระดับหนึ่งบนฝั่งแอป Windows Store ของเกมที่ไม่สามารถเชื่อมต่อกับอุปกรณ์ได้ อย่างที่ฉันบอกไปแล้วว่าฉันกำลังรวบรวม Win32

มีโอกาสที่ไดรเวอร์จะไม่ทำงานสำหรับแอพ Windows Store หรือไม่ มีสิ่งพิเศษบางอย่างที่ฉันควรทำภายในตรรกะของแอป Windows Store ที่ฉันไม่ได้ทำและจำเป็นต่อการเชื่อมต่ออุปกรณ์ USB หรือไม่ ฉันขอโทษ แต่ฉันยังใหม่กับการพัฒนาแอพ Windows Store

ขอบคุณ


person MobileCushion    schedule 23.06.2014    source แหล่งที่มา
comment
โปรดยืนยันได้ไหมว่าชื่อของคุณถามถึงแอป Windows store แต่ตรงกลางคุณบอกว่าแอปเดสก์ท็อป VS2013 จะไม่พบสแกนเนอร์ ฉันสับสนเล็กน้อย คุณหมายถึง VS2013 Store App ไม่พบสแกนเนอร์ใช่หรือไม่   -  person Nasenbaer    schedule 30.06.2014
comment
ใช่ ฉันหมายถึง VS2013 Store App ขอบคุณที่ชี้ให้เห็นว่า   -  person MobileCushion    schedule 02.07.2014


คำตอบ (1)


คุณไม่สามารถทำเช่นนั้นได้จากแอปรถไฟใต้ดิน

โดยทั่วไปคุณจะสร้างตัวจัดการให้กับอุปกรณ์ usb นั้นโดยการเรียก CreateFile ด้วยเส้นทางตัวจัดการวัตถุนั้น เป็นไฟล์ที่จะ 'สร้าง' สร้างไฟล์ คือ ไม่ได้รับอนุญาต ในแอป Metro - "แอปเดสก์ท็อป เท่านั้น" - และ 'การแทนที่' CreateFile2 ไม่อนุญาตให้เปิดอ็อบเจ็กต์ตัวจัดการวัตถุโดยเฉพาะ

นอกจากนี้ เอกสารประกอบสำหรับ CreateFile2 ระบุว่าในแอป Metro ฟังก์ชันนี้สามารถเปิดได้เฉพาะไฟล์และไดเร็กทอรีเท่านั้น (และไม่ใช่สิ่งต่างๆ เช่น ไปป์ เมลสล็อต คอนโซล ฯลฯ)

ดูเพิ่มเติมที่ โพสต์นี้บน social.msdn

เว้นแต่ฉันจะพลาดบางสิ่งบางอย่างฉันไม่คิดว่ามันเป็นไปได้

person antiduh    schedule 02.07.2014
comment
โอเค ฉันคิดว่าตอนนี้ยังทำแบบนั้นไม่ได้... หวังว่าจะมีการเปลี่ยนแปลงในอนาคต ขอบคุณ - person MobileCushion; 03.07.2014
comment
@MobileCushion - น่าเสียดายที่ฉันไม่คิดว่านี่จะมีกำหนดการเปลี่ยนแปลง โมเดลของ Microsoft ที่มีแอปร้านค้า metro / windows นั้นเป็นโมเดลที่ 'ปลอดภัยกว่า' ที่ถูกจำกัดมากกว่า อาจมีวิธีแก้ไขชั่วคราววิธีหนึ่ง - หากคุณได้รับอนุญาตให้ติดตั้งโปรแกรมเดสก์ท็อปควบคู่ไปกับแอพ Metro ของคุณ คุณสามารถให้โปรแกรมเดสก์ท็อปจัดการการรับส่งข้อมูลไปยังอุปกรณ์ USB จากแอพ Metro ของคุณ แต่ฉันไม่รู้ว่าคุณจะแจกจ่ายมันอย่างไร - person antiduh; 03.07.2014