社区
VFP
帖子详情
检测共享目录是否存在或者可用?
feiyafei2008
2009-12-09 04:00:21
高手们!有个问题想问一下:
检测共享目录是否存在或者可用?
如:\\192.168.1.2\XXX
例如:
md \\192.168.1.2\XXX\1
rd \\192.168.1.2\XXX\1
若不能执行能否设置超时之类的
...全文
235
8
打赏
收藏
检测共享目录是否存在或者可用?
高手们!有个问题想问一下: 检测共享目录是否存在或者可用? 如:\\192.168.1.2\XXX 例如: md \\192.168.1.2\XXX\1 rd \\192.168.1.2\XXX\1 若不能执行能否设置超时之类的
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
十豆三
2009-12-11
打赏
举报
回复
dkfdtf 是这方面的专家。
feiyafei2008
2009-12-10
打赏
举报
回复
如果直接判断某个共享目录是不存在的可能程序会死掉或者停几十秒钟才会有响应。用上面的函数就可以解决了。
feiyafei2008
2009-12-10
打赏
举报
回复
先谢谢了,问题已经解决。
使用进程相关函数解决!用 net 命令如果执行成功就会返回0。
如果直接判断某个共享目录是否存在,可能程序会死掉或者停几十秒钟才会有响应。
?runAndWaitOnRet('net use \\192.168.1.3\xxx', .t.,0.1) &&成功返回0
* 以下函数是“dkfdtf”写的。
function runAndWaitOnRet
lparameters tcCmd, tlHideWindow, tnTimeout
if pCount() < 3 or 'N' <> varType(tnTimeout) or 0 == tnTimeout
tnTimeout = 0
endIf
if pCount() < 2 or 'L' <> varType(tlHideWindow)
tlHideWindow = .f.
endIf
* 创建一个新的进程和主线程,然后在新进程中运行指定的程序
* 返回值:非 0 表示成功,0 表示失败
declare long CreateProcess in win32api ;
string pszImageName, ; && 要执行的模块名或空,为空时以下一个参数的第一个空格前的文件名作为执行模块名
string pszCmdLine, ; && 命令行参数
long psaProcess, ; && 保留,必须为 0
long psaThread, ; && 保留,必须为 0
long fInheritHandles, ; && 保留,必须为 0
long fdwCreate, ; && 进程的优先级和创建方式
long pvEnvironment, ; && 保留,必须为 0
long pszCurDir, ; && 保留,必须为 0
string psiStartInfo, ; && 保留,必须为 0
string @ pProcInfo && 用于接收新进程 Process_Information 结构的缓冲区
* 监控指定的对象,直至该对象处于有信号状态或超时才返回控制给调用进程
declare long WaitForSingleObject in win32api ;
long hHandle, ; && 要监控的对象
long dwMilliseconds && 超时值(毫秒)
* 取指定进程的返回码,非 0 表示成功
declare long GetExitCodeProcess in win32api ;
long hProcess, ; && 进程句柄
long @ lpExitCode && 用于接收返回码
* 关闭指定的系统对象
declare long CloseHandle in win32api long hObject
* 强行终止一个进程及它的所有线程
declare long TerminateProcess in win32api ;
long hProcess, ; && 要关闭的进程句柄
long uExitCode && 指定结束进程的退出码
* 取系统启动以来的毫秒数
declare long GetTickCount in win32api
local lcApiStruSI, lcApiStruPI, lhProcess, lhThread, lnTimeout, lnRetVal
* 创建 CreateProcess API 函数所需的两个结构 StartupInfo, Process_Information
lcApiStruSI = replicate(chr(0), 40) ;
+ binToC(1, 'rs' ) + binToC(iif(tlHideWindow, 0, 1), 'rs') ;
+ replicate(chr(0), 16)
lcApiStruSI = binToC(len(lcApiStruSI)+4, 'rs') + lcApiStruSI
lcApiStruPI = replicate(chr(0), 16)
* 创建新进程,0x20 - NORMAL_PRIORITY_CLASS(普通优先级)
if 0 == CreateProcess( ;
null, tcCmd+chr(0), 0, 0, 0, 0x20, 0, 0, lcApiStruSI, @ lcApiStruPI)
lnRetVal = null && 创建进程失败
else
lhProcess = ctobin(subStr(lcApiStruPI, 1, 4 ), 'rs') && 进程句柄
lhThread = ctobin(subStr(lcApiStruPI, 5, 4 ), 'rs') && 主线程句柄
CloseHandle(lhThread) && 只监视主进程是否终止, 释放主线程引用计数
lnTimeout = iif(tnTimeout == 0, 0, GetTickCount() + tnTimeout * 1000)
do while .t.
inkey(0.2)
lnRetVal = WaitForSingleObject(lhProcess, 0)
if lnRetVal == 0
exit
endIf
if lnTimeout <> 0 and GetTickCount() > lnTimeout
lnRetVal = -1
exit
endIf
endDo
if -1 == lnRetVal
TerminateProcess(lhProcess, -1) && 超时, 强行终止进程
else
GetExitCodeProcess(lhProcess, @ lnRetVal) && 自行退出, 取返回码
endIf
CloseHandle(lhProcess) && 释放进程内核对象的引用计数
endIf
return lnRetVal
endFunc
十豆三
2009-12-09
打赏
举报
回复
If
Directory
(
"\\192.168.1.2\XXX"
,
1
)
Messagebox
(
"共享目录存在!"
,
64
,
"信息提示"
)
lnI
=
0
Try
Md
\\
192.168.1.2
\
XXX
\
1
Rd
\\
192.168.1.2
\
XXX
\
1
Catch
lnI
=
1
Endtry
If
lnI
=
1
Messagebox
(
"共享目录存在,并且是只读的!"
,
64
,
"信息提示"
)
Else
Messagebox
(
"共享目录存在,并且是可写的!"
,
64
,
"信息提示"
)
Endif
Else
Messagebox
(
"共享目录不存在!"
,
48
,
"信息提示"
)
Endif
feiyafei2008
2009-12-09
打赏
举报
回复
如果192.168.1.2这个电脑未打开或不存在,可能这个程序就会执行很久才会有响应。
Directory("\\192.168.1.2\XXX",1)
能否设置超时。
wwwwb
2009-12-09
打赏
举报
回复
用捕获错误的方法要简单一些,否则要用API函数,
比较复杂
十豆三
2009-12-09
打赏
举报
回复
至于是否是可写的,可以用你的命令并运用 Try 容错即可。
十豆三
2009-12-09
打赏
举报
回复
If
Directory
(
"\\192.168.1.2\XXX"
,
1
)
Messagebox
(
"共享目录存在!"
,
64
,
"信息提示"
)
Else
Messagebox
(
"共享目录不存在!"
,
48
,
"信息提示"
)
Endi
php 判断存在
目录
,php判断
目录
存在的简单方法
php判断
目录
存在的简单方法PHP判断文件或
目录
是否存在
file_exists:判断文件
是否存在
$file = "check.txt";if(file_exists($file)){echo "当前
目录
中,文件".$file."存在";}else{echo "当前
目录
中,文件".$file."不存在";}is_dir:判断
目录
是否存在
$dir = "c:/datacheck";if(is_dir(...
【MQ篇】RocketMQ如何消息队列保证高
可用
目录
RocketMQ如何消息队列保证高
可用
(集群)1. 以RocketMQ为例1. 几个概念1. Topic消息类型(大类)2. Queue队列(明细类)3. 消费者组2. RocketMQ消息的存储结构(ConsumeQueue + CommitLog)1. ConsumeQueue 逻辑队列(类似索引,指向真的文件CommitLog)2. CommitLog (提交日志?这名字也太怪了)刷盘后存在磁盘上的文件3. 实现高
可用
的思路(多个Broker)4. NameServer(类似于注册中心,管理Bro
目标
检测
(Object Detection)
文章
目录
目标
检测
(Object Detection)一、基本概念1. 什么是目标
检测
2. 目标
检测
的核心问题3. 目标
检测
算法分类1)Tow Stage2)One Stage4. 目标
检测
应用1)人脸
检测
2)行人
检测
3)车辆
检测
4)遥感
检测
二、目标
检测
原理1. 候选区域产生1)滑动窗口2)选择性搜索① 什么是选择性搜索② 选择搜索流程③ 选择搜索优点2. 数据表示3. 效果评估4. 非极大值抑制三、目标
检测
模型1. R-CNN系列1)R-CNN① 定义② 流程③ 效果④ 缺点2)Fast R-CNN① 定义
网络安全之入侵
检测
系统
入侵:指一系列试图破坏信息资源机密性完整性和
可用
性的行为。对信息系统的非授权访问及(或)未经许可在信息系统中进行操作。入侵
检测
:是通过从计算机网络系统中的若干关键节点收集信息,并分析这些信息,监控网络中是否有违反安全策略的行为或者
是否存在
入侵行为,是对指向计算和网络资源的恶意行为的识别和响应过程。入侵
检测
系统(IDS):入侵
检测
系统通过监视受保护系统的状态和活动,采用异常
检测
或滥用
检测
的方式,发现非授权的或恶意的系统及网络行为,为防范入侵行为提供有效的手段,是一个完备的网络安全体系的重要组成部分。
Linux
共享
目录
NFS设置
NFS server可以看作是一个FILE SERVER,它可以让你的PC通过网络将远端得NFS SERVER
共享
出来的档案MOUNT到自己的系统中,在CLIENT看来使用NFS的远端文件就象是在使用本地文件一样。 RPC(Remote Procedure Call) NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的
VFP
2,749
社区成员
29,140
社区内容
发帖
与我相关
我的任务
VFP
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
复制链接
扫一扫
分享
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章