メタトレーダーでシグナルが出た時に外部アプリを起動させたいのですが上手くいきません。
ヘッダ部分で、

#import "shell32.dll"
int ShellExecuteA(int hWnd,int lpVerb,string lpFile,string lpParameters,string lpDirectory,int nCmdShow);
#import

と記述し、
シグナル発生を示すif文で、

ShellExecuteA(0,"open","C:\Windows\notepad.exe","","",0);

と記述していますが、
シグナルが発生してもメモ帳は起動しません。
ShellExecuteの前行に音声を鳴らす構文を書いていますが、そちらは上手く作動しています。
コンパイル時のエラーは0です。
何が原因でしょうか?
宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

では、下記をスクリプトでコピーして実行してみて下さい。




#import "shell32.dll"
int ShellExecuteA(int hWnd,int Verb,string File,int Parameter,int Path,int ShowCommand);
#import

int start() {

ShellExecuteA(0,"open","C:/Windows/notepad.exe","","",1);

return(0);
}

この回答への補足

すみません、起動できました。
DLLの許可を行っていませんでした。
ご協力頂いたおかげで大分短縮して解決に至ることが出来ました。
本当にありがとうございました。

補足日時:2012/11/27 12:04
    • good
    • 0
この回答へのお礼

コピペして実行しました。
メモ帳は起動できませんでした。
ログには最終行にremovedとだけ残っていました。
dllの問題でしょうか。
色々やっていてdllが許可されていないようなエラーログが残っているのに気づきました。

お礼日時:2012/11/27 11:37

とりあえず、このように書けば、望みがかないますよってことで。



(元)ShellExecuteA(0,"open","C:\Windows\notepad.exe","","",0);

         ↓

(正)ShellExecuteA(0,"open","C:/Windows/notepad.exe","","",1);
    • good
    • 0
この回答へのお礼

ご回答頂きありがとうございます。
ご指摘頂いた文章をそのままコピペしたのですが、
シグナルが発生しても上手く作動しませんでした。
色々ググったりして試行錯誤してるんですがピクリとも起動しないですね・・・。

お礼日時:2012/11/27 05:15

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QMT4を使い、トレンドラインで売買する方法

メタトレのEA作成について質問させてください。

自分で描画したトレンドラインに、現在値が達したら建玉又は決済するという方法を教えて下さい。

色んなサイト(海外も含め)を調べたのですが、わかりませんでした。
FX自体は5年やっておりますが、メタトレは最近口座開設したばかりの初心者です。
まだ、プログラム言語の勉強中なので、関数などは・・・です。

よろしくお願いします。

Aベストアンサー

それ、不可能かもしれません。
決済はEAで、ラインはあなたが手動で描くという意味ならば、恐らく無理です。

基本スタンスとして業者側が提供する数値(4本値)で制御するという考え方であり、
ユーザー側で入力できる値の個数は8個とかなり制限されています。
このユーザ側で設定できる値とは、例えば移動平均線の日数などです。
8個も変数があれば十分でしょうということです。

EAでトレンドラインを描く分には業者側提供の値で十分実装できます。
しかし、ユーザーが個別に描いた線の位置を入力値として制御したい場合、
とても8個では足りないでしょう。しかも、それは座標上から拾って来ないといけません。

MT5ではこの辺の設計が可能になっているかもしれませんが、
それは関知致しません。悪しからず。

QMT4のEX4ファイルをMQ4ファイルに変換する無料ソフトを教えて下さ

MT4のEX4ファイルをMQ4ファイルに変換する無料ソフトを教えて下さい。

先日まではhttp://www.ex4tomq4.net/を使っていたのですが、変換しようとページを訪れるとUnder Constructionで、暫くこの状態が続いています。

で、他のソフトを探してみてhttp://www.greattradingsystems.com/2009/08/free-mt4-decompiler-ex4-to-mq4/でDecompiler EX4-TO-MQ4 4.0.215.6やMetaTrader 4 Ex4 Decompilerを試してみたのですが、どちらも使えませんでした。(前者はダウンロード後インストールしようとするとエラーになりインストール出来ない。後者はダウンロード後EX4ファイルをダブルクリックするとMQ4ファイルに変換するものですが、ダブルクリックしても何の変化もなく、読み取れないEX4ファイルが開くだけです。)

という訳で、ディコンパイラーならこれがお勧め、という無料ソフトがあったら教えて下さい。

宜しくお願いします。

MT4のEX4ファイルをMQ4ファイルに変換する無料ソフトを教えて下さい。

先日まではhttp://www.ex4tomq4.net/を使っていたのですが、変換しようとページを訪れるとUnder Constructionで、暫くこの状態が続いています。

で、他のソフトを探してみてhttp://www.greattradingsystems.com/2009/08/free-mt4-decompiler-ex4-to-mq4/でDecompiler EX4-TO-MQ4 4.0.215.6やMetaTrader 4 Ex4 Decompilerを試してみたのですが、どちらも使えませんでした。(前者はダウンロード後インストールしようとするとエラーになりイン...続きを読む

