MrTheDzam Posted June 17, 2016 Posted June 17, 2016 Hello guys I have an edit, with Drop event, using @GUI_DragFile macro. I check the extension of the input file (just allow txt and ini file), if the extension is not allowed then return an error. But when the error display, the edit have the location of that file. ( Example: I drag the file "Example.au3" at Desktop - which have extension is not allowed - to the Edit, the error display, and the file location "C:\User\MeowMeow\Desktop\Example.au3" string is set for the edit ) How can i eliminate the file location, which is set to edit? Help me <3 (P.s: the edit have some text before, so i can't use GuiCtrlSetData)
l3ill Posted June 17, 2016 Posted June 17, 2016 FileGetShortName My Contributions... SnippetBrowser NewSciTE PathFinder Text File Manipulation FTP Connection Tester / INI File - Read, Write, Save & Load Example
water Posted June 17, 2016 Posted June 17, 2016 FileGetShortName returns the "8.3 short path+name of the path+name passed." I think he is looking for _PathSplit which splits the filepath into drive, dir, filename and extension. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
MrTheDzam Posted June 17, 2016 Author Posted June 17, 2016 (edited) i'm vietnamese, so it's hard to try to describe it out -~- #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include "File.au3" Opt("GUIOnEventMode", 1) #Region ### START Koda GUI section ### Form= Global $Form1 = GUICreate("Form1", 623, 442, 192, 124, -1, BitOR($WS_EX_ACCEPTFILES,$WS_EX_WINDOWEDGE)) GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close") GUISetOnEvent($GUI_EVENT_DROPPED, "DropFile") Global $Edit1 = GUICtrlCreateEdit("", 104, 48, 361, 233) GUICtrlSetState(-1, $GUI_DROPACCEPTED) GUICtrlSetData(-1, "") GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 Sleep(100) WEnd Func DropFile() Local $Dir = "", $Drive = "", $Name = "", $Extension = "" $Source = _PathSplit(@GUI_DragFile, $Drive, $Dir, $Name, $Extension) If $Source[4] <> ".txt" And $Source[4] <> ".ini" Then MsgBox(16 + 262144, "Message", "File not allowed!") Else GUICtrlSetData($Edit1, FileRead(@GUI_DragFile)) EndIf EndFunc Func Form1Close() Exit EndFunc Example: i drag one .txt or .ini file to the GUI, which support Drag and drop. Then i drag one .au3 file to it. The error display and the problem is the location of the au3 file is printed under the content of txt (ini) file. Thanks <3 Edited June 17, 2016 by MrTheDzam code edit
water Posted June 17, 2016 Posted June 17, 2016 Your edit field now has two tasks. Accept the dragged filepath and display the content. I would split this tasks. Create a small input field where the users can drag the filepath to. If .txt or .ini then display the file content in a second edit control. For anything else display the error message and clear the input field. So content and filepath no longer mix in a single control. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
MrTheDzam Posted June 17, 2016 Author Posted June 17, 2016 well, i'm developing a program like notepad, and i need space for user type in, so i don't think creating a new label is helpful in this situation anyone have any other idea?
water Posted June 17, 2016 Posted June 17, 2016 (edited) I'm talking about something like this: You need to d&d the file to the input field. If it is a valid file then the content is displayed in the edit field. Advantage: You always see the filepath of the file you are currently processing. #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include "File.au3" Opt("GUIOnEventMode", 1) Global $sActiveFile = "" #Region ### START Koda GUI section ### Form= Global $Form1 = GUICreate("Form1", 623, 442, 192, 124, -1, BitOR($WS_EX_ACCEPTFILES,$WS_EX_WINDOWEDGE)) GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close") GUISetOnEvent($GUI_EVENT_DROPPED, "DropFile") Global $idInput1 = GUICtrlCreateInput("", 104, 20, 361, 20) GUICtrlSetState(-1, $GUI_DROPACCEPTED) Global $Edit1 = GUICtrlCreateEdit("", 104, 48, 361, 233) GUICtrlSetData(-1, "") GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 Sleep(100) WEnd Func DropFile() Local $Dir = "", $Drive = "", $Name = "", $Extension = "" $Source = _PathSplit(@GUI_DragFile, $Drive, $Dir, $Name, $Extension) If $Source[4] <> ".txt" And $Source[4] <> ".ini" Then MsgBox(16 + 262144, "Message", "File not allowed!") GUICtrlSetData($idInput1, $sActiveFile) Else $sActiveFile = @GUI_DragFile GUICtrlSetData($Edit1, FileRead(@GUI_DragFile)) EndIf EndFunc Func Form1Close() Exit EndFunc Edited June 17, 2016 by water My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
MrTheDzam Posted June 17, 2016 Author Posted June 17, 2016 (edited) Well you are understanding wrong what i'm asking. I'm asking how to eliminate the file location in the "idInput1" input That mean (in my code) if you drag the file into the edit and the extension is not allowed, then the file location will not be set as a data of the Edit1 anyway, thanks for the answer Edited June 17, 2016 by MrTheDzam
water Posted June 17, 2016 Posted June 17, 2016 Quote file location will not be set as a data of the Edit1 That's exactly what my solution does. A wrong filepath only gets displayed in Input1 while the MsgBox is active. And the filepath of a wrong file does not get mixed with the content of a correct file in Edit1. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
MrTheDzam Posted June 17, 2016 Author Posted June 17, 2016 Just now, water said: at's exactly what my solution does. A wrong filepath only gets displayed in Input1 while the MsgBox is active. And the filepath of a wrong file does not get mixed with the content of a correct file in Edit1. i'm doing what notepad can't doing: drag and drop the file into the text editing zone. and if i set the data to "" then any existing data in there will be empty ( ) but if i create a new input to drag & drop file into it, then the form will no longer like notepad
water Posted June 17, 2016 Posted June 17, 2016 If you change the functionality (drag & drop) why not slightly change the look by adding an input field? My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
MrTheDzam Posted June 17, 2016 Author Posted June 17, 2016 well, i'll do like you said. thanks for helping me - From Vietnam with love
EmilyLove Posted June 17, 2016 Posted June 17, 2016 I use $fArray=stringsplit($string,"/\") and it returns an array. The last part of the array is always the filename.fileext. if the array unbound is 5 then $fArray[5] is what I need. Do you understand?
MrTheDzam Posted June 17, 2016 Author Posted June 17, 2016 (edited) 3 minutes ago, BetaLeaf said: I use $fArray=stringsplit($string,"/\") and it returns an array. The last part of the array is always the filename.fileext. if the array unbound is 5 then $fArray[5] is what I need. Do you understand? that is not what i asked for =~= I just need to eliminate the file location, which is set to the Edit when i drag the file have un-allowed extension to it you need to read my code at #4 to see my problem =~= Edited June 17, 2016 by MrTheDzam
EmilyLove Posted June 17, 2016 Posted June 17, 2016 I read and understand you are trying to remove the file location. If your dropped file is "C:\User\MeowMeow\Desktop\Example.au3" and you want to convert it to "Example.au3" then that's what my code will do.
MrTheDzam Posted June 17, 2016 Author Posted June 17, 2016 2 minutes ago, BetaLeaf said: I read and understand you are trying to remove the file location. If your dropped file is "C:\User\MeowMeow\Desktop\Example.au3" and you want to convert it to "Example.au3" then that's what my code will do. i don't need to convert it to "Exanple.au3". I need to remove it from the edit You have wrong idea anyway, thanks for help me EmilyLove 1
Danyfirex Posted June 17, 2016 Posted June 17, 2016 Hello. you can do this: expandcollapse popup#include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <WinAPISys.au3> #include <APIConstants.au3> #include <Array.au3> #include <WinAPIEx.au3> #include "File.au3" Opt("GUIOnEventMode", 1) #Region ### START Koda GUI section ### Form= Global $Form1 = GUICreate("Form1", 623, 442, 192, 124, -1, BitOR($WS_EX_ACCEPTFILES, $WS_EX_WINDOWEDGE)) GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close") ;~ GUISetOnEvent($GUI_EVENT_DROPPED, "DropFile") Global $Edit1 = GUICtrlCreateEdit("", 104, 48, 361, 233) GUICtrlSetState(-1, $GUI_DROPACCEPTED) GUICtrlSetData(-1, "") GUISetState(@SW_SHOW) GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES') #EndRegion ### END Koda GUI section ### While 1 Sleep(100) WEnd Func WM_DROPFILES($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $lParam Switch $iMsg Case $WM_DROPFILES Local Const $aReturn = _WinAPI_DragQueryFileEx($wParam) If UBound($aReturn) Then Local $Dir = "", $Drive = "", $Name = "", $Extension = "" $Source = _PathSplit($aReturn[1], $Drive, $Dir, $Name, $Extension) If $Source[4] <> ".txt" And $Source[4] <> ".ini" Then MsgBox(16 + 262144, "Message", "File not allowed!") Return False EndIf EndIf EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_DROPFILES Func Form1Close() Exit EndFunc ;==>Form1Close Saludos Xandy 1 Danysys.com AutoIt... UDFs: VirusTotal API 2.0 UDF - libZPlay UDF - Apps: Guitar Tab Tester - VirusTotal Hash Checker Examples: Text-to-Speech ISpVoice Interface - Get installed applications - Enable/Disable Network connection PrintHookProc - WINTRUST - Mute Microphone Level - Get Connected NetWorks - Create NetWork Connection ShortCut
water Posted June 17, 2016 Posted June 17, 2016 I'm too slow That was exactly what I would have proposed next. Danyfirex 1 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
MrTheDzam Posted June 18, 2016 Author Posted June 18, 2016 (edited) Thanks guys. I fixed the problem by creating a new GUI (its like the upload page of MediaFire ), and its work great XD Example Again, thanks for helping me Edited June 18, 2016 by MrTheDzam EmilyLove 1
EmilyLove Posted June 18, 2016 Posted June 18, 2016 No problem. Sorry I didn't understand your question, OP. Glad someone was able to help you.
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