1 Son düzenleyen, smentes (17.04.2014 12:00:22)

Konu: Run Veya ! Komutu

Program içinden oluşturduğum .txt dosyasını Run edit.com x.txt şeklinde açıyorum. (Veya !edit.com x.txt şeklinde)
Bazı bilgisayarlarda 1-2 saniyede dosya ekrana geliyor. Ancak bazı bilgisayarlarda 30-40 saniye bekliyor, sonra txt dosyası ekrana geliyor. Nedeni ne olabilir?

2

Re: Run Veya ! Komutu

Onun nedenini bilemiyorum ancak ! veya run yerine ShellExecute kullanmani tavsiye ederim (digerlerini kullanmadigimdan onunla ilgisi olabilir mi fikrim yok):

Visual Fox Pro
#Define SW_HIDE             0

#Define SW_NORMAL           1
#Define SW_SHOWMINIMIZED    2
#Define SW_SHOWMAXIMIZED    3
 
Local lcResult
lcResult = ShellExec('c:\Temp\Test.txt')
If !Empty(m.lcResult) && error
    Messagebox(m.lcResult)
Endif
 
Function ShellExec
    Lparameters tcExecutable,tcParams,tcWorkingDir,tnShowType,tcOperation
 
    Declare Long ShellExecute In "shell32.dll" ;
        long HWnd, String lpszOp, ;
        string lpszFile, String lpszParams, ;
        string lpszDir, Long nShowCmd
    tcOperation  = Iif(Empty(m.tcOperation), 'Open', m.tcOperation)
    tcExecutable = Iif(Empty(m.tcExecutable), '', m.tcExecutable)
    tcParams     = Iif(Empty(m.tcParams), '', m.tcParams)
    tcWorkingDir = Iif(Empty(m.tcWorkingDir), '', m.tcWorkingDir)
    tnShowType   = Iif(Type('m.tnShowType') # 'N', SW_SHOWNORMAL, m.tnShowType)
    Local lnResult, lcError
    lcError = ''
    lnResult = ShellExecute(0,m.tcOperation,m.tcExecutable,m.tcParams,m.tcWorkingDir,m.tnShowType)
    If !( m.lnResult > 32 ) && Error
        lcError = GetShExecErrorMsg(m.lnResult)
    Endif
    Return m.lcError
Endfunc
 
Function GetShExecErrorMsg
    Lparameters tnErrNum
    Local Array aErrors[1]
    Local lcMessage, lcErrors,lnErrors,ix
 
    TEXT to m.lcErrors noshow
0,The operating system is out of memory or resources. \n
2,The specified file was not found. \n
3,The specified path was not found. \n
11,The .exe file is invalid (non-Win32® .exe or error in .exe image). \n
5,The operating system denied access to the specified file.  \n
27,The file name association is incomplete or invalid. \n
30,The DDE transaction could not be completed because
other DDE transactions were being processed. \n
29,The DDE transaction failed. \n
28,The DDE transaction could not be completed because the request timed out. \n
32,The specified dynamic-link library was not found.  \n
31,There is no application associated with the given file name extension.
This error will also be returned if you attempt to print a file that is not printable. \n
8,There was not enough memory to complete the operation. \n
26,A sharing violation occurred. \n
    ENDTEXT
    Clear
    lnErrors = Alines(aErrors,m.lcErrors,.T.,'\n')
    For ix=1 To m.lnErrors
        If ( Val(Chrtran(Left(aErrors[m.ix],;
                At(',',aErrors[m.ix])-1),Chr(13)+Chr(10),'')) = m.tnErrNum )
            lcMessage = Substr(aErrors[m.ix],At(',',aErrors[m.ix])+1)
            Exit
        Endif
    Endfor
    If Empty(m.lcMessage)
        lcMessage = 'An unspecified error occurred.'
    Endif
    Return m.lcMessage
Endfunc

3

Re: Run Veya ! Komutu

Çetin Bey,
Run Veya ! leri sizin öneriniz doğrultusunda değişitireceğim.
Teşekkür ederim.