現在、PostMessageを利用して外部のexeへファイル名(フルパス)を送信して、
そのファイルをexeで読み込むようにさせています。
以下、そのプログラムです。
CWnd *hWnd = FindWindow("ConsoleWindowClass", "C:\\WINDOWS\\system32\\cmd.exe");
char str[256]="C://sumple//test.txt\n"
int len = 256;
for( int i=0; i<len; i++ ){
____char c;
____c = toupper( str[i] );
____switch( str[i] )
____{
________case '\n':
________c = VK_RETURN;
________break;
____}
____hWnd->PostMessage(WM_KEYDOWN, c, 0 );
}
ところが、たとえばファイルパスが"C://sumple//aa.txt\n"
のように、同じ文字が連続して存在すると"aa.txt"ではなく"a.txt"として送信されてしまいます。
このような現象にはどう対応すればよいのでしょうか?
また、"/"や"."などの記号は"Csumpleaatt\n"のように存在しないとして処理されているようなので
case '/':
____hWnd->PostMessage(WM_KEYDOWN, VK_DIVIDE, 0 );
____break;
のように直接仮想キーコードで入力しています。(こちらは上手くいっています)
文字の連続で起こる現象にも使えるかと思って
case 'a':
____hWnd->PostMessage(WM_KEYDOWN, 0x41, 0 );
____break;
としてみたのですが、やはり駄目でした。
ファイル名に連続した文字を使わなければいいのでしょうが、汎用性を持たせるためにもどうにか解決したいと思います。
どうかご解答をお願いします。
No.1ベストアンサー
- 回答日時:
WM_KEYDOWN/WM_KEYUPをセットで送るようにしてみてはいかがでしょう
この回答への補足
セットで送るとはどういうことでしょうか?
hWnd->PostMessage(WM_KEYDOWN/WM_KEYUP, c, 0 );
や
hWnd->PostMessage(WM_KEYDOWN, c, 0 );
hWnd->PostMessage(WM_KEYUP, c, 0 );
ではないですよね?
Sleepを入れたら解決しました。
どうもお騒がせしました。
あと、間違えて同じ質問を二度してしまって申し訳ないです・・・
ポイントは二度目の質問と合わせて出させていただきました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルのタブをカン...
-
テキストファイルのファイル名...
-
拡張子を元に戻す
-
バッチファイルからVBAに引数を...
-
多数のサブディレクトリ内のフ...
-
VBAでワークシートを引数として...
-
EXCEl/VBAで拡張子なしのファイ...
-
バッチ処理でファイルの中身を...
-
VBAでエクセルをtxtに変換する...
-
DOSコマンドによるテキストファ...
-
ftpコマンドで複数のファイルを...
-
バッチファイルで文字列削除に...
-
.txtではなく.logの方が良いの...
-
複数のファイルデータを新しく...
-
perl ファイル内文字列抽出
-
accessでSQL文を使ってcsvファ...
-
batファイルについて
-
txtファイルが作成されない
-
vbsにてファイルが存在すればメ...
-
cshでファイルサイズ取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
VBAでワークシートを引数として...
-
.txtではなく.logの方が良いの...
-
拡張子を元に戻す
-
多数のサブディレクトリ内のフ...
-
COPYコマンドで結合すると余計...
-
バッチファイル 複数ファイル...
-
テキストファイルで提出とは?
-
バッチファイルで文字列削除に...
-
Windowsのバッチファイルを利用...
-
テキストファイルのファイル名...
-
ファイルの最後に文字列挿入
-
psqlでエラーログをとりたい
-
forfilesで検索したファイルを...
-
バッチファイルからVBAに引数を...
-
accessでSQL文を使ってcsvファ...
-
テキストファイルのタブをカン...
-
MATLABで行列を配列に格納する方法
-
renameコマンドについて
-
【Excel】 VBAを使って毎回名前...
おすすめ情報