[スレッド全体]

2014/1/26 (日) 23:54:38 LR4  
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0
[2093] Re2:grep実行結果を標準出力する機能
▼ もかさん
昔、他のアプリで似たようなことをやろうとして、何日もかけて調査したのですが、/SUBSYSTEM:WINDOWSで作成したGUIアプリは、WinMainに到達するよりも前に起動元コンソールの標準入出力(stdin,stdout)から切り離されてしまうようで、できませんでした。
無理やり起動元コンソールにWriteFileで何か書き込むことはできても、パイプやリダイレクトなどは全くできず標準出力として機能しなかった覚えがあります。
(起動元とは別のコンソールを開いてそこに出すというのも意味がないですし…)
当時は不可能だと断念したのですが、できるものなのでしょうか?

> https://sourceforge.net/p/sakura-editor/patchunicode/762/
ちょっと動かしてみましたが、標準出力には何も出ませんでした。
コンソールはコマンドを叩いてすぐ、プログラムの終了を待たずに、次のコマンド入力待ちになりました。(プログラムが動作開始するよりも前にプロンプトはそのプログラムを切り離し、次のプログラムを受け入れる準備まで整えている状態)

2014/1/27 (月) 00:33:01 もか  
INCM1.23a
[2094] Re3:grep実行結果を標準出力する機能
CMDの画面には何も出ませんが、リダイレクトするとファイルに出力されますよ。
>sakura -GREPMODE -GOPT=O (中略) | TYPE CON
だとだめですが、
>sakura -GREPMODE -GOPT=O (中略) | catのようなもの
だと画面に表示されました。
あと、サクラエディタの外部コマンド実行で実行すると結果を取得できます。

XPのときには使えたと思います。確認したのはWin7です。

2014/1/27 (月) 00:54:09 LR4  
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0
[2095] Re4:grep実行結果を標準出力する機能
▼ もかさん
> >sakura -GREPMODE -GOPT=O (中略) | catのようなもの
> だと画面に表示されました。


をぉ、なんと、| more で表示できました。> grep.txt でファイル出力も。
普通には何も表示されないので、できないとばかり思ってました。
目から鱗です。
実装されるとしたら、ヘルプに説明が必要ですね。

2014/1/28 (火) 13:20:53 sajim  
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.2; .NET CLR 1.1.4322; .NET4.0E)
[2096] Re5:grep実行結果を標準出力する機能
>LR4さん
>もかさん


ご検証いただきありがとうございます。
標準出力はうまくできているようでいろいろ問題があったようですね。

結果をlogフォルダに格納する、そもそもGUI起動にしないとかいかがでしょうか?
後者は既存ロジックにかなり手が入ることになってしまいますが・・・。

引き続きご検討お願いいたします。


2014/1/28 (火) 22:27:37 もか  
INCM1.23a
[2097] Re6:grep実行結果を標準出力する機能
>GUI起動にしない
する・しないではなくexeファイルのヘッダ情報に「CUI/GUIフラグ」があって、
それがGUIになっているとこうなります。
CUI(/SUBSYSTEM:CONSOLE)にすると普通の起動のときにコマンドウィンドウが表示されるようになるので、
変更するわけにもいきません。

v3に更新しました。
・出力するエンコードをファイルのエンコードに変更

[▼次のスレッド]
INCM/CMT
Cyclamen v3.81
[ut:0.010][st:0.000]