• ベストアンサー

WinApiを使って、キーボード入力をプログラムのみによって擬似的に再

WinApiを使って、キーボード入力をプログラムのみによって擬似的に再現する方法を、どなたか教えていただけないでしょうか。 例えば、「メモ帳のウィンドウ上でクリックをすると特定の文字('a'など)が書かれる」「プログラムを実行するとキーボードが押されたときに発生する信号をコンピュータに送って、キーボードの'a'が押されたとコンピュータに錯覚させて、メモ帳に'a'を書かせる」などといったことがやりたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • rk_les
  • ベストアンサー率63% (23/36)
回答No.1

これはC#でいいのでしょうか? 実際に記述したコードがあるのであれば乗せていただくと回答もしやすいです。よろしくお願いします

その他の回答 (1)

  • titokani
  • ベストアンサー率19% (341/1726)
回答No.2

とりあえずはSendInputでしょうか。 http://msdn.microsoft.com/ja-jp/library/cc411004.aspx

nikoru222
質問者

お礼

ありがとうございました。解決できました。

関連するQ&A

  • キーボードの入力って・・・

    2台のPCを一台のモニタで使うための機器をつないでいて、 ALTx2、↑とキーボードを入力することで それぞれのパソコンの画面に帰ることができます。 しかし頻繁に変えたい時意外と面倒なので マクロソフトに登録して実行を試してみたのですが、 失敗しました。 これはなぜなんでしょうか? キーボードから直接押さないと切り替わってくれません。 キーボードの接続端子から信号がこないとだめなんでしょうか・・・ もしどうしてもだめなら、キーボードで二回CTRLを押したら 「ALTx2、↑」の信号が送られる、というようなことが可能なツールってないでしょうか? それならキーボードから信号が送られるだろうし・・どうでしょうか(^^; どなたかご助言をお願いいたしますm(__)m 機器はBKVM-P201というものです。

  • アプレットのキーボード入力において

    Dosプロンプトよりアプレットを起動して、キーボード入力によるアクションの実行時がうまく動作しません。 例えばAとBのボタンを作成してBボタンにショートカットを設定します。 この場合Aボタンをクリックしてからでないとショートカットが有効になりません。(アプレット自体をクリックしてからでも駄目です。) テキストフィールドにキーボード入力によるアクションはまったく反応しません。

  • キーボードに入力させるには・・・・

    VBでキーボード入力を自動でしてもらうプログラムを作りたいのですが、参考にしたいのですごく簡単な ソースを書いてもらえないでしょうか?たとえば一秒間「a」と入力させるプログラムなど・・・・ 知識の深い方よろしくお願いしますm(__)m

  • VB.NetのプログラムでVB6.0のプログラム2

    お世話になります。 VB.Netで作成されたプログラムAがあります。 VB6.0で作成されたプログラムBがあります。 プログラムBはイベント待ち状態になっており、特定のイベント(ボタンクリックイベント等)で特定のプロシジャーを実行するようになっております。 プログラムAからプログラムBの特定のイベントを発生させる、もしくはプログラムBの特定のプロシジャーを実行させる方法を探しております。 前回同じような質問をさせていただきましたが、こちら側からWindowsイベントとVB6.0のイベントの指定の説明が抜けておりましたので、改めて質問をさせていただきます。 何卒よろしくお願い申し上げます。

  • キーボードからの入力ができません

    なぜか、キーボードからの入力ができなくなってしまいました このテキストはスクリーンキーボードで打っています デバイスマネージャーのキーボードが黄色三角になっています 日本語PS/2キーボード 106/109キーです プロパティー(全般)をみると  このハードウェアのデバイスドライバーを読み込むことができません  ドライバーが壊れているか、ドライバーがない可能性があります。コード39 となっています。 ドライバーのタブから ドライバーの更新 をクリックして  コンピューターを参照してドライバーソフトウェアーを検索します をクリックして、検索をすると  このデバイス用のドライバーソフトウェアーが見つかりませんでした となります 同じく、ドライバーのタブから ドライバーの更新 をクリックして  ドライバーソフトウェアーの最新版を自動検索します をクリックすると  デバイス用のソフトウェアーが見つかりましたが、  このドライバーのインストール時にエラーが発生しました となります どのようにしたら治りますか、お知恵をお貸しください

  • キーボード入力がおかしくて@が打てない

    キーボード入力がおかしいんですがこのサイトで以下の対処方法が載っていたので実行しようとしたんですが9項のモデルの中に日本語 PS/2 キーボード (106/109 キー Ctrl + 英数)" がでてきません。どうしたらいいでしょうか。 1. [スタート] ボタンをクリックし、[コントロール パネル] をクリックします。 2. [システム] アイコンをダブルクリックして、[システムのプロパティ] を開きます。 3. [ハードウェア] タブをクリックして、[デバイス マネージャ] をクリックします。 4. [デバイス マネージャ] のメニュー バーの [表示] から "デバイス (種類別)" を選択します。 5. デバイスの一覧から [キーボード] をダブルクリックして、変更する 101/102 配列のキーボード デバイス表示をダブルクリックします。 6. [ドライバ] タブをクリックし、[ドライバの更新] をクリックして、[ハードウェアの更新ウィザード] を開始します。 7. [一覧または特定の場所からインストールする (詳細)] を選択して、[次へ >] をクリックします。 8. 検索とインストールのオプションを選択する画面で、[検索しないで、インストールするドライバを選択する] を選択して、[次へ >] をクリックします。 9. デバイス ドライバを選択する画面で、[互換性のあるハードウェアを表示] のチェックを外して、以下のモデルを選択します。 • [製造元] の一覧から "(標準キーボード)" • [モデル] の一覧から "日本語 PS/2 キーボード (106/109 キー Ctrl + 英数)" 10. [次へ >] をクリックして、画面の指示に従います。

  • キーボード入力がおかしい

    日本語用キーボードを使用しているのに、英語用キーボードとして認識されてしまいます。 例)[半角/全角]で`が入力されます。 この現象は、Excel、WordなどのOffice系のソフトやIEなどで発生しています。(OSはWinXPです。) ただし、メモ帳でだけは通常の日本語キーボードとして入力を受け付けます。 デバイスマネージャーを見ると、ちゃんと106の日本語キーボードと出ています。 しかし、キーをたたくと入力される文字は英字キーボードとして認識されているようです。 現在のキーボードのドライバを削除し、再度インストールしてみましたが、状況は変わりません。 他にどこかに設定などがあるのでしょうか?

  • キーボード入力がおかしいのですが

    東芝のdynabookTX/980LS、OSはwindowsXPを使っているのですが、最近キーボード入力が時々おかしくなるので困っています。 office2003のoutlookやwordを使っているときに急に、キーボードを打つたびにそれまで打った分が繰り返し入力されます。 具体的には、「秋」と入力したいとすると、 (打ったキー:表示) a:あ k:ああk i:ああkああき space:ああkああき秋 enter:ああkああき秋秋 となります。 こうなった時は、outlookでもwordでも同じ状態になり、急に元に戻るときも、同時に直ります。 こうなった時にメモ帳やワードパッドへ打つと正常に入力されます。 短文を打つだけでいちいち余分に自動入力された長い部分を消さなければならず、かなりいらいらします(とりあえずメモ帳で打ってからコピペしておりますが)。 一応ネットで調べてみたのですが、調べ方が悪いのか、同じような症状についての記述も見つけられません。 アドバイスお願いいたします!

  • キーボード入力が出来なくなってしまいました。

    知識が無いのにもかかわらず、プログラムの削除からいくつか消してしまいました。再起動しログインするためにパスワードを入力しようとしたところ、反応がありません。画面右下には、「A」「般」の文字は表示されていますが、IMEの赤いマークがグレー色になってまったく反応がありません。何か関係があるのでしょうか?キーボードが反応しなくパスワードが入力できないためにログインできないので、どうしたらいいのかわかりません。無知な私に教えてください。お願いいたします。

  • プログラム実行中にプログラムを書き換えるには?

    実行中のプログラムの中でそのプログラムの一部を書き換えて保存するにはどうすればいいですか? 例えば次のようなプログラムの場合、このプログラムの中でTEXT("最初の文字列");の部分の文字列を別な文字列に変更しプログラムを更新したいです。 (プログラム終了後にもう一度実行すると「moji[20]=」の部分は前回実行時に書き換えた文字列が代入されているようにしたい) #include<windows.h> int WINAPI WinMain(HINSTANCE hinst,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int ncmdshow){ TCHAR moji[20]=TEXT("最初の文字列"); MessageBox(NULL,moji,TEXT("文字列表示"),MB_OK); return 0; } --- 実行環境 --- Microsoft Visual C++ 2010 Express WIN32 ユニコードビルド C言語

専門家に質問してみよう