Syed23 Posted August 29, 2011 Share Posted August 29, 2011 hi Friends, For past couple of weeks i am working on a project. That tool is only for Windows 7. But i have to meet the requirement like that should work for both 32 and 64 bit. I have completed most of my project work. But i need small help to make the project more efficient and simple. What i mean is , currently in my project i am using XML files as a reference file in order to the tool work. Now problem is i have 2 XML files. Based on the OS Architecture the correct XML file will be called. Firs the ink let me tell what the XML will contain. The XML file contain the Application details.That means the XML will have the application name and Where the application will be available(like C:\program Files\). Now here the complication is in 32 bit the default installed application location will c:\program files, but in Windows 7 64 bit the default location will be as c:\program files(x86).... for these difference i am maintaing 2 different XML files.Now i am thinking to do it in different way.. Is there a way or help do we have? like if i run the tool....based upon the OS architecture the it should go and check the application in there respective location. For Example, If i run the tool on Windows 7 64 bit then the tool should automatically take application installed default location as "C:\program Files(x86)...How can we do that? Any suggestions appreciated! Thank you,Regards,[font="Garamond"][size="4"]K.Syed Ibrahim.[/size][/font] Link to comment Share on other sites More sharing options...
rcmaehl Posted August 29, 2011 Share Posted August 29, 2011 Use @ProgramFilesDir My UDFs are generally for me. If they aren't updated for a while, it means I'm not using them myself. As soon as I start using them again, they'll get updated.My Projects WhyNotWin11Cisco Finesse, Github, IRC UDF, WindowEx UDF Link to comment Share on other sites More sharing options...
guinness Posted August 29, 2011 Share Posted August 29, 2011 (edited) Look at Environment Variables as @ProgramFilesDir will install to C:\Program Files on Windows 7 x64. EnvGet("PROGRAMFILES(X86)") EnvGet("PROGRAMFILES") Edited August 29, 2011 by guinness UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
Chimaera Posted August 29, 2011 Share Posted August 29, 2011 question if i may ConsoleWrite (EnvGet("PROGRAMFILES") & @CRLF) ConsoleWrite (EnvGet("PROGRAMFILES(X86)") & @CRLF) returns this on win7 enterprise 64 bit C:\Program Files (x86) C:\Program Files (x86)surely the the first one should have used the 32 bit allowed for 32 bit programs? from the helpfile Returns the requested variable (or a blank string if the variable does not exist) And be just? C:\Program Files Or am i misunderstanding If Ive just helped you ... miracles do happen. Chimaera CopyRobo() * Hidden Admin Account Enabler * Software Location From Registry * Find Display Resolution * _ChangeServices() Link to comment Share on other sites More sharing options...
JFX Posted August 29, 2011 Share Posted August 29, 2011 %PROGRAMFILES% will be different if you run the x86 version of Autoit under x64 Windows IF @OSArch = 'x86' Then ConsoleWrite(EnvGet("PROGRAMFILES") & @CRLF) Else ConsoleWrite(EnvGet("ProgramW6432") & @CRLF) ConsoleWrite(EnvGet("PROGRAMFILES(X86)") & @CRLF) EndIf behdadsoft 1 Link to comment Share on other sites More sharing options...
UEZ Posted August 29, 2011 Share Posted August 29, 2011 It depends how you compile your script. When you compile it as x86 and run it on a x64 OS you will get C:\Program Files (x86)But if you compile it as x64 you will get C:\Program Files.#AutoIt3Wrapper_UseX64=n ;change it to y to compile it as x64 (full SciTE package must be installed) MsgBox(0, "Test", @ProgramFilesDir)Br,UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
Chimaera Posted August 29, 2011 Share Posted August 29, 2011 (edited) %PROGRAMFILES% will be different if you run the x86 version of Autoit under x64 Windows IF @OSArch = 'x86' Then ConsoleWrite(EnvGet("PROGRAMFILES") & @CRLF) Else ConsoleWrite(EnvGet("ProgramW6432") & @CRLF) ConsoleWrite(EnvGet("PROGRAMFILES(X86)") & @CRLF) EndIf That returned C:\Program Files C:\Program Files (x86) im sorry im not getting this so the x86 failed because im 64bit 6432 returned program files because?? programfiles x86 obviously exists cause im 64 bit so why does 6432 return program files? Edited August 29, 2011 by Chimaera If Ive just helped you ... miracles do happen. Chimaera CopyRobo() * Hidden Admin Account Enabler * Software Location From Registry * Find Display Resolution * _ChangeServices() Link to comment Share on other sites More sharing options...
JFX Posted August 29, 2011 Share Posted August 29, 2011 (edited) im sorry im not getting this so the x86 failed because im 64bit6432 returned program files because??programfiles x86 obviously exists cause im 64 bitso why does 6432 return program files?The both extra variables ProgramW6432 and ProgramFiles(x86) exist in an x64 Windows,so one can always easily get the programm files folder for 64Bit apps and the one for the 32Bit apps.They point to the correct folder, no madder if you app is a native one or a WoW64 process.The good old ProgramFiles will point the the folder depending on your app: x64 or x86. Edited August 29, 2011 by JFX Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now