Aベストアンサー

基本的にはコンパイルされたex4ファイルのみで配布されているものは
mq4を見せたくないという公開者の意志がそこにありますので
それをデコンパイルするという行為は倫理的にグレーゾーンになりますし
公開者自身がそれを禁ずる旨の声明を出している場合は権利の侵害行為となります。
お探しのデコンパイラですが、上記のような理由でアンダーグラウンド的なツールであり
こういった公の場では質問する性質のものではないかもしれません。
感覚的には「デジタル映像のコピーガードをキャンセルする」というような行為と同様ということですね。

QFX:指定した時間の高値・安値を返すプログラムを教えてください。(MT4)

指定した時間の高値・安値を返すプログラムを教えてください。

具体的に言うと、、21時から23時の間の高値・安値です。

少し調べたところ、iHighest,iLowestやiBarSHiftの関数で値を出せると思ったのですが、
この関数では、指定の期間が、”現在から何本前の足から何本分の期間”といったように時刻で指定できないみたいで困っております。

※MT4を使用しております。

Aベストアンサー

ちょっと自信ありませんが、とりあえず作ってみました。
今、手元に、MT4がないので、コンパイルその他の実験をしておりません。エラー等ありましたら、どうかご容赦を。

double H=0; // 最高値を変数として宣言
double L=0; // 最安値を変数として宣言
int T = TimeHour(CurTime()); // 現在の時刻を変数として宣言

if(T!=23) // もしも現在が23時台でなければ、
{
H= High[iHighest(NULL,PERIOD_H1,MODE_HIGH,2,T+2)];
L= Low[iLowest(NULL,PERIOD_H1,MODE_LOW,2,T+2)];
}
else // もしも現在が23時台であれば、
{
H=High[iHighest(NULL,PERIOD_H1,MODE_HIGH,2,1)];
L=Low[iLowest(NULL,PERIOD_H1,MODE_LOW,2,1)];
}

ちなみに、TimeHour()関数については、以下のサイトで詳しく解説されておりました。

http://jidoubaibai.com/index.html

また、私は、ごく最近MT4の勉強をはじめたばかりで、質問者の方と同様、いろいろ苦労しております。

ちょっと自信ありませんが、とりあえず作ってみました。
今、手元に、MT4がないので、コンパイルその他の実験をしておりません。エラー等ありましたら、どうかご容赦を。

double H=0; // 最高値を変数として宣言
double L=0; // 最安値を変数として宣言
int T = TimeHour(CurTime()); // 現在の時刻を変数として宣言

if(T!=23) // もしも現在が23時台でなければ、
{
H= High[iHighest(NULL,PERIOD_H1,MODE_HIGH,2,T+2)];
L= Low[iLowest(NULL,PERIOD_H1,MODE_LOW,2,T+2)];
}
else // もしも現在...続きを読む

Qなぜ将棋の打ち歩詰めはいけないの?

将棋で相手の王将をつめるとき、なぜ打ち歩で詰めたらいけないのでしょうか?

Aベストアンサー

正直、打ち歩詰めの局面はそんなに出てくるわけではないので、このルールがなくなったところで大きな影響はないと思います。

このルールについては、あの羽生さんでさえ、由来は知らないそうです。
ただ、私見として「将棋が考案された武家社会では一介の歩兵が大将を討ち取ることを良しとしない風潮があったのでは」とおっしゃっています。
なるほど、もっともなご意見ですね。
手持ちの歩というのは紆余曲折あっても基本的には元は自陣の歩だった可能性が高いですから。

盤上の歩で詰めても良いのは同様の理由でしょう。
敵陣の歩が相手の大将を討ち取るのは奨励されたでしょうから。

この辺は理屈ではなく将棋の美学と捉えるしかなさそうです。

Q為替データをエクセルにダウンロード出来るサイト

為替データをリアルタイムで取得して、エクセルに
ダウンロードして処理したいのですが、
そのような事の出来るサイトは無いでしょうか。

Aベストアンサー

システムに関しては全く無知です。

株価のリアルタイムダウンロードの質問は時々あり、次が参考になっているようです。為替も同じじゃないでしょうか?

Excelで株投資
http://www2s.biglobe.ne.jp/~iryo/kabu/index.html
このなかの、右下のほうで、
■ 解析ツール関連VBAの解説
┣[1]-1Webから株価データ取得マクロ(Yahoo)
 ┣[1]-2Webから株価データ取得マクロ(Infoseek)

参考URL:http://www2s.biglobe.ne.jp/~iryo/kabu/index.html

Q「1分足」「日足」は英語でなんと言う?

株価でよく「1分足」「日足」という棒グラフがありますが、あれを英語で言うと、どういう英単語になるのでしょう?

