ฉันจะเปลี่ยนกล่องโต้ตอบ“ เรียกดูโฟลเดอร์” ทั่วโลกได้หรือไม่?


15

เท่าที่ฉันรู้ทุกคนเกลียดกล่องโต้ตอบ "เรียกดูโฟลเดอร์":

เรียกดูกล่องโต้ตอบโฟลเดอร์

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

ตอนนี้เพื่อความเป็นธรรมปัญหาบางอย่างน่าจะเกี่ยวกับวิธีที่แอพพลิเคชั่นเรียกใช้ตัวควบคุม - ไม่ตั้งค่าขนาดหรือไดเรกทอรีเริ่มต้น ฯลฯ แต่ปัญหาเกี่ยวกับการควบคุมโครงสร้างที่น่าเบื่อยังคงอยู่

มีวิธีใดในการปรับแต่งการติดตั้ง Windows ของคุณเพื่อใช้การควบคุมที่แตกต่างกัน? โดยเฉพาะอย่างยิ่งแอป / ตัวติดตั้งที่ทำเพื่อคุณอย่างปลอดภัย แต่การลดลงใน DLL ที่เข้ากันได้หรือเทคนิคที่คล้ายกันก็ไม่เป็นไรเช่นกัน

หรือเราติดอยู่กับการควบคุมที่น่ากลัวนี้ตลอดกาล?


ข้อร้องเรียนส่วนใหญ่ที่คุณมีคือตัวเลือกที่ควบคุมโดยซอฟต์แวร์ที่ใช้งาน คุณจะต้องแทนที่เชลล์ทั้งหมดเพื่อเปลี่ยน
Ramhound

1
มันเป็นข้อแก้ตัวที่ไม่ดีสำหรับส่วนต่อประสานผู้ใช้
aliteralmind

2
UX ที่น่ากลัวนี้ทำให้ฉันรำคาญทุกครั้ง
Ryan

คำตอบ:


1

คำตอบสั้น ๆ ใช่คุณติดอยู่กับมัน

คำตอบยาว:

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

นี่คือเอกสารสำหรับฟังก์ชั่น: http://msdn.microsoft.com/en-us/library/windows/desktop/bb762115%28v=vs.85%29.aspx

หากคุณต้องการเปลี่ยนภายในโปรแกรมที่คุณกำลังเขียนให้ค้นหาเฉพาะของ langague / แพลตฟอร์มของคุณเพื่อค้นหาบทเรียน (พวกเขามากมาย)


2
เพิ่งถามว่ามีรุ่นของกล่องโต้ตอบที่ใช้งานได้มากกว่าเล็กน้อยเพราะอย่างน้อยช่วยให้คุณสามารถคัดลอก / วางเส้นทาง นั่นคือไดอะล็อกที่กำหนดเองหรืออาจเป็น SHBrowseForFolder () ที่มี params บางตัวหรือมีฟังก์ชั่นแยกต่างหากหรือไม่?
Karan

@Karan จากสิ่งที่ฉันเห็นในเอกสารถ้าคุณตั้งค่าพารามิเตอร์ lpbi ฟังก์ชันให้ชี้ไปที่ที่อยู่ของอินสแตนซ์ของ BROWSEINFO ที่ตั้งค่า UFLAGS เป็น 0x00000010 กล่องแก้ไขจะปรากฏขึ้น น่าเสียดายเนื่องจากพารามิเตอร์เป็นเพียงนักพัฒนาเท่านั้นที่มีตัวเลือกที่จะแสดงหรือไม่ใช้แอปตามแอป
Frank Thomas

ขอขอบคุณและใช่ต้องตั้งค่าสถานะ BIF_EDITBOX "เฉพาะนักพัฒนาเท่านั้นที่มีตัวเลือกให้แสดงหรือไม่" - แต่แน่นอน ฉันไม่ได้หมายความว่านี่เป็นสิ่งที่ผู้ใช้สามารถหวังที่จะทำกับไบนารี
Karan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.