smooth 发表于 2014-1-29 14:40:10

如何检查GUICtrlCreateInput输入的路径的合法性?

GUICtrlCreateInput输入的路径如何检查合法性?比如,输入“D:bank”,因为缺少“\”,当鼠标(焦点)离开这个输入框,马上提示路径错误。
可以用正则来检测,如果存在半角状态的“\”,则必须有一个半角状态的“:”与其相连,否则必须有一个半角状态的“:”。但是做不到即时检测。

风行者 发表于 2014-1-29 15:15:02

EN_KILLFOCUS

hnfeng 发表于 2014-1-29 15:20:13

参考这个贴,看看修改下代码,使用正则表达式试一试:

http://www.autoitx.com/thread-5891-1-1.html

netegg 发表于 2014-1-29 16:06:22

http://msdn.microsoft.com/en-us/library/windows/desktop/bb773584%28v=vs.85%29.aspx

不死帝国 发表于 2014-2-5 14:18:27

FileExists 检查路径是否存在

netegg 发表于 2014-2-6 11:00:32

本帖最后由 netegg 于 2014-2-6 11:01 编辑

这个api可以判断path是否符合unc命名规则

netegg 发表于 2014-2-9 13:45:14

本帖最后由 netegg 于 2014-2-9 15:05 编辑

Local $a
$a = '路径名不合法'
$a= '路径名合法'
$str = @ScriptFullPath & " >> " & $a & @CRLF ; File.
$str &= """C:"" >> " & $a & @CRLF ; Drive.
$str &= "C: >> " & $a & @CRLF ; Drive.
$str &= @ProgramFilesDir & " >> " & $a & @CRLF ; Directory.
$str &= """Z:File.txt"" >> " & $a & @CRLF ; Shouldn't exist!
$str &= "D:bank >> " & $a & @CRLF
$str &= "L: >> " & $a & @CRLF ;全/半角
MsgBox(0, '_WinAPI_PathFileExists', $str)


Func _WinAPI_PathFileExists($sFilePath)
    Local $aReturn = DllCall('shlwapi.dll', 'int', 'PathFileExistsW', 'wstr', $sFilePath)
    If @error Then
      Return SetError(1, 0, 0)
    EndIf
    Return $aReturn
EndFunc   ;==>_WinAPI_PathFileExists

smooth 发表于 2014-2-10 16:38:39

回复 5# 不死帝国

我的是想检测用户在GUICtrlCreateInput中输入的是不是一个路径,如果是合法路径,则才去建立路径。比如用户有可能输入 C::\A\\B,这就不是一个合法的路径的,提示用户修改。

smooth 发表于 2014-2-10 16:57:40

本帖最后由 smooth 于 2014-2-10 16:58 编辑

回复 7# netegg

蛋蛋,我真的佩服你,我要的就是这样的函数。真心感谢!真不知道你从哪里淘到这些函数的?

可否在此请教,怎么能实现实时检测呢?就是用户在GUICtrlCreateInput中输入完毕,就能检测出来,就好像$ES_NUMBER扩展样式一样。

netegg 发表于 2014-2-10 17:49:54

用消息操作,当变换控件的时候检查,不过这个情况很多,看具体的了

netegg 发表于 2014-2-10 18:38:19

$EN_CHANGE,用于实时检测
$EN_KILLFOCUS,用于焦点解除时

smooth 发表于 2014-2-11 18:15:59

回复 11# netegg
嗯,我晚上试试。蛋蛋,你帮我找的函数,在Windows 8.1下测试不能通过,合法的路径也被认为是非法路径,比如C:\a这种简单的路径。

netegg 发表于 2014-2-11 20:18:33

回复 12# smooth
没有环境,不知道

smooth 发表于 2014-2-11 23:27:46

回复 13# netegg
可以弄个虚拟机装个WIN8.1试试。

afan 发表于 2014-2-11 23:39:29


netegg 发表于 2014-2-9 13:45 http://www.autoitx.com/images/common/back.gif


    蛋蛋迷糊了… 这个不是验证合法性的
页: [1] 2 3
查看完整版本: 如何检查GUICtrlCreateInput输入的路径的合法性?