• ベストアンサー

C++Builder 6 でkeybd_event

C++Builder 6 でkeybd_eventを使っています 文字を送るときに仮想キーコードにすると未定義と出て 文字コードにすると送れます .hが通ってないのでしょうか? けど、VK_ESCAPE などは使えます。??? そういう仕様なのでしょうか? すいませんがよろしくお願いいたします

  • gotyan
  • お礼率91% (172/188)

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

  • ベストアンサー
noname#4252
noname#4252
回答No.2

C++Builderでは VK_A ~ VK_Z VK_0 ~ VK_9 は定義されていません。 代わりに 'A' ~ 'Z' '0' ~ '0' を使いましょう。

gotyan
質問者

お礼

ありがとうございます そういう仕様だったのですね 助かりました。 ほっとしました(入れ直さなくてすみます)

その他の回答 (1)

noname#4564
noname#4564
回答No.1

  VBとDelphiでしかやったことがありません(笑)が、そのような現象は聞いたことがありません。 定数名のスペルを間違えているのでは?

gotyan
質問者

お礼

ありがとうございます そうですよね。。。。。そのせいで昨日は徹夜でした。 何度やっても出てきます VC++も調子おかしいので 入れなおしてみようかな。。。。

関連するQ&A

  • C++Builderの選択

     いつも勉強させていただいています。どうぞよろしくお願いします。  今手元にあるアプリ(C++Builder5.0のソースコード付き)をいじりたく、 これを機会に初めてC++の勉強をしたいのですが(経験のある言語は Fortran、VBです)、C++Builderのどれを購入するかで迷っております。  ポイントとしましては、 ・上のC++Builder5.0のコードがコンパイル可能なもの  (先日、無料のBorland C++Compiler5.5をダウンロードしてコンパイルを試みても  できませんでしたorz (vcl.hというファイルが足りないようです)が、  C++Builderであればバージョン違いでもコンパイルできるのでしょうか?) ・書籍が比較的多いもの。(調べているとC++Builder6は比較的多そうな?気がしたのですが。。。) ・今後も暫く使えそうなもの。(C++Builder5 Personalとかかなり安いようなのですが、  皆さんもっと新しいもので開発なされているという事でしょうか。。。?) ・¥は7~8万くらいまで?  PersonalとProfessionalの違いや制限もよく分からないので、 もしお詳しい方がいらっしゃいましたら、ぜひ教えていただければと思います。  どうぞよろしくお願いします。

  • C/C++でIEの選択範囲を取得する方法

    C/C++で、IE上で範囲選択している場合に、別のアプリケーションからその選択範囲を取得する方法をおしえてください。 今は、IEにCTRL+Cを送って、クリップボード経由で取得する方法を検討しています。 以下のようなコードで、範囲選択をしているウィンドウのタイトルは取れているのですが、クリップボードへのコピーができていません、ハンドルが違うような気がするのですが... どうすればよろしいのでしょうか?? char buf[1000]; HWND hWndFore; /* フォアグラウンドウィンドウの取得 */ hWndFore = GetForegroundWindow(); /* ウィンドウタイトルの表示 */ GetWindowText(hWndFore, buf, 1000); //MessageBox(NULL, buf, "DoGetForegroundWindow", MB_OK); keybd_event(VK_CONTROL, 0, 0, 0); keybd_event('C', 0, 0, 0); keybd_event('C', 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); よろしくお願いいたします。

  • C++Builder6 での複素数計算

    C++builder6 で複素数計算が出来なくて困っています、 UNIT1.CPPのヘッダー部分に  #include <vcl.h>  #pragma hdrstop  #include <iostream>  #include <complex.h>  #include "Unit1.h" //-----------------------------  #pragma package(smart_init)  #pragma resource "*.dfm" を書いて イベントハンドラ部分に変数の宣言   complex<double> z; として緑色三角形の実行ボタンをクリックすると   「未定義のシンボル complex」 と言うエラーが発生します、 この解決方法を教えて頂ければ幸いです、宜しくお願いします。 (なお C++builder5 では何の問題もなく複素数計算のソフトが出来ていました)   

  • C++ Builder6のイベントハンドラーの参考書

    C++Builder6の初心者です。 イベントハンドラーの使い方が分かりません。 確かに、例題を挙げたものが出版されておりますが 記述を読んでも何故そうなるのか理解できません。 初心者にでも参考になる本等がありましたら教えて 頂きたくお願いします。

  • 仮想キーコード、スキャンコードの拾い方

    Cで、ファンクションキーを含む、キーボードのオン・ オフした際の、仮想キーコード、及び、スキャンコード を拾いたいんです。 画面で何を押したか確認できるような簡単なAPを業務の 必要にせまられて作りたいのですが、サンプルコード とかどこかに落ちていないでしょうか。 仕様 例えば、vf3, vf4, vf5の各キ-を押したとき、以下の スキャンコ-ドと仮想キ-コ-ドを発生する。 vf3 : 0x45+E0, VK_NUMLOCK vf4 : 0x46, VK_OEM_SCROLL vf5 : 0x29, VK_DBE_SBCSCHAR/VK_DBE_DBCSCHAR 雑誌の付録にあったよ、とか以前こんなの作ったこと あるよ、とかどんな小さな情報でも結構です。 ご存知の方がいましたらなにとぞよろしくお願いします。 m(__)m m(__)m m(__)m

  • C++Builderでの警告

    C++Builderでユーザヘッダmy.hを インクルードしてコンパイルさせたところ [C++ 警告] my.h(8): W8058 ヘッダに初期化データが含まれているためプリコンパイルヘッダーを作成できない との警告がでました原因はなんでしょうか?

  • C++BuilderでHelloWorld

     『プログラミングWindows』に載っている以下のコードをC++Builder6で実行するにはどうすればいいですか? #include <windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { MessageBox(NULL, TEXT("Hello, Windows 98!"), TEXT("HelloMsg"), 0); return 0; }

  • C++BuilderのコードをVC++用に変更するには?

    環境 WIN98 VC++6.0 MFC にて ネット上でちょうど私が知りたいことが載っているサイトを見つけました。 それは付箋ソフトの作り方を解説しているサイトです。 http://www.zdnet.co.jp/developer/0307/18/dvn06.html しかしながら、そのサイトではC++Builderを使っています。 C++BuilderのコードをVC++用に変更したいのですが、 お分かりでしたお教えください。 知りたいのは、以下のコードです。 C++Builder専用のコードかと思いましたが、調べるとSubStringはAPIだったのでVC++でも使えると思います。 Pos()は調べても分からなかったのですが、変わりになる関数は有るのでしょうか? ********************** // 「,」で区切られた文字列から要素を切り出す。 // メモデータのロードに使う static AnsiString GetToken(AnsiString &s) { AnsiString ret; // ,が文字列に含まれる場合、 // ,より前の文字列を戻り値とし、 // 引数の文字列の,以前を削除する。 // 例えば引数の文字列が"1,2,3"の場合、 // 戻り値は"1"、引数の文字列は"2,3"となる。 int pos=s.Pos(","); if (pos>=1) { ret=s.SubString(1,pos-1); s=s.SubString(pos+1,s.Length()-pos); return ret; }

  • c++builder6で複素数計算教えて下さい

    私は今までwindows xp を使い c++builder5 で復素数の電気関係の簡単なソフトを作って来ました、 これからはc++buildre6で複素数計算をさせたいのですが下記の様なエラーが発生して前に進めず に困っています(OS は windows xp 及び windows 8 でエラーは同じ様に発生) unit1.cppの  ヘッダー部分に #include <complex.h> を書き  イベントハンドラ部分に complex<double> z; と書いて 実行ボタンを押すと  complex<double> z; の行で 「未定義のシンボル complex」 のエラーが発生します 上記の解決方法を教えて頂ければ幸いです。

  • Windows7-VB6でのアクティブウィンドウキャプチャ

    Windows7-VB6でのアクティブウィンドウキャプチャ お世話になります。 Private Declare Sub keybd_event Lib "User32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) Private Const VK_LMENU = &HA4 Private Const VK_SNAPSHOT = &H2C Private Const KEYEVENTF_EXTENDEDKEY = &H1 Private Const KEYEVENTF_KEYUP = &H2 Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long) Private Sub Command1_Click() Command1.SetFocus DoEvents Load form2 Clipboard.Clear keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY, 0 keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0 DoEvents keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0 keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0 ※form2.picPrint.Picture = Clipboard.GetData() 上記コードはWinXPであれば問題なく動作するのですが Win7ではform2のピクチャボックスにイメージが貼り付けられません ※行にブレイクを入れて、一旦プログラムを停止し再開するとOKで その他にもALTキーの送信をしないでprtscrのみでも動作可能です。 win7-vb6でアクティブウィンドウのキャプチャを クリップボードを使用し、フォームのピクチャボックスに貼り付けることは 可能でしょうか

専門家に質問してみよう