Jump to content

Search the Community

Showing results for tags 'fileopendialog'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Announcements and Site News
    • Administration
  • AutoIt v3
    • AutoIt Help and Support
    • AutoIt Technical Discussion
    • AutoIt Example Scripts
  • Scripting and Development
    • Developer General Discussion
    • Language Specific Discussion
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Categories

  • AutoIt Team
    • Beta
    • MVP
  • AutoIt
    • Automation
    • Databases and web connections
    • Data compression
    • Encryption and hash
    • Games
    • GUI Additions
    • Hardware
    • Information gathering
    • Internet protocol suite
    • Maths
    • Media
    • PDF
    • Security
    • Social Media and other Website API
    • Windows
  • Scripting and Development
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Member Title


Location


WWW


Interests

Found 10 results

  1. prologue On the occasion of @TheDcoder post (I wonder if someone can port it to AutoIt ) and because in the past I already had something similar (Active_SaveFileDlg), ( in which I remember making an effort so that it wouldn't catch windows other than Scite's) So I took it as a challenge. Of course, since I don't know much, I skipped the extras and stuck to the basics A brief description While the script is running in the background when you display the SaveFileDlg or OpenFileDlg window, display a button-icon in the center of the window title. Click it brings up a list of some favorite path plus the paths from all open folders. by selecting one of them, WindowDlg goes to the selected path. Covers almost everything modern SaveFileDlg & OpenFileDlg & SaveFolderDlg & OpenFolderDlg and a series of old-style dialogs like Koda, Crimson Editor, IrfanView, etc Active_FileDlg.au3 #NoTrayIcon ; https://www.autoitscript.com/forum/topic/212478-active_filedlg ;---------------------------------------------------------------------------------------- ; Title...........: Active_FileDlg.au3 ; Description.....: Add All open folder & some extra as contex menu in SaveFileDlg & OpenFileDlg ; AutoIt Version..: 3.3.16.1 Author: ioa747 ;---------------------------------------------------------------------------------------- #AutoIt3Wrapper_Res_Description=Add All open folder & some extra as contex menu in SaveFileDlg & OpenFileDlg #AutoIt3Wrapper_Res_ProductName=Active_FileDlg.au3 #AutoIt3Wrapper_Icon=shell32-68.ico #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7 #AutoIt3Wrapper_Res_Fileversion=0.0.0.5 ;~ #AutoIt3Wrapper_UseX64=y #include <WindowsConstants.au3> #include <ButtonConstants.au3> #include <WinAPISysWin.au3> #include <Misc.au3> #include <GuiTreeView.au3> #include <Array.au3> ; Favorites folder Global $aFavFolder[4] $aFavFolder[0] = 3 $aFavFolder[1] = @DesktopDir ; * <--------- Fav1 folder (get one of your own) $aFavFolder[2] = @MyDocumentsDir ; * <--------- Fav2 folder (get one of your own) $aFavFolder[3] = @UserProfileDir ; * <--------- Fav3 folder (get one of your own) _CmdLineWatcher() While 1 _main() Sleep(500) WEnd Exit ;-------------------------------------------------------------------------------------------------------------------------------- Func _main() If WinActive("[CLASS:#32770]") Then Local $hWnd = WinGetHandle("[ACTIVE]") ; checck if gui all redy exist for this Dlg If WinExists("GUI-" & $hWnd) Then Return Local $Executable = @Compiled ? '"' & @ScriptFullPath & '"' : '"' & @AutoItExe & '" "' & @ScriptFullPath & '"' ;specify FileDlg criteria _AddressBarPath($hWnd) If @error Then ; alternative methods ; ### [2] _AltName() Local $sText = WinGetText($hWnd) If StringInStr($sText, "File &name") Then ; FoldersGUI($hWnd, 2) Run($Executable & ' FoldersGUI ' & $hWnd & ' 2') WinWaitActive("GUI-" & $hWnd, "", 5) EndIf ; ### [3] _BrowseForFolder() $sText = WinGetText($hWnd) If StringInStr($sText, "Select a directory") Then ; FoldersGUI($hWnd, 3) Run($Executable & ' FoldersGUI ' & $hWnd & ' 3') WinWaitActive("GUI-" & $hWnd, "", 5) EndIf Else ; ### [1] _AddressBarPath() ; FoldersGUI($hWnd, 1) Run($Executable & ' FoldersGUI ' & $hWnd & ' 1') WinWaitActive("GUI-" & $hWnd, "", 5) EndIf EndIf EndFunc ;==>_main ;---------------------------------------------------------------------------------------- Func FoldersGUI($hWnd, $iFlag) ; $iFlag: 1=_AddressBarPath, 2=_AltName, 3=_BrowseForFolder ; if parameter coming from cmdline as text If Not IsHWnd($hWnd) Then $hWnd = HWnd($hWnd) If Not IsInt($iFlag) Then $iFlag = Int($iFlag) Local $hGUI = GUICreate("GUI-" & $hWnd, 24, 24, -50, -50, $WS_POPUP, BitOR($WS_EX_TOOLWINDOW, $WS_EX_NOACTIVATE), $hWnd) Local $idDummy = GUICtrlCreateDummy() Local $idButton = GUICtrlCreateButton("contex button", 0, 0, 24, 24, $BS_ICON) GUICtrlSetImage(-1, "shell32.dll", -68) Local $idContext = GUICtrlCreateContextMenu($idButton) Local $OpenFolders = _EnumAllOpenFolder() ;If not open folder, just add fav If $OpenFolders[0][0] = 0 Then ReDim $OpenFolders[UBound($OpenFolders) + 1][2] Else _ArrayInsert($OpenFolders, 1, "0|") ; separator EndIf ; Add Fav folder (the numbers on the front don't matter) For $i = 1 To $aFavFolder[0] _ArrayInsert($OpenFolders, 1, $i & "|" & $aFavFolder[$i]) Next $OpenFolders[0][0] = UBound($OpenFolders) - 1 ;_ArrayDisplay($OpenFolders) ; Create Context Menu For $i = 1 To $OpenFolders[0][0] GUICtrlCreateMenuItem($OpenFolders[$i][1], $idContext) Next Local $Wpos = WinGetPos($hWnd) WinMove($hGUI, "", $Wpos[0] + $Wpos[2] * 0.5, $Wpos[1] + 3) Sleep(50) GUISetState(@SW_SHOWNOACTIVATE, $hGUI) WinActivate($hWnd) Local $MsgId While WinExists($hWnd) $Wpos = WinGetPos($hWnd) WinMove($hGUI, "", $Wpos[0] + $Wpos[2] * 0.5, $Wpos[1] + 3) $MsgId = GUIGetMsg() Switch $MsgId Case 6 To $OpenFolders[0][0] + 6 Switch $iFlag Case 1 _AddressBarPath($hWnd, $OpenFolders[$MsgId - 5][1]) Case 2 _AltName($hWnd, $OpenFolders[$MsgId - 5][1]) Case 3 _BrowseForFolder($hWnd, $OpenFolders[$MsgId - 5][1]) EndSwitch Case $idButton GUICtrlSendToDummy($idDummy) Case $idDummy MouseClick("right") EndSwitch WEnd GUIDelete($hGUI) Exit EndFunc ;==>FoldersGUI ;---------------------------------------------------------------------------------------- Func _EnumAllOpenFolder() ; enumerating all open folders Local $oShell = ObjCreate("Shell.Application") Local $sPath, $index = 0 Local $aArray[$oShell.Windows.Count + 1][2] = [["hWnd", "Path"]] For $oWin In $oShell.Windows $index += 1 $aArray[0][0] = $index $sPath = StringTrimLeft($oWin.LocationURL, 8) ; trim 'file:///' $sPath = StringReplace($sPath, "/", "\") $sPath = _UnicodeURLDecode($sPath) $aArray[$index][0] = HWnd($oWin.HWND) $aArray[$index][1] = $sPath Next Return $aArray EndFunc ;==>_EnumAllOpenFolder ;---------------------------------------------------------------------------------------- Func _UnicodeURLDecode($toDecode) Local $strChar = "", $iOne, $iTwo Local $aryHex = StringSplit($toDecode, "") For $i = 1 To $aryHex[0] If $aryHex[$i] = "%" Then $i = $i + 1 $iOne = $aryHex[$i] $i = $i + 1 $iTwo = $aryHex[$i] $strChar = $strChar & Chr(Dec($iOne & $iTwo)) Else $strChar = $strChar & $aryHex[$i] EndIf Next Local $Process = StringToBinary($strChar) Local $DecodedString = BinaryToString($Process, 4) Return $DecodedString EndFunc ;==>_UnicodeURLDecode ;---------------------------------------------------------------------------------------- Func _AddressBarPath($hWnd, $sNewBarPath = "") WinActivate($hWnd) For $i = 1 To 10 Local $hCtrl = ControlGetHandle($hWnd, "", "ToolbarWindow32" & $i) If @error Then ExitLoop Local $sControlText = ControlGetText($hWnd, "", $hCtrl) If StringLeft($sControlText, 9) = "Address: " Then Local $aTextPart = StringSplit($sControlText, ": ", 1) If $aTextPart[0] = 2 Then ; Get AddressBarPath If $sNewBarPath == "" Then Return $aTextPart[2] Else ; Set AddressBarPath ControlCommand($hWnd, "", $hCtrl, "SendCommandID", 1280) Local $sCtrlNN = ControlGetFocus($hWnd) Local $hCtrlHnd = ControlGetHandle($hWnd, "", $sCtrlNN) ControlSetText($hWnd, "", $hCtrlHnd, $sNewBarPath) ControlSend($hWnd, "", $hCtrlHnd, "{ENTER}") Return $sNewBarPath EndIf EndIf EndIf Next ; If Error, return an empty string Return SetError(1, 0, "") EndFunc ;==>_AddressBarPath ;---------------------------------------------------------------------------------------- Func _AltName($hWnd, $sNewBarPath) WinActivate($hWnd) ControlSend($hWnd, "", "", "!n") ; File &name ;File &name: Local $sCtrlNN = ControlGetFocus($hWnd) Local $hCtrlHnd = ControlGetHandle($hWnd, "", $sCtrlNN) ControlSetText($hWnd, "", $hCtrlHnd, $sNewBarPath) ControlSend($hWnd, "", $hCtrlHnd, "{ENTER}") Return $sNewBarPath EndFunc ;==>_AltName ;---------------------------------------------------------------------------------------- Func _BrowseForFolder($hWnd, $sNewBarPath) WinActivate($hWnd) Local $hTView = ControlGetHandle($hWnd, "", "SysTreeView321") Local $aPath = StringSplit($sNewBarPath, "\", 1) ; first find drive (with label) Local $hItemFound = _GUICtrlTreeView_FindItem($hTView, $aPath[1], True) If $hItemFound Then _GUICtrlTreeView_SelectItem($hTView, $hItemFound) Sleep(10) Local $sSPath = $aPath[1] Local $hItemOld = $hItemFound For $i = 2 To $aPath[0] $hItemFound = _GUICtrlTreeView_FindItem($hTView, $aPath[$i], False, $hItemOld) $hItemOld = $hItemFound $sSPath &= "\" & $aPath[$i] If $hItemFound Then _GUICtrlTreeView_SelectItem($hTView, $hItemFound) Sleep(10) Next If $sSPath = $sNewBarPath Then ;ControlSend($hWnd, "", $hTView, "{ENTER}") Return $sNewBarPath EndIf EndFunc ;==>_BrowseForFolder ;---------------------------------------------------------------------------------------- Func _CmdLineWatcher() ; Run('"' & @AutoItExe & '" "' & @ScriptFullPath & '" FoldersGUI ' & $hWnd & ' 1') Local $aArgs = $CmdLine Local $sFunc If $aArgs[0] > 0 Then $sFunc = $aArgs[1] _ArrayDelete($aArgs, 1) $aArgs[0] = "CallArgArray" Call($sFunc, $aArgs) If @error = 0xDEAD And @extended = 0xBEEF Then ToolTip("error !! Function does not exist" & @CRLF & "or wrong number of parameter", Default, Default, @ScriptName, 3) Sleep(4000) ToolTip("") EndIf Exit EndIf EndFunc ;==>_CmdLineWatcher ;---------------------------------------------------------------------------------------- Please, every comment is appreciated! leave your comments and experiences here! Thank you very much
  2. Hello guys, I'm working on this script: Case $BTN Global $URL = FileOpenDialog("IMPORT FILE", $DESKTOP, "ALL FORMAT (*)", 4) $DIR_DEST = "C:\DIR-WORK\list\IMPORT_DOC\" DirCreate($DIR_DEST) Local $LINE For $t = 1 To $URL[0] _FileReadToArray($URL[$t], $LINE) For $u = 1 To $LINE[0] FileCopy($URL[$u], $DIR_DEST) Next Next the selected files via OpenFileDialog must be copied to the folder $DIR_DEST.
  3. I have a problem with FileOpenDialog using long default filenames ... they always get truncated. For example: "A Long FileName.mpg" as a default would prompt as just "FileName.mpg" (but scrolling left will show it named correctly). Does anyone know of a fix for this please (I didn't spot it in a Forum search), or is it one for the bug tracker? #include <FileConstants.au3> #include <MsgBoxConstants.au3> Local Const $sMessage = "Hold down Ctrl or Shift to choose multiple files." Local $sFileOpenDialog = FileOpenDialog($sMessage, @WindowsDir & "\", "Images (*.jpg;*.bmp)|Videos (*.avi;*.mpg)", BitOR($FD_FILEMUSTEXIST, $FD_MULTISELECT), "A Long FileName.mpg") Thanks,
  4. Hello all! I'm stuck at a seemingly simple part of my script. Using IE, I'm filling out a web form that involves clicking a "Browse" button and selecting a file. Once the file explorer dialog opens, however, I am unable to control it. I have a string, which is the name of the file I want, and I'm trying to insert it into the 'File name:' text box in the dialog (which already has focus), but it doesn't get inserted. I've tried ClipPut and Send. What's even more concerning is, when I close the dialog, the string is then pasted into the very next window that has focus, which is often SciTE. It's like that Browse's file open dialog halts all processes. Once it's closed, the script continues. ;~ Open a IE window and navigate to the login page. Global $oIE = _IECreate($urlBBLogin) _IELoadWait($oIE) ;~ Recognize the form on this page (login input boxes). Local $oForm = _IEFormGetObjByName($oIE, "login") Local $oTextLogin = _IEFormElementGetObjByName($oForm, "user_id") Local $oTextPass = _IEFormElementGetObjByName($oForm, "password") ;~ Enter the Automation user credentials into the form. _IEFormElementSetValue($oTextLogin, $bbUsername) _IEFormElementSetValue($oTextPass, $bbPassword) ;~ Click the Login button. _IEFormSubmit($oForm) _IELoadWait($oIE) ;~ Navigate to the feedfile upload page. _IENavigate($oIE, $urlUpload) _IELoadWait($oIE) ;~ Click the Browse button Local $Browse = _IEGetObjById($oIE, "feedFile_chooseLocalFile") _IEAction($Browse, "Click") Local $Browse = WinWait("Choose File to Upload") ;~ Open the file we created. WinActivate($Browse) Send($finalFile) Has anyone else experienced this problem? Any ideas to get around it? Am I approaching this the wrong way? Any support is greatly appreciated. Thank you.
  5. Hi, I'm trying to: -Select a file in a folder (to store it to an ini file) -Write the file on an ini -Copy files to the folder selected by the user instead of using FileOpenDialog then FileSelectFolder, I was wondering if it was possible to do the whole thing only with FileOpenDialog spliting the value returned in 2 variables. I got something like that for the first part (select a file and store it to an ini file) Local $message = "Select your executable" Local $pathk = FileOpenDialog($message, "C:" & "", "Select the executable you want to terminate (*.exe)", 1 + 4) Local $path = "None" ;ici je dois copier les fichiers $split = StringSplit($pathk, "\") $tokill = $split[$split[0]] If @error Then MsgBox(4096, "", "No Executable chosen") Else MsgBox(4096, "", $pathk & " Will be terminated " & @LF & @LF & "Press OK to EXIT ") IniWrite(@ScriptDir & "\path.ini", "Torun", "path", $path) IniWrite(@ScriptDir & "\path.ini", "Tokill", "pathk", $tokill) EndIf As you can see I manage to split the value returned by FileOpenDialog to have only the exe but as a noob I can't manage to get the path to copy the files I need to the same path. Any idea? ^^
  6. Why if I select only one file the array doesn't return the path?? And 4 multiple files return the row PATH? There is a mode to have in the same case signle or multiple selection the path included in the file name? THX #include <Array.au3> #include <File.au3> Local $spFile $mFile = FileOpenDialog("apri", @ScriptDir & "", "Images (*.iso)", 1 + 4 ) If @error Then ConsoleWrite("error") Else $spFile = StringSplit($mFile, "|") EndIf _ArrayDisplay($spFile)
  7. Hi there, There is something weird with FileSaveDialog. It takes approximately 8 seconds on my computer to return after clicking on OK. When compiling this exact code it looks faster but I still have this slow behaviour on another compiled software (LinuxLive USB Creator). $DEBUG_TIMER=TimerInit() $source_file = FileOpenDialog("Please choose an ISO image of LinuxLive CD", "", "ISO / IMG / ZIP (*.iso;*.img;*.zip)", 1,"") ConsoleWrite("It took "&Round(TimerDiff($DEBUG_TIMER)/1000,1)&" seconds to select ISO") Do you know what could cause this ? Thank you for your help PS : I'm still looking for AutoIT devs to help me on LinuxLive USB Creator. If interested, please contact me.
  8. I'm having a strange issue with using FileOpenDialog to select a file. Everything works fine the first time you select a file. But if you change your mind (while the program is still running) and want to select a different file, nothing changes. The program is "stuck" with the first selection you made, and nothing you do will change that selection in the input box. I pulled the function below out of my program, and I had to modify it a bit to make it run on its own. But it's basically the same as the original. To see the problem in action, click on either of the two buttons that say, "Choose other file...". Select any file from the list. Click on the "Open" button. So far, so good. Now, repeat the process again. See? The original file you selected is still listed in the input box. I'm stumped by this one. Thanks in advance. -- Alex Chernavsky in Rochester, NY #include <GUIConstantsEx.au3> #include <ButtonConstants.au3> #include <EditConstants.au3> _ConfirmParametersWithUser("test.txt", "test2.txt", 16, 1000, 3000, "InputFile", "WriteToFile", "Testing") Func _ConfirmParametersWithUser($sInputFileName, $sOutputFileName, $iNumberOfProblems, $iMinTime, $iMaxTime, $sSourceOfProblems, $sOutputType, $sCondition) Local $hSetParametersForm ; Handle to GUI Local $hRadio1 Local $hRadio2 Local $hRadio3 Local $hRadio4 Local $hInputFileName Local $hChooseInputFile Local $hOutputFileName Local $hChooseOutputFile Local $hTrialsPerSession Local $hTime1 Local $hTime2 Local $hCondition Local $hExitButton Local $hHelpButton Local $hContinueButton Local $nMsg Local $sTemp $sInputFileName = @ScriptDir & "\" & $sInputFileName $sOutputFileName = @ScriptDir & "\" & $sOutputFileName $hSetParametersForm = GUICreate("Reaction Time Program: Set Parameters", 580, 578, -1, -1) GUICtrlCreateLabel("Reaction Time Program", 175, 3, 205, 23) GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif") GUICtrlCreateLabel("Based on work by Seth Roberts", 200, 29, 155, 15) GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif") ;GUICtrlSetBkColor(-1, 0xCCFFCC) ; Give it a green background to make it easier to position it (it's a temporary thing to help design the GUI) GUICtrlCreateGroup("Source of arithmetic problems: ", 40, 50, 528, 105) GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif") GUIStartGroup() $hRadio1 = GUICtrlCreateRadio("Use problems included with source code", 64, 80, 257, 17) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") If $sSourceOfProblems = "SourceCode" Then GUICtrlSetState(-1, $GUI_CHECKED) EndIf $hRadio2 = GUICtrlCreateRadio("Read problems from input file: ", 64, 104, 280, 17) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") If $sSourceOfProblems = "InputFile" Then GUICtrlSetState(-1, $GUI_CHECKED) EndIf $hInputFileName = GUICtrlCreateInput($sInputFileName & " ", 81, 124, 380, 20) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") GUICtrlSetState($hInputFileName, $GUI_FOCUS) Send("{end}") ; This line and the one before it are necessary to right-align the text (useful in case of long path names, so that the left part gets cut off, not the right part) $hChooseInputFile = GUICtrlCreateButton("Choose other file...", 465, 121) If $sSourceOfProblems = "InputFile" Then GUICtrlSetState($hChooseInputFile, $GUI_ENABLE) Else GUICtrlSetState($hChooseInputFile, $GUI_DISABLE) EndIf GUICtrlCreateLabel("Number of trials (problems) presented per testing session:", 48, 167, 345, 20) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") $hTrialsPerSession = GUICtrlCreateInput($iNumberOfProblems, 397, 165, 30, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER)) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") GUICtrlCreateGroup("Random delay between trials (in milliseconds): ", 40, 198, 349, 89) GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif") GUICtrlCreateLabel("Minimum delay:", 64, 224, 97, 20) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") GUICtrlCreateLabel("Maximum delay :", 64, 256, 104, 20) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") $hTime1 = GUICtrlCreateInput($iMinTime, 176, 224, 41, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER)) $hTime2 = GUICtrlCreateInput($iMaxTime, 176, 256, 41, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER)) GUICtrlCreateGroup("Upon completion of the testing session: ", 40, 296, 528, 110) GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif") $hRadio3 = GUICtrlCreateRadio("Display summary and append data to output file: ", 64, 325, 422, 17) If $sOutputType = "WriteToFile" Then GUICtrlSetState(-1, $GUI_CHECKED) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") $hOutputFileName = GUICtrlCreateInput($sOutputFileName & " ", 81, 350, 380, 20) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") GUICtrlSetState($hOutputFileName, $GUI_FOCUS) Send("{end}") ; This line and the one before it are necessary to right-align the text (useful in case of long path names, so that the left part gets cut off, not the right part) $hChooseOutputFile = GUICtrlCreateButton("Choose other file...", 465, 347) If $sOutputType = "WriteToFile" Then GUICtrlSetState($hChooseOutputFile, $GUI_ENABLE) Else GUICtrlSetState($hChooseOutputFile, $GUI_DISABLE) EndIf $hRadio4 = GUICtrlCreateRadio("Display summary but do not write data to output file", 64, 379, 320, 17) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") If $sOutputType = "DisplayOnly" Then GUICtrlSetState(-1, $GUI_CHECKED) GUICtrlCreateGroup("Please describe the condition for this test:", 40, 417, 520, 90) GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif") $hCondition = GUICtrlCreateInput("", 54, 447, 500, 20) GUICtrlCreateLabel("Example: ""45 mins. after taking 3 tablespoons of flaxseed oil""", 56, 477, 550, 28) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") $hHelpButton = GUICtrlCreateButton("Help", 272, 534, 75, 25) $hContinueButton = GUICtrlCreateButton("Continue", 382, 534, 75, 25, $BS_DEFPUSHBUTTON) $hExitButton = GUICtrlCreateButton("Exit Program", 488, 534, 75, 25) GUICtrlSetState($hCondition, $GUI_FOCUS) ; Set the focus to the "Condition" input box GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $hRadio1 GUICtrlSetState($hChooseInputFile, $GUI_DISABLE) Case $hRadio2 GUICtrlSetState($hChooseInputFile, $GUI_ENABLE) Case $hRadio3 GUICtrlSetState($hChooseOutputFile, $GUI_ENABLE) Case $hRadio4 GUICtrlSetState($hChooseOutputFile, $GUI_DISABLE) Case $hChooseInputFile $sTemp = FileOpenDialog("Choose input file", @ScriptDir & "\", "All files (*.*)", 1 + 2) If $sTemp Then $sInputFileName = $sTemp $hInputFileName = GUICtrlSetData($hInputFileName, $sInputFileName & " ") EndIf GUICtrlSetState($hCondition, $GUI_FOCUS) ; Return focus to the "Continue" button Case $hChooseOutputFile $sTemp = FileOpenDialog("Choose output file", @ScriptDir & "\", "All files (*.*)", 2 + 8) If $sTemp Then $sOutputFileName = $sTemp $hOutputFileName = GUICtrlSetData($hOutputFileName, $sOutputFileName & " ") EndIf GUICtrlSetState($hCondition, $GUI_FOCUS) ; Return focus to the "Continue" button Case $hHelpButton ShellExecute("http://www.astrocyte-design.com/reaction-time/index.html") Case $hContinueButton ExitLoop Case $hExitButton Exit EndSwitch WEnd If (BitAND(GUICtrlRead($hRadio1), $GUI_CHECKED) = $GUI_CHECKED) Then $sSourceOfProblems = "SourceCode" Else $sSourceOfProblems = "InputFile" EndIf $iNumberOfProblems = GUICtrlRead($hTrialsPerSession) $iMinTime = GUICtrlRead($hTime1) $iMaxTime = GUICtrlRead($hTime2) If (BitAND(GUICtrlRead($hRadio3), $GUI_CHECKED) = $GUI_CHECKED) Then $sOutputType = "WriteToFile" Else $sOutputType = "DisplayOnly" EndIf $sCondition = GUICtrlRead($hCondition) $sCondition = StringReplace($sCondition, ",", "") ; Remove any commas that the user happens to enter (they interfere with the CSV file format) GUIDelete($hSetParametersForm) EndFunc ;==>_ConfirmParametersWithUser
  9. Hi guys i have a question, Can i exclude a extension from FileOpenDialog? Example i want to include all file ( *.*) except txt ( *.txt ) My solution for now is: $Exstension = StringRegExpReplace(@WorkingDir & "Test.txt", "^.*.", "") If $Exstension = "txt" Then MsgBox(0,0,"Error") Return EndIf But i like to make it unselectable in FileOpenDialog like the classic filter, but in an opposite way. Is possible? Thanks
  10. Greetings, wow, it's been a while since i've posted in here (4+ years). it's good to be back and to see that AutoIt is going on strong. Here's the behavior i'm trying to understand. background: I have a specific Autoit application that invokes a fileopendialog. The initdir parameter is set to @scriptdir. When running a single instance of the application, the fileopendialog behaves as expected. The fileopendialog window opens and the folder location is correctly set to the @scriptdir location (of that instance). When running a second or third instance (where the exes themselves are located in a different location), the fileopendialog sets the initdir to one of the first two initdir (aka @scriptdir) locations. this is a little frustating, and im not sure how to control this behavior, since i dont exactly know when and where @scriptdir is technically fetching its information. I've tried assigning the @scriptdir setting to a user defined variable @curfolder in the begining of my script, which works well in scite, but not when compiled. I have several theories (one is that multiple instances somehow share the same variables/PID) but would like to get confirmation on what is driving this behavior. I've also tried using @scriptfullpath. Any help is appreciated. hopefully i've described the situation well enough, let me know if have not.
×
×
  • Create New...