電子書籍の厳選無料作品が豊富!

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

#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です。
何が原因でしょうか?
宜しくお願いします。

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が見つからない時は、教えて!gooで質問しましょう!