奇狐社區論壇
在這個頁面顯示本主題全部的 7 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 請教奇狐能否執行外部的 執行檔 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=22183)


由 阿酷 在 2019-12-07 08:16 發表:

請教奇狐能否執行外部的 執行檔

版主和各位先進們好,我的問題題,奇狐內能有條件成立時發出聲音的函數。

想請教是否能在修件成立時,執行如C:\01.EXE,這類的執行檔,謝謝。

__________________
永遠學習、學習永遠
善為傳家寶
忍為積德門


由 cgjj 在 2019-12-08 00:19 發表:

回覆: 請教奇狐能否執行外部的 執行檔

引用:
最初由 阿酷 發表
版主和各位先進們好,我的問題題,奇狐內能有條件成立時發出聲音的函數。

想請教是否能在修件成立時,執行如C:\01.EXE,這類的執行檔,謝謝。



透過 VBScript 即可實現
<%
Set WshShell= CreateObject ("WScript.Shell")
WshShell.Exec("C:\01.EXE")
%>


由 阿酷 在 2019-12-08 08:56 發表:

非常感謝版主的協助謝謝您

再請教如何加入判斷句,例如監控1個數值由0變成1,這樣的條件句,謝謝喔感激不盡。
例如:
AA:IF(C>O,1,0);

我的問題題,當AA的數值變化時,執行1個執行檔,請問是以下這樣寫嗎。

<%
dim AA
AA = 0
if AA=1 then
Set WshShell= CreateObject ("WScript.Shell")
WshShell.Exec("C:\01.EXE")
End If
%>


或是以下這個寫法

AA:IF(C>O,1,0);
<%
Sub AlertUser(AA)
If AA = 1 Then
Set WshShell= CreateObject ("WScript.Shell")
WshShell.Exec("C:\01.EXE")
End If
End Sub
%>



另外報告一下,只有AA有變化的時後再執行C:\01.EXE 這個執行檔,而不是AA變成1之後,每根K線都去執行01.EXE這個執行檔喔,還請協助非常感謝。

__________________
永遠學習、學習永遠
善為傳家寶
忍為積德門


由 cgjj 在 2019-12-08 21:19 發表:

回覆: 非常感謝版主的協助謝謝您

引用:
最初由 阿酷 發表
再請教如何加入判斷句,例如監控1個數值由0變成1,這樣的條件句,謝謝喔感激不盡。
例如:
AA:IF(C>O,1,0);

我的問題題,當AA的數值變化時,執行1個執行檔,請問是以下這樣寫嗎。

<%
dim AA
AA = 0
if AA=1 then
Set WshShell= CreateObject ("WScript.Shell")
WshShell.Exec("C:\01.EXE")
End If
%>


或是以下這個寫法

AA:IF(C>O,1,0);
<%
Sub AlertUser(AA)
If AA = 1 Then
Set WshShell= CreateObject ("WScript.Shell")
WshShell.Exec("C:\01.EXE")
End If
End Sub
%>



另外報告一下,只有AA有變化的時後再執行C:\01.EXE 這個執行檔,而不是AA變成1之後,每根K線都去執行01.EXE這個執行檔喔,還請協助非常感謝。



前根不成立,這根成立。當這根仍未完成時,訊號會浮動,一下符合,一下不符合。
若改取前一根計算之結果,雖然訊號不會浮動,但會隨著當前這根新行情,不斷觸發符合的動作。
故要實現您的想法,必須自己寫檔記憶先前最後的狀態,才有可能處理。

請參考此例,裡面有像這樣的應用
http://www.chiefox.com.tw/bbs/showt...&threadid=13655


由 阿酷 在 2019-12-09 07:22 發表:

回覆: 回覆: 非常感謝版主的協助謝謝您

收到,再次感謝版主您的協助喔^^
如果變成這樣,訊號不會閃就不用記憶先前最後的狀狀,是否較好處理 謝謝。
AA:IF(H>O,1,0);


....您原來的公式置於此段之前....

LevelN:=MyLevel; //請自行將 MyLevel 改為您原來存放等級的變數
AlgName:='DemoBeep'; //請自行將 DemoBeep 改為指標名稱(最好用英文名稱,不要用中文)
AddStr:=StkLabel+'_'+NumToStr(DATATYPE,0);
UseFile:=GetAppMainDir+''+AlgName+'_'+AddStr+'.txt';
GetBeepSel:=0;
<%
LevelN = FFL.VarData("LevelN")
GetBeepSel = FFL.VarData("GetBeepSel")
UseFile = FFL.VarData("UseFile")
NowLevel = LevelN(ubound(LevelN))
Set FS = CreateObject("Scripting.FileSystemObject")
OldLevel = -1
If FS.FileExists(UseFile) then
Set RdFS = FS.OpenTextFile(UseFile, 1)
RdLevel = RdFS.ReadLine
if RdLevel>"" then OldLevel = CINT(RdLevel)
end if
GetBeepSel = 0
if OldLevel<>NowLevel then GetBeepSel = NowLevel
Set RdFS = FS.CreateTextFile(UseFile, true)
RdFS.Write NowLevel
RdFS.close
FFL.VarData("GetBeepSel") = GetBeepSel
%>
BeepSel:=C*0+GetBeepSel;
PLAYSOUND(BeepSel=1,0,GetAppMainDir+'\Effwav\eff01.wav');
PLAYSOUND(BeepSel=2,0,GetAppMainDir+'\Effwav\eff02.wav');
PLAYSOUND(BeepSel=3,0,GetAppMainDir+'\Effwav\eff03.wav');

.....以下省略.....

Set WshShell= CreateObject ("WScript.Shell")
WshShell.Exec("C:\01.EXE")


引用:
最初由 cgjj 發表
前根不成立,這根成立。當這根仍未完成時,訊號會浮動,一下符合,一下不符合。
若改取前一根計算之結果,雖然訊號不會浮動,但會隨著當前這根新行情,不斷觸發符合的動作。
故要實現您的想法,必須自己寫檔記憶先前最後的狀態,才有可能處理。

請參考此例,裡面有像這樣的應用
http://www.chiefox.com.tw/bbs/showt...&threadid=13655

__________________
永遠學習、學習永遠
善為傳家寶
忍為積德門


由 cgjj 在 2019-12-09 08:56 發表:

回覆: 回覆: 回覆: 非常感謝版主的協助謝謝您

引用:
最初由 阿酷 發表
收到,再次感謝版主您的協助喔^^
如果變成這樣,訊號不會閃就不用記憶先前最後的狀狀,是否較好處理 謝謝。
AA:IF(H>O,1,0);
.............




改那樣無效的,仍會隨著當前這根新行情,不斷觸發符合的動作...

因為必須跟上一次狀態做比較
沒有紀錄上一次狀態,就無從比較

那段程式不能那樣直接套用
請先了解一下其如何運作...


由 阿酷 在 2019-12-09 13:14 發表:

回覆: 回覆: 回覆: 回覆: 非常感謝版主的協助謝謝您

引用:
最初由 cgjj 發表
改那樣無效的,仍會隨著當前這根新行情,不斷觸發符合的動作...

因為必須跟上一次狀態做比較
沒有紀錄上一次狀態,就無從比較

那段程式不能那樣直接套用
請先了解一下其如何運作...



收到,我再試試,謝謝版主的協助喔^^

__________________
永遠學習、學習永遠
善為傳家寶
忍為積德門


全部時間均為台灣時間, 現在時間為02:40
在這個頁面顯示本主題全部的 7 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.