Default Posted November 13, 2008 Posted November 13, 2008 Is there a way to accurately get the current folder path from an open/save dialog box?At the moment I'm using _GUICtrlComboBox_GetListArray on ComboBox1 and then combining the folder names to get the path. This works really well most of the time, but isn't totally reliable. Usually the combo box doesn't display other folders at the same level as the curent folder, but ocassionally it does and this makes things trickier.Is there an easier way to determine the folder path?
Andreik Posted November 13, 2008 Posted November 13, 2008 Is there a way to accurately get the current folder path from an open/save dialog box?At the moment I'm using _GUICtrlComboBox_GetListArray on ComboBox1 and then combining the folder names to get the path. This works really well most of the time, but isn't totally reliable. Usually the combo box doesn't display other folders at the same level as the curent folder, but ocassionally it does and this makes things trickier.Is there an easier way to determine the folder path?Try FileSelectFolder(), is more easy.
Default Posted November 13, 2008 Author Posted November 13, 2008 (edited) Try FileSelectFolder(), is more easy.Thanks for the reply.Unfortunately FileSelectFolder() simply starts a Browse For Folder dialog box, and doesn't help me get the folder path from an open/save dialog box.EDIT:I've tried to figure out a way of using this:GetCurrentDirectory Functionhttp://msdn.microsoft.com/en-us/library/aa364934(VS.85).aspx.. but I haven't been very succesful. Any help would be appreciated. Edited November 13, 2008 by Default
Malkey Posted November 14, 2008 Posted November 14, 2008 Thanks for the reply. Unfortunately FileSelectFolder() simply starts a Browse For Folder dialog box, and doesn't help me get the folder path from an open/save dialog box. EDIT: I've tried to figure out a way of using this: GetCurrentDirectory Function http://msdn.microsoft.com/en-us/library/aa364934(VS.85).aspx .. but I haven't been very succesful. Any help would be appreciated.You could look at FileOpenDialog() and FileSaveDialog() functions as a possibility. ; From press F1 - Help - in Scite ; FileOpenDialog ( "title", "init dir", "filter" [, options [, "default name" [, hwnd]]] ) $var = FileOpenDialog ("Open Something", @WindowsDir & "\", "Images (*.jpg;*.bmp)", 1 + 4 ) MsgBox(0,"",$var) ;$variable = FileSaveDialog ( "title", "init dir", "filter" [, options [, "default name" [, hwnd]]] )
MrCreatoR Posted November 14, 2008 Posted November 14, 2008 Afair, he needs to read the current path from such dialog in other application. I've tried to figure out a way of using this: GetCurrentDirectory Function http://msdn.microsoft.com/en-us/library/aa364934(VS.85).aspx .. but I haven't been very succesful. Any help would be appreciated.I think it's will not help you, it is the same as @WorkingDir macro... FileChangeDir(@ProgramFilesDir) ConsoleWrite(_GetWorkingDir() & @CRLF) FileChangeDir(@ScriptDir) ConsoleWrite(_GetWorkingDir() & @CRLF) Func _GetWorkingDir() Local $stCurDir = DllStructCreate("char[256]") DllCall("Kernel32.dll", "int", "GetCurrentDirectoryA", "dword", 256, "ptr", DllStructGetPtr($stCurDir)) If @error Then Return SetError(1, 0, "") Return DllStructGetData($stCurDir, 1) EndFunc Spoiler Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1 AutoIt Russian Community My Work... Spoiler Projects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize ProgramUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF Examples: ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating ) * === My topics === * ================================================== ================================================== AutoIt is simple, subtle, elegant. © AutoIt Team
Default Posted November 14, 2008 Author Posted November 14, 2008 Afair, he needs to read the current path from such dialog in other application. I think it's will not help you, it is the same as @WorkingDir macro... FileChangeDir(@ProgramFilesDir) ConsoleWrite(_GetWorkingDir() & @CRLF) FileChangeDir(@ScriptDir) ConsoleWrite(_GetWorkingDir() & @CRLF) Func _GetWorkingDir() Local $stCurDir = DllStructCreate("char[256]") DllCall("Kernel32.dll", "int", "GetCurrentDirectoryA", "dword", 256, "ptr", DllStructGetPtr($stCurDir)) If @error Then Return SetError(1, 0, "") Return DllStructGetData($stCurDir, 1) EndFunc Thanks for the info. Is there something similar to GetCurrentDirectory that I can use to get the working directory from another program or process? I notice that Process Explorer from Sysinternals lists the "Current Directory" of programs and this reflects the open/save folder path. So presumably there is a way...
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