1

Konu: ! /N komutu

foxpro içerisinden notepad.exe programını çağırırken,"C:\ABC.DAT" dosyasını otomatik olarak açmasını istiyorum.Aşağıdaki gibi komutları yazdım ancak,istediğim dosyayı açmadı.Bu komutu kullanmayalıda uzun yıllar oldu dostlar.Acaba nerede yanlış yapıyorum? :-(

PROGISMI="C:\Windows\system32\notepad.exe"
   ! /N &PROGISMI WITH "C:\ABC.DAT"

Visual Fox Pro
PROGISMI="C:\Windows\system32\notepad.exe C:\ABC.DAT"

   ! /N &PROGISMI

yada

Visual Fox Pro
DECLARE INTEGER ShellExecute IN "Shell32.dll" ;

    INTEGER hwnd, ;
    STRING lpVerb, ;
    STRING lpFile, ;
    STRING lpParameters, ;
    STRING lpDirectory, ;
    LONG nShowCmd
 
=Shellexecute(0,"Open","C:\ABC.DAT","","",0)
&& dat extension un default kullanidigi prg notepad farzediyoruz
clear dlls
En büyük sermaye nakit,nakit sermaye vakittir...

2

Re: ! /N komutu

Bu program METIN değişkeninin içeriğini notepad'e gönderiyor. ABC.DAT'ın içeriği FILETOSTR ile METIN değişkenine yüklenmeli.



Visual Fox Pro
#Define WM_GETTEXTLENGTH 14

#Define WM_GETTEXT 13
#Define WM_GETFONT 49
#Define WM_SETTEXT 12
#Define WM_SETFONT 48
#Define WM_SETFOCUS 7
#Define SW_SHOWNORMAL  1
Clea
Declare Integer WinExec In kernel32 String lpCmdLine,Integer nCmdShow
Declare Integer FindWindowEx In user32 Integer,Integer,String,String
Declare Integer SetWindowText In user32 Integer HWnd,String lpString
Declare Integer SendMessage In user32 Integer HWnd,Integer wMsg,Integer wParam,String @Lparam
Declare Integer ShowWindowAsync In user32 Integer HWnd,Integer nCmdShow
Declare Integer SetForegroundWindow In Win32api Integer
If FindWindowEx(0,0,"Notepad",Null)=0
    =WinExec("Notepad.exe",SW_SHOWNORMAL)
Endif
HWnd=FindWindowEx(0,0,"Notepad",Null)
=ShowWindowAsync(HWnd,1)
=SetForegroundWindow(HWnd)
=SetWindowText(HWnd,"BAŞLIK")
HWnd=FindWindowEx(HWnd,0,"Edit",Null)
lnText=SendMessage(HWnd,WM_GETTEXTLENGTH,0,"")
lcTextBuffer=Space(lnText)
lnText=SendMessage(HWnd,WM_GETTEXT,lnText+1,@lcTextBuffer)
lnruns=Occu(Chr(13)+Chr(10),lcTextBuffer)+1
=SendMessage(HWnd,WM_SETFOCUS,0,"")
METIN="İÇERİK"
=SendMessage(HWnd,WM_SETFONT,Len(METIN)+1,METIN)
mytext=lcTextBuffer+METIN
=SendMessage(HWnd,WM_SETTEXT,Len(METIN)+1,METIN)
Return

3 Son düzenleyen, ugurlu2001 (11.03.2008 17:26:41)

Re: ! /N komutu

Daha Farklı bir yöntem, üzerinde oynanabilir.

Visual Fox Pro
SET TEXTMERGE TO memvar m.MyRun NOSHOW 

SET TEXTMERGE on
    \ C:\Windows\system32\notepad.exe C:\ABC.DAT
SET TEXTMERGE TO
SET TEXTMERGE OFF
 
STRTOFILE(m.MyRun, "C:\MyRun.Bat")
RUN "C:\MyRun.Bat"
Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

4

Re: ! /N komutu

Visual Fox Pro
PROGISMI="C:\Windows\system32\notepad.exe readme.txt"

! /N &PROGISMI

Bu şekilde çalışıyor. Path hatalı olmasın..

5

Re: ! /N komutu

neyzen yazdı:
Visual Fox Pro
DECLARE INTEGER ShellExecute IN "Shell32.dll" ;

    INTEGER hwnd, ;
    STRING lpVerb, ;
    STRING lpFile, ;
    STRING lpParameters, ;
    STRING lpDirectory, ;
    LONG nShowCmd
 
=Shellexecute(0,"Open","C:\ABC.DAT","","",0)
&& dat extension un default kullanidigi prg notepad farzediyoruz
clear dlls


sonu 0 değil 1 olacak.

Visual Fox Pro
=Shellexecute(0,"open","readme.txt","","",1)

6

Re: ! /N komutu

Visual Fox Pro
DECLARE INTEGER ShellExecute IN "Shell32.dll" ;

    INTEGER hwnd, ;
    STRING lpVerb, ;
    STRING lpFile, ;
    STRING lpParameters, ;
    STRING lpDirectory, ;
    LONG nShowCmd
 
Shellexecute(0,"Open","notepad.exe","C:\ABC.DAT",0,1)

7

Re: ! /N komutu

ugurlu2001 yazdı:

Daha Farklı bir yöntem, üzerinde oynanabilir.

Visual Fox Pro
SET TEXTMERGE TO memvar m.MyRun NOSHOW 

SET TEXTMERGE on
    \ C:\Windows\system32\notepad.exe C:\ABC.DAT
SET TEXTMERGE TO
SET TEXTMERGE OFF
 
STRTOFILE(m.MyRun, "C:\MyRun.Bat")
RUN "C:\MyRun.Bat"


Ugur cok yaklasmissin:)

Visual Fox Pro
SET TEXTMERGE TO memvar m.MyRun NOSHOW 

SET TEXTMERGE on
    \\ "C:\Windows\system32\notepad.exe" "C:\ABC.DAT"
SET TEXTMERGE TO
SET TEXTMERGE OFF
 
RUN /N &MyRun

8

Re: ! /N komutu

tüm arkadaşlara yardımları için teşekkür ederim

En büyük sermaye nakit,nakit sermaye vakittir...