”1 minute leg” ですか?
ご存知の方、教えてください。
よろしくお願いします

Aベストアンサー

1分足チャート one-minute chart
日足チャート daily chart
週足チャート  weekly chart

「足」は、legではなくbarと言う方が通じやすいと思います。棒グラフの「棒」です。

Q陽線と陰線を英語でいうと?

たびたびすみません。

株をやっていると、陽線、陰線という言葉が出てきますが
これらを英語でいうとなんていえばいいのでしょうか。

さんざん調べたのですがどうしてもわからなくて・・・
どうか助けてください!!お願いします

Aベストアンサー

ローソク足のことですね。
陽線 → white candlestick
陰線 → black candlestick

Signal Patterns や その他 知りたいとき↓
http://en.wikipedia.org/wiki/Candlestick_chart

QUWSCについて

UWSCをつかって他のプログラムを起動させたいのですがかのうですか??

使いたいのはバッチファイルで拡張子が
.bat
です。

call関数はUWSCだけみたいで出来ませんでした。
どなたか分かる方教えてください。

宜しくお願いします

Aベストアンサー

> testフォルダーの中の
> test.batを起動したい場合は
> どのように記述すればいいのですか??

DOSCMD("test\test.bat")
で、実行できます。


> DOSCMD()関数でバッチファイルを呼び出した場合
> そこまでのディレクトリーのファルパスが自動で、
> 書かれてますよね??
> それはいらないのですが…

この質問の意味がよくわからないのですが、
バッチファイル内の実行コマンドイメージ出力が
不要というという意味であれば、
バッチファイルの先頭に
@ECHO OFF
を入れておけばよいです。

QUWSC 画像判定と条件分岐について

UWSC 画像判定と条件分岐について質問です

1.画像Aがあるか判定する
2.画像Aがあれば、画像B又は画像Cをクリックする
3.画像Aなければ、sleepで少し秒数を開けてから1からやり直す
以降繰り返し

というプログラムを書きたいのですが、画面上の画像を判定して画像AがあるときだけB,Cをクリック
させる方法がよくわかりません。
加えてBを判定してクリック、Cを判定してクリックというのは
ifb部分を二つ使い別々に扱えば書けるのですが、 elseなど用いて一ブロックのifb-endifでの
表し方もよくわからないので合わせてそちらも教えていただきたいです

御回答よろしくお願いします

Aベストアンサー

> 加えてBを判定してクリック、Cを判定してクリックというのは

それは、画像BとCがどちらも存在するので両方ともクリックしておくと言うことか、それともBがなければCをクリックするのか、どっちでしょう?前者の場合はELSEは使わない(って言うか使えない)ので、IFを二つ並べるしか方法はないです。なぜなら、IFB~ELSE~ENDIFの形にすると、最初のIFBの条件を満たした場合はELSE以下は実行されず、ENDIFに抜けてしまいます。

と言うことを踏まえて書くと、次のような感じでしょうか。

While True
  Ifb ChkImg("画像A")
    Sleep(適当な待ち時間を入れる。待つ必要がなければこのSleep自体が不要)
    Ifb ChkImg("画像B")
      //画像Bをクリック。ただし見つけた座標より若干内側にしないと空振りの
      //危険があるので、+2している。この値は適当に調整のこと
      Btn(Left,Click,G_IMG_X+2,G_IMG_Y+2,20)
      //この後続けて画像Cもチェックしたい場合は、次のContinueを消す
      Continue
    EndIf
    If ChkImg("画像C") Then Btn(Left,Click,G_IMG_X+2,G_IMG_Y+2,20)
  EndIf
  Sleep(適当な待ち時間を入れる。)
Wend

ちなみにIFB~ELSE~ENDIFの書き方は、特に悩むことはなくて…

Ifb 条件
  条件成立時の処理
Else
  条件不成立時の処理
EndIf

の形になります。Elseの後でさらに条件判定をしたければ、ElseIfとするか、あるいはElseの下にさらにIfあるいはIfbを書きます。次のような感じで。

Ifb 条件A
  条件A成立時の処理
Else
  Ifb 条件A不成立時のさらなる条件B
    条件B成立時の処理
  EndIf
EndIf

> 加えてBを判定してクリック、Cを判定してクリックというのは

それは、画像BとCがどちらも存在するので両方ともクリックしておくと言うことか、それともBがなければCをクリックするのか、どっちでしょう?前者の場合はELSEは使わない(って言うか使えない)ので、IFを二つ並べるしか方法はないです。なぜなら、IFB~ELSE~ENDIFの形にすると、最初のIFBの条件を満たした場合はELSE以下は実行されず、ENDIFに抜けてしまいます。

と言うことを踏まえて書くと、次のような感じでしょうか。

While True
  Ifb Ch...続きを読む


人気Q&Aランキング

おすすめ情報