`
vaqeteart
  • 浏览: 298915 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

临时记录

阅读更多
什么是selinux?
参考:
http://baike.baidu.com/view/487687.htm

我的实践:
我使用的是ubuntu9.1
默认没有selinux模块启动的,当我在内核启动参数中添加了选项"selinux=1"之后,使用ls的-Z选项就看到selinux的标记了。如下:
$ls -lZ
drwxr-xr-x 15 quietheart quietheart unlabeled   4096 2011-01-03 12:45 test
-rw-r--r--  1 quietheart quietheart unlabeled 251998 2010-08-07 19:26 test2.wav
如果不加"selinux=2"那么,结果如下:
$ls -lZ
drwxr-xr-x 15 quietheart quietheart ?   4096 2011-01-03 12:45 test
-rw-r--r--  1 quietheart quietheart ? 251998 2010-08-07 19:26 test2.wav
以上只是对selinux的一点小实践,从参考资料上面可以看到更详细的信息,具体有待研究。

如何实现shell同步执行(ok)

http://club.excelhome.net/thread-157371-1-1.html
有两种不是太完美的方法:
1、DoEvents 函数
DoEvents 会将控制权传给操作系统。当操作系统处理完队列中的事件后返回控制权。
例:
Dim I, OpenForms
For I = 1 To 150000 ' 循环开始。
If I Mod 1000 = 0 Then ' 如果循环一已完成了 1000 次。
OpenForms = DoEvents ' 将执行让给操作系统。
End If
Next I ' 将循环计数器加一。
2、timer 函数
返回一个 Single,代表从午夜开始到现在经过的秒数。
Timer 函数示例

本示例使用 Timer 函数来暂停应用程序。同时用 DoEvents 在暂停期间将控制让给其他进程。
Dim PauseTime, Start, Finish, TotalTime
If (MsgBox("Press Yes to pause for 5 seconds", 4)) = vbYes Then
    PauseTime = 5    ' 设置暂停时间。
    Start = Timer    ' 设置开始暂停的时刻。
    Do While Timer < Start + PauseTime
        DoEvents    ' 将控制让给其他程序。
    Loop
    Finish = Timer    ' 设置结束时刻。
    TotalTime = Finish - Start    ' 计算总时间。
    MsgBox "Paused for " & TotalTime & " seconds"
Else
    End
End If

你可详见OFFICE帮助!


http://club.excelhome.net/thread-276882-1-1.html
这个的似乎好用:

Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
    Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Public Const Process_Query_Information = &H400
    Public Const Still_Active = 259
Sub 按钮186_单击()

Dim strWinDir As String
    Dim pid As Long
    Dim hProcess As Long
    Dim a As String
  
    a = ThisWorkbook.Path 'Excell文件所在路径。

    strWinDir = Environ("windir") '系统目录。
   
    'pid = Shell(strWinDir & "\system32\cmd.exe", 1)
    pid = Shell(a & "\cuihuatiaohe.exe", 1)
    hProcess = OpenProcess(Process_Query_Information, False, pid)
   
    Do
    GetExitCodeProcess hProcess, lngexitcode
    DoEvents
    Loop While lngexitcode = Still_Active
End Sub


Shell只会调用程序,调用后就会继续执行后面代码。下面代码可让代码等待调用程序结束后再继续执行后面代码,试试:
Private Declare Function OpenProcess Lib "kernel32" _
                        (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessID As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" _
                        (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Const INFINITE = &HFFFFFFFF
Private Const PROCESS_QUERY_INFORMATION = &H400
Private Const SYNCHRONIZE = &H100000
Sub test()
    Dim ReturnValue&, hProcess&
    ReturnValue = Shell("Notepad.exe ", vbMaximizedFocus)
    hProcess = OpenProcess(PROCESS_QUERY_INFORMATION + SYNCHRONIZE, 0, ReturnValue)
    WaitForSingleObject hProcess, INFINITE
    MsgBox "您结束了记事本"
End Sub

http://zhidao.baidu.com/question/225767831.html
这里的是我的提问,似乎是根据窗口来判断的。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics