मैंने जावा प्रोजेक्ट के लिए एनएसआईएस स्क्रिप्ट लिखी है। मेरे पास प्रोजेक्ट में बैच फ़ाइल है। मैंने आमतौर पर विंडोज 32 बिट और 64 बिट के लिए बैच फ़ाइल लिखी है। स्थापित करने के बाद मैंने एक्सेक कमांड का उपयोग करके स्वचालित रूप से बैच फ़ाइल शुरू कर दी है। यह ठीक है 32 बिट विंडोज़। लेकिन साथ ही यह 64 बिट में अच्छी तरह से काम नहीं किया गया है। इसलिए मुझे संदेह है कि इंस्टॉल करने से पहले मुझे यह जांचना चाहिए कि विंडोज 32 बिट या 64 बिट संस्करण है या नहीं। कृपया अपने विचारों को कैसे जांचें?एनएसआईएस स्क्रिप्ट का उपयोग कर विंडोज 32 बिट या 64 बिट का पता लगाने के लिए कैसे?
उत्तर
x64.nsh शीर्षक में RunningX64 मैक्रो का उपयोग करें:
!include LogicLib.nsh
!include x64.nsh
Section
${If} ${RunningX64}
DetailPrint "64-bit Windows"
${Else}
DetailPrint "32-bit Windows"
${EndIf}
SectionEnd
धन्यवाद। उस यूआरएल में कहा; कुछ डीएल # फाइल को सी: \ विंडोज \ System32 पर फ़ाइल करें। some.dll क्या है? किस फाइल का मतलब है? मैं – Ami
समझने में सक्षम नहीं था, यह केवल कुछ उदाहरण कोड है, {if} लाइन महत्वपूर्ण हिस्सा है ... – Anders
ओह धन्यवाद। यह {अगर} भाग मैं अपनी स्क्रिप्ट में कहां डालूं? .oninit()? या कुछ और जगह? – Ami
भविष्य आलसी Googler के लिए - एक छोटा-सा स्निपेट:
इस को शामिल करें:
!include x64.nsh
और इस का उपयोग करते हैं:
${If} ${RunningX64}
# 64 bit code
${Else}
# 32 bit code
${EndIf}
क्या यह सभी 64-बिट आर्किटेक्चर या सिर्फ विंडोज एक्सपी x64 का पता लगाता है? –
मुझे एक निश्चित उत्तर नहीं मिला, मैंने हमेशा यह माना कि यह करता है! मैंने इसे विंडोज 7 64 बिट और विंडोज एक्सपी 64 बिट पर परीक्षण किया है और यह काम करता है। मुझे किसी भी विंडोज प्लेटफार्म – Nitay
पर इसके साथ कभी भी कोई परेशानी नहीं थी यह विंडोज के सभी 64-बिट संस्करणों पर लागू होता है। (यह आंतरिक रूप से IsWow64Process कहते हैं) – Anders
यहाँ है कि मैं क्या x64.nsh
Var Bit
System::Call "kernel32::GetCurrentProcess()i.s"
System::Call "kernel32::IsWow64Process(is,*i.r0)"
StrCmpS $0 0 +3
StrCpy $Bit 64
Goto +2
StrCpy $Bit 32
अब $ बिट रखती है की आवश्यकता के बिना समय के सबसे अधिक उपयोग करते हैं, या तो 64 या 32 जो इस तरह इस्तेमाल किया जा सकता:
${If} $Bit == 64
...64-bit code..
${Else}
..32-bit code...
${EndIf}
या
StrCmpS $Bit 64 SixtyFour ThirtyTwo
SixtyFour:
...
Goto End
ThirtyTwo:
...
End:
मैंने StrCmpS
का उपयोग किया क्योंकि मुझे लगता है कि यह एक बाल तेज है। जबरदस्त हंसी। उम्मीद है की यह मदद करेगा! =)
- 1. 64 बिट बनाम विंडोज फोन विकास के लिए 32 बिट
- 2. जेडीके 64 बिट या 32 बिट?
- 3. 64-बिट बनाम 32-बिट विंडोज
- 4. 64-बिट डीएल का आकार 32-बिट
- 5. 32-बिट या 64-बिट एप्लिकेशन?
- 6. पाइथन 64 बिट या 32 बिट
- 7. 64 बिट या 32 बिट ओएस
- 8. मशीन का आकार 64 या 32 बिट
- 9. 32 बिट या 64 बिट एंड्रॉइड एसडीके?
- 10. 32 बिट बनाम 64 बिट
- 11. क्या 64 बिट एनएसआईएस के लिए 64 बिट प्रोग्राम लॉन्च करना संभव है?
- 12. 64-बिट सी ++ प्रोग्राम में 32-बिट लाइब्रेरी का उपयोग
- 13. 64-बिट विंडोज
- 14. 64-बिट पायथन 32-बिट विंडोज एक्जिक्यूटिव बना सकते हैं
- 15. 32 बिट int * 32 बिट int = 64 बिट int?
- 16. 32-बनाम 64-बिट
- 17. पता लगाने के लिए कैसे है कि किसी भी पीई फ़ाइल (exe या dll) 64 बिट या 32 बिट
- 18. 32-बिट और 64-बिट पी/मिक्सिंग
- 19. 64 बिट वीसी ++ प्रोग्राम 32 बिट मोड
- 20. 32 बिट COM DLL को 64 बिट विंडोज 7
- 21. वाईएक्स: 64-बिट विंडोज
- 22. 64-बिट विंडोज असेंबलर
- 23. , .net आवेदन 32 बिट 64 बिट
- 24. विंडोज 64-बिट रजिस्ट्री बनाम। 32-बिट रजिस्ट्री
- 25. 32 बिट डीएल को 64 बिट डीएल
- 26. क्या मैं 64 बिट पायथन में 32 बिट डीएल या एक्सई का उपयोग कर सकता हूं?
- 27. विंडोज 64 बिट
- 28. क्यों 32 बिट ड्राइवर 64 बिट
- 29. 32 बिट और 64 बिट विंडोज़
- 30. 32 बिट और 64 बिट अप्रबंधित DLL
डुप्लिकेट प्रश्न के रूप में नहीं कहा जाता है, लेकिन यह वही है: [उपयोग-एक-एनएसआईएस-इंस्टॉलर-टू-इंस्टाल -32-बिट-बाइनरी-ऑन -32-बिट-ओएस-एंड -64-बिट- बिनारी] (http://stackoverflow.com/questions/11126629/use-one-nsis-installer-to-install-32-bit-binaries-on-32-bit-os-and-64-bit-binari) – nawfal