No.6ベストアンサー
- 回答日時:
★アドバイス
>の部分までで、キー入力されたことになっているのでしょうか?
↑
いいえキー入力されたことにはなりません。
単にINPUT構造体にデータをセットしただけです。
SendInput()関数を実行して初めて『S』キーが押されたのと同じになります。
・SendInput()関数の戻り値を調べてみましたか?
ifで分岐して正常、エラーのどちらが表示されますか?
MessageBox()などで確認して下さい。
エラーならINPUT構造体のセット内容の不正かも知れません。
私の載せたサンプルは『マルチバイト文字』を想定した書き方です。
オプション設定で『Unicode文字』を使う設定ですか?
No.5
- 回答日時:
★アドバイス
回答者No.4さんのアドバイス通りでしょう。
前回の質問でサンプルを載せましたがインデントを全角空白で書いています。
タブ文字だとインデントがなくなるためです。
よってサンプル・ソースでインデントされていれば全角空白だと考え
今後コピー&ペーストするときにタブ文字に修正して下さい。
※少なくとも私が貼り付けるサンプルは全角空白でインデントしてます。
この回答への補足
ありがとうございます。まだ自動入力動作自体は
できておりませんが、
お陰様でとりあえずエラーは出なくなりました。
度々すみません。もう一点お伺いしたいのですが、
頂いたサンプルプログラムの
if ( SendInput((UINT)(lpKey - Key),Key,sizeof(INPUT)) == (UINT)(lpKey - Key) ){
正常
}
else{
エラー
}
の部分をなくしても
setKeybrd( lpKey++, 'S', TRUE );
setKeybrd( lpKey++, 'S', FALSE );
の部分までで、キー入力されたことになっているのでしょうか?
おそらく私の使用しているプログラム自体に
問題があるのですが、上記のやり方で
実行しても「S」の自動入力がされていないみたいでして。
No.3
- 回答日時:
★補足要求です。
>変数の宣言・ヘッダのインクルードなどはまったくしていないのですがこれが原因なのでしょうか?
↑
『windows.h』はインクルードしていますか?
これがないとINPUTやLPINPUT型でエラーになります。
インクルードしていないのならば
#include<windows.h>
を1行追加して下さい。
・これ以外が原因ならば全ソースを貼り付けるか、エラー内容を貼り付けて下さい。
この回答への補足
すみません。#include<windows.h>をつけても下記のエラーです。error C3872: '0x3000': この文字を識別子で使用することはできません
error C2065: ' lpKey' : 定義されていない識別子です。
error C2227: '->type' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。
型は ''unknown-type'' です。
error C3872: '0x3000': この文字を識別子で使用することはできません
error C2227: '->ki' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。
型は ''unknown-type'' です。
error C2228: '.wVk' の左側はクラス、構造体、共用体でなければなりません
error C3872: '0x3000': この文字を識別子で使用することはできません
error C2227: '->ki' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。
型は ''unknown-type'' です。
error C2228: '.wScan' の左側はクラス、構造体、共用体でなければなりません
error C3872: '0x3000': この文字を識別子で使用することはできません
error C2227: '->ki' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。
型は ''unknown-type'' です。
error C2228: '.dwFlags' の左側はクラス、構造体、共用体でなければなりません
error C3872: '0x3000': この文字を識別子で使用することはできません
error C2227: '->ki' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。
型は ''unknown-type'' です。
error C2228: '.dwExtraInfo' の左側はクラス、構造体、共用体でなければなりません
error C3872: '0x3000': この文字を識別子で使用することはできません
error C2227: '->ki' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。
型は ''unknown-type'' です。
error C2228: '.time' の左側はクラス、構造体、共用体でなければなりません
error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
error C2365: 'setKeybrd' : 再定義; 以前の定義は '関数' でした。
c:\documents and settings\すがp\my documents\visual studio 2005\projects\golfp\tiem.cpp(27) : 'setKeybrd' の宣言を確認してください。
error C2078: 初期化子の数が多すぎます。
error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
error C2365: 'setKeybrd' : 再定義; 以前の定義は '関数' でした。
c:\documents and settings\すがp\my documents\visual studio 2005\projects\golfp\tiem.cpp(27) : 'setKeybrd' の宣言を確認してください。
error C2078: 初期化子の数が多すぎます。
error C2059: 構文エラー : 'if'
error C2143: 構文エラー : ';' が '{' の前にありません。
error C2447: '{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)
No.2
- 回答日時:
★前回回答した者です。
・こちらの環境は Windows XP SP2 です。
ちゃんと動作しています。
よってソースの記述に誤りがありそうな気がします。
補足にソースを貼り付けてみて下さい。
もしかしたら解決するかもしれません。
>(MDSNにはNT SP4以降と書いてありました。)
こう書かれているのならば
Windows NT SP4
Windows 2000
Windows XP
Windows Vista
でも使用可能という意味です。
この回答への補足
お世話なります。
実は知人のプログラムベースでコピペをしたら
動いたのですが、私のプログラムにそれを写したところ
エラーが出てしまいました。
変数の宣言・ヘッダのインクルードなどはまったくしていないのですがこれが原因なのでしょうか?
ちなみにプログラムはほぼそのまま
VOID setKeybrd( LPINPUT lpKey, WORD wVKey, BOOL bKeyDown )
{
lpKey->type = INPUT_KEYBOARD;
lpKey->ki.wVk = wVKey;
lpKey->ki.wScan = (WORD)MapVirtualKey( wVKey, 0 );
lpKey->ki.dwFlags = (bKeyDown ? 0 : KEYEVENTF_KEYUP);
lpKey->ki.dwExtraInfo = 0;
lpKey->ki.time = 0;
}
INPUT Key[ 2 ];
LPINPUT lpKey = Key;
setKeybrd( lpKey++, 'S', TRUE );
setKeybrd( lpKey++, 'S', FALSE );
if ( SendInput((UINT)(lpKey - Key),Key,sizeof(INPUT)) == (UINT)(lpKey - Key) ){
//”S”を押すと実行する既存のプログラム
}
といった感じで使わせてもらっております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
C#でSendInputを使ったサンプルを動かそうとしているのですが、よくわかりません
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
ビルド失敗 指定されたファイ...
-
Excelのエラーで困ってます。
-
Visual Studioのstrcpy_sについて
-
HEWを使用しているのですが、こ...
-
TeXのエラーメッセージ
-
レコードセットをcloseする所で...
-
適切な変換関数が存在しない???
-
error C3867 関数呼び出しには...
-
VB2008で定数に色の設定をした...
-
C2146を回避するにはどうしたら...
-
typedef定義型を使った関数につ...
-
Excel VBAにて特定のサイトから...
-
Handlesについて
-
実行時エラー:429 ActiveXコ...
-
バッチからsqlplusの接続エラー...
-
ASP.Net Title メンバーではない?
-
HEW4での通信エラーについて
-
fortranでプログラムを実行する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
Excelのエラーで困ってます。
-
fortranでプログラムを実行する...
-
バッチからsqlplusの接続エラー...
-
適切な変換関数が存在しない???
-
VB2008で定数に色の設定をした...
-
HEWを使用しているのですが、こ...
-
sys/time.hのインクルードがで...
-
BC30002: 型 'ListItem' が定義...
-
Handlesについて
-
Visual Studioのstrcpy_sについて
-
RightとLeft関数のライブ...
-
error C3867 関数呼び出しには...
-
デバッグ中のエラーのことで教...
-
コンパイルできません。
-
multiple definitionというエラー
-
ビルド失敗 指定されたファイ...
-
レコードセットをcloseする所で...
-
左側がクラス、構造体、共用体...
おすすめ情報