มีการ จำกัด ขนาดของข้อมูลที่สามารถคัดลอกไปยังคลิปบอร์ดได้หรือไม่? ฉันใช้ VB6 และจำเป็นต้องคัดลอกบล็อคข้อมูลไปยังคลิปบอร์ด
มีการ จำกัด ขนาดของข้อมูลที่สามารถคัดลอกไปยังคลิปบอร์ดได้หรือไม่? ฉันใช้ VB6 และจำเป็นต้องคัดลอกบล็อคข้อมูลไปยังคลิปบอร์ด
คำตอบ:
ในการเพิ่มบางสิ่งลงในคลิปบอร์ดคุณต้องจัดสรรหน่วยความจำสำหรับข้อมูลก่อนจากนั้นส่งต่อหมายเลขอ้างอิงของบล็อกหน่วยความจำนี้ไปยังคลิปบอร์ด เนื่องจากแอปพลิเคชัน WIN32 ถูก จำกัด ไว้ที่หน่วยความจำ 2 GB จำนวนหน่วยความจำที่คุณสามารถจัดสรรได้จะเกี่ยวข้องกับขนาดของ RAM ที่ยังคงมีอยู่ในแอปพลิเคชันของคุณ ด้วยพารามิเตอร์เพิ่มเติม / 3GB ใน boot.ini คุณสามารถทำให้จำนวนนี้ใหญ่ขึ้นอีกหน่อย และหากระบบของคุณมี RAM น้อยกว่า 2 GB การเพิ่มขนาดของไฟล์ swap จะช่วยให้ส่งได้มากถึง 2 GB แน่นอนว่าแอปพลิเคชันไคลเอนต์ยังต้องสามารถใช้ข้อมูลนี้ได้ การพยายามที่จะใช้ข้อมูล 1500 MB ในกระบวนการที่มีเพียง 600 MB จะไม่สามารถใช้งานได้
แต่ถ้าคุณต้องการส่งข้อมูลขนาดใหญ่อย่างแท้จริงให้ใช้ไฟล์ชั่วคราวแทน! เคล็ดลับอย่างหนึ่งคือการใช้ส่วนต่อประสาน COM สร้างคลาส COM ของคุณเองก่อนซึ่งจำเป็นต้องล้อมรอบข้อมูลโดยที่ข้อมูลควรเป็นแบบไฟล์ จากนั้นสร้างไฟล์ชั่วคราวและเพิ่มข้อมูลของคุณลงในไฟล์นี้ สร้างวัตถุ COM ซึ่งเชื่อมโยงไปยังไฟล์ชั่วคราวนี้และส่งวัตถุ COM ไปยังลูกค้า ไคลเอนต์จำเป็นต้องสามารถจัดการวัตถุ COM ด้วย แต่สามารถใช้เพื่อแยกข้อมูลจากอีกครั้ง ในทางทฤษฎีจะช่วยให้คุณมีพื้นที่หน่วยความจำไม่ จำกัด ข้อเสีย: คุณต้องเขียนคลาส COM และรู้ว่าคุณกำลังทำอะไรอยู่
หรือใช้เทคนิคอื่นเพื่อส่งข้อมูล ไปป์ที่มีชื่อ, mailslots, TCP / IP ... มีหลายเทคนิคระหว่างกระบวนการทางเลือกในการส่งข้อมูลระหว่างสองแอปพลิเคชัน
เนื่องจากคุณใช้ VB6 ฉันจะไม่เริ่มตัวเลือก. NET หรือ WIN64
ขึ้นอยู่กับปริมาณของหน่วยความจำในระบบ
ข้อมูลส่วนใหญ่จะถูกคัดลอกเป็นข้อมูลอ้างอิงแทนที่จะเป็นข้อมูลเองเพื่อให้คุณสามารถคัดลอกทุกขนาดได้ทุกขนาด แม้ว่าข้อความจะถูกคัดลอกและจากสิ่งที่ฉันรู้ว่าจำนวนข้อมูลถูก จำกัด ว่า ram มีประโยชน์มากน้อยเพียงใด จำไว้ว่าถ้า vb6 สามารถจัดการได้ฉันแน่ใจว่าคลิปบอร์ดสามารถจัดการได้