2009-07-23 7 views
7

मैं वास्तव में जिस तरह से SysInternals उपयोगिताओं (जैसे प्रोसेस एक्सप्लोरर) 64 बिट संगतता संभाल की तरह। ऐसा लगता है कि 32 बिट निष्पादन योग्य में 64 बिट संस्करण एम्बेडेड है, और यदि आवश्यक हो तो इसे निकालता है।किसी भी उपकरण 32bit/64bit निष्पादनयोग्य एक साथ पैकिंग के लिए उपलब्ध?

मैं एक उपकरण है जो इस को स्वचालित चाहते हैं - अर्थात 32bit और 64bit निष्पादनयोग्य लेता है, उन्हें एक साथ किसी भी तरह पैक, और जो करने के लिए मंच अपने पर चलने जाता अनुसार सही निष्पादन शुरू करने के लिए ठूंठ कोड सम्मिलित करता है।

इससे पहले कि मैं अपने खुद के रोल करने शुरू करते हैं, किसी को भी इस जो पहले से मौजूद है की तरह कुछ के बारे में पता है?

+0

कोई भी पैकिंग टूल की पहचान करने में सक्षम नहीं है जो ऐसा करेगा, इसलिए मैंने उस उत्तर को स्वीकार कर लिया है जिसे मैंने सबसे उपयोगी पाया है। – snowcrash09

उत्तर

2

मार्क SysInternals प्रसिद्धि के Russinovich उनकी विधि here वर्णन करता है। वे x86 छवि में x64 छवि एम्बेड करते हैं। दुर्भाग्यवश ब्लॉग पोस्ट के ऊपर वास्तव में बहुत अधिक जानकारी नहीं है लेकिन उल्लेख है कि उनकी तकनीक here पर एक पुराने लेख पर आधारित है।

4
+0

परेशान - कि पोस्ट नहीं मिला जब मैं खोज की। फिर भी, यह वास्तव में मेरे प्रश्न का उत्तर नहीं देता - इसे स्पष्ट करने के लिए मेरे शीर्षक को संशोधित करता है। – snowcrash09

2

नहीं एक उपकरण पहले से ही कवर किया गया है (हालांकि यह विस्तार पर काफी उथले है) दिखाई देता है, लेकिन यह के रूप में एक कुलपति ++ प्रोजेक्ट में आपके निष्पादनयोग्य एम्बेड करने के लिए काफी आसान लगता है संसाधन, और ओएस पर्यावरण की जांच के बाद सही एक चलाते हैं।

32 या 64 बिट का पता लगाने के लिए IsWow64Process फ़ंक्शन का उपयोग करें, और यहां निष्पादन योग्य एम्बेड करने के तरीके पर स्रोत कोड सहित एक अच्छा लेखन है: http://www.codeproject.com/KB/winsdk/binaryresources.aspx

2

हालांकि यह संभव है, मैं इसे उन आवेदनों की सबसे (जैसे प्रोसेस एक्सप्लोरर) के बाद से एक बुरा व्यवहार करने पर विचार करेंगे निर्देशिका काम करने में है कि फ़ाइल निकालने। यदि आप प्रोग्राम "प्रोग्राम फ़ाइलें" फ़ोल्डर में रखना चाहते हैं, तो उस निर्देशिका के साथ केवल उस पठन के साथ संघर्ष होता है।

मेरे लिए यह दो प्रोग्राम अलग होने और शॉर्टकट को केवल x86 फ़ाइल में रखना आसान लगता है। यदि वह संस्करण 64-बिट्स का पता लगाता है, तो इसे केवल x64 फ़ाइल लॉन्च करने की आवश्यकता है।

यदि आपके पास उन दोनों को गठबंधन करने के लिए वास्तव में अच्छा कारण है, तो संसाधनों को सही मार्ग की तरह लगता है।

0

Here is a guideAutoIT स्क्रिप्ट को संकलित करने के लिए जो नौकरी करता है, हालांकि आपके पास कोई नियंत्रण नहीं है कि पैकिंग & स्टब लॉन्चर कैसे काम करता है।

मैं यहाँ AutoIt स्क्रिप्ट पुन: पेश करेंगे मामले में कड़ी गायब हो जाता है:

; Check if we’re on 64-bit OS… 
If EnvGet(“PROCESSOR_ARCHITEW6432″)=”” Then 
    ; No we’re not – run x86 version… 
    FileInstall(“D:\Support\ETrustCheck_x86.exe”,@TempDir & “\ETrustCheck_x86.exe”) 
    RunWait(“D:\Support\ETrustCheck_x86.exe”,@TempDir & “\ETrustCheck_x86.exe”) 
    FileDelete(@TempDir & “\ETrustCheck_x86.exe”) 
Else 
    ; Yes we are – run x64 version.. 
    FileInstall(“D:\Support\ETrustCheck_x64.exe”,@TempDir & “\ETrustCheck_x64.exe”) 
    RunWait(“D:\Support\ETrustCheck_x86.exe”,@TempDir & “\ETrustCheck_x64.exe”) 
    FileDelete(@TempDir & “\ETrustCheck_x64.exe”) 
EndIf 

; The END 

यह स्क्रिप्ट अपने दो निष्पादनयोग्य यह में पैक के साथ 32 बिट लांचर में AutoIt में स्क्रिप्ट संपादक लपेटा जा सकता है।

संबंधित मुद्दे