- ベストアンサー
EnumWindowsのコールバック関数
現在起動している、ウィンドのタイトルを取得したくて1週間前からプログラミングを始めました。 web上のサンプルコードを切った貼ったして、なんとかウィンドタイトルの取得まで漕ぎ着けたのですが、 EnumWindowsのコールバック関数で取得した文字列を呼び出し側で使うにはどうすればですか? ウィンドとか要らないですただ、取得した文字列をメッセージボックス に表示して、クリップボードに貼り付けたいだけです。
- みんなの回答 (4)
- 専門家の回答
関連するQ&A
- EnumWindowsのコールバック関数に文字列を
VBAでのWindows API関数EnumWindowsの定義は下記になっています。 Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long そこで、コールバック関数(lpEnumFunc)へのパラメータ(lParam)に文字列を指定したくて定義を下記のように変更しましたが旨く行きません。(定義をこのように変更することが許されているかも分っていませんが) 変更前:ByVal lParam As Long 変更後:ByRef lParam As String EnumWindowsのコールバック関数へのパラメータに文字列を指定する方法があれば教えて頂きたくよろしくお願いします。
- ベストアンサー
- Visual Basic
- コールバック関数
お世話になります。VB.NETにてソフト制作をしています。 今回、DLLの関数を利用する事になりましたが、うまく宣言できず困っています。御教授お願いします。 DLLはC++で作られており変更できません。 DLLは通信を補助するための物で、初期設定の関数と通信開始の物があります。 初期設定用を呼んだ後、通信開始を行なうようです。 説明には下記のような内容がありました。 【初期設定用】 initial(DWORD ip, LPNOTIFICATIONFUNC notificationFunc); ip=相手先のipアドレス notificationFunc=コールバック関数へのポインタ コールバック関数 WINAPI *PNOTIFICATIONFUNC( DWORD id, BYTE bySet1, BYTE bySet2, BYTE bySet3, BYTE *data, DWORD datasize ); 【通信開始用】 start(DWORD ip BYTE *code ); ip=通信元のipアドレス code=相手のコードの格納アドレス 以上 全体的にどう宣言したら良いのか解りません。 (特にコールバック関数の宣言と、ポインタへの引数の渡し方) すみませんが、御教授お願いします。
- ベストアンサー
- Visual Basic
- jQueryでコールバック関数を呼び出すには
お世話になっております。 最近、Javascriptを使い始めたばかりの初心者です。 Jqueryを使って動的にhtmlを生成した後にコールバック関数を呼び出して処理させることはできますか? たとえば下記のようなソースで <p>動的にhtmlを生成</p>が ブラウザにレンダリングされた後、処理を行いたいのですが、どのようにすればよいでしょうか? $(function(){ $("div#box").html("<p>動的にhtmlを生成</p>"); }); <html> <divi d="box">ここにhtmlを生成</div> </html> ちなみに↓こんな書き方をしても動きませんでした。 $("div#box").html("<p>動的にhtmlを生成</p>",function(){ //コールバック関数 alert("test"); }); ご回答よろしくお願いいたします。
- ベストアンサー
- JavaScript
- jQuery コールバック関数について
jQueryの勉強をしています。 コールバック関数というところで、下のようなソースがあるのですが、iとoriginalがどうして取得できているのかが分かりません。 <script> $(document).ready(function(){ $("#btn").click(function(){ $("#test").text(function(i,original){ return "旧: " + original + "/新: 文字が変わりました! (index: " + i + ")"; }); }); }); </script> </head> <body> <p id="test">文字が変わります</p> <button id="btn">旧/新 テキスト表示</button> </body> 教えていただけないでしょうか? 宜しくお願いします。
- ベストアンサー
- JavaScript
- jqueryを使いajaxで取得したデータをコールバック関数外で取得する方法
下記のようなスクリプトでjQueryを使い、ajaxでtextを取得します。 コールバック関数内では、もちろんtextが使えるのですが、コールバック関数外からはtextに一切アクセスできなくなります。 このようにグローバルからajaxで取得したデータは取得できないのでしょうか? prototype.jsでも同じ結果です。 グローバルからの取得法、ご存知の方いらっしゃいましたらご教示頂ければと思います。 <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"><!-- $(document).ready(function (){ $.get("./sample.txt",function(text){ alert(text); // textが取得できる }); }); alert(text); // textが取得できない // --></script>
- 締切済み
- JavaScript
- Jsonpのコールバック関数に内に引数を渡すには?
APIで返されたJsonpコールバック関数に引数を渡したいのですが、やり方が判りません。 それともそもそも、間違っていて 1.引数を渡さない 2.コールバック関数内のデータを一旦変数にいれてコールバック関数内から取り出す。 3. 2で取り出したコールバック関数内のデータと1で渡そうとしていた引数を使う。 とやったほうがいいのでしょうか。 当方経験が浅いためよくわかっていません。基本的な間違いの可能性が高いと思います。 識者の方ご教授下さい。お願いします。 function start(){ var str = "渡したい引数"; var param = new Object(); param.keyword = '東京'; param.inputcharset = 'utf8'; param.outputcharset = 'utf8'; param.format = 'jsonp'; param.callback = 'jsonp4travelAPI'; var url = 'http://api.4travel.jp/Ver1/SearchAlbum.php?'+obj2query( param ); // script 要素の発行//ここでAPIへリクエストを送る。 var script = document.createElement( 'script' ); script.type = 'text/javascript'; script.src = url; document.body.appendChild( script ); } // 4travel検索終了後のコールバック関数 function jsonp4travelAPI ( data ) { // データが取得できているかチェック // //ここに渡したい引数も持ってきたい。でも str is not definedになります。 alert(str); } // オブジェクトからクエリー文字列を生成する関数 function obj2query ( obj ) { var list = []; for( var key in obj ) { var k = encodeURIComponent(key); var v = encodeURIComponent(obj[key]); list[list.length] = k+'='+v; } var query = list.join( '&' ); return query; } window.onload =start;
- ベストアンサー
- JavaScript
- TimerProc コールバック関数を利用する方法
タイマを使いたくてメッセージマップでOnTimerを追加しましたが、 CWnd::SetTimerの第3パラメタに何を設定したらよいかわかりません。 lpfnTimer WM_TIMER メッセージを処理するためのアプリケーションが用意した、 TimerProc コールバック関数のアドレスを指定します。 このパラメータが NULL の場合は、WM_TIMER メッセージはアプリケーションの メッセージ キューに置かれ、CWnd オブジェクトによって処理されます。 とあり、NULL指定のサンプルはあるのですが、 「TimerProcコールバック関数のアドレスを指定する法」を試したいのです。 関数のアドレスというのが何をいっているのか理解できないのですが 試しに void CXXXCtrl::method1() { SetTimer(timerID, 10000, &OnTimer); } void CXXXCtrl::OnTimer(UINT nIDEvent) { // 処理 COleControl::OnTimer(nIDEvent); } としたところ error C2276: '&' : 仮想関数のアドレスを取ろうとしました。 のエラーになってしまいます。
- ベストアンサー
- C・C++・C#
- リッチテキストボックスで、クリップボードに影響なく、削除したいのですが
リッチテキストボックスで、クリップボードに影響なく、削除したいのですが・・・ C++/CLI、.NET環境でプログラミングを勉強しています。 richTextBox->cut()メソッドでも文字は削除されるのですが、クリップボードにその文字がコピーされてしまいます。 クリップボードに影響を与えず、文字を削除したいのですが、どのような方法がありますか? richTextBoxクラスのメンバを見ましたが、それにあたるメンバ関数が見つかりませんでした。 (T_T) 見落としているだけでしょうか?英語がわからないので、よけい苦労しています。 誰か、詳しい方お願いします。
- 締切済み
- C・C++・C#
- ブラウザなどで入力された文字列を取得する方法
ブラウザやワードのようなアプリケーションで入力された文字列(特に漢字)をプログラムで取得する方法を探しています。 プログラム内で用意したテキストボックスに入力された文字列を取得するサンプルコードはそこかしこで見かけるのですが、 他のアプリケーションで入力した文字列を取得するような方法がどうしてもわかりません 文字列を取得するImeAPIの中のImmGetCompositionStringの存在や アクティブウインドウのハンドルを取得するGetActiveWindowの存在は知っているのですが この2つを組み合わせて出来るものなのでしょうか? ほかにも「フック」を使うという方法も考えましたがIMEで入力が確定した文字列を 「フック」してくることは可能なのでしょうか? 「これなら取得できる」といった良い方法があれば教えていただきたいです。 長文になりましたがなにとぞよろしくお願いいたします。 開発環境:windows7 64bit 開発言語:できればC言語 ↓テキストボックスに入力された文字列を取得するサンプルコード↓ http://shinshu.fm/MHz/95.83/archives/0000025041.html#comments http://www.atmarkit.co.jp/fdotnet/dotnettips/875imeyomi/imeyomi.html ↓IME APIの関数リスト↓ http://msdn.microsoft.com/ja-jp/library/cc422019.aspx
- ベストアンサー
- その他(プログラミング・開発)
- コールバック関数が動きません。【音処理】
当方、音に関するプログラミングをしています。 その中で、解決できない問題が発生しましたので、ご助言・ご協力頂ければ、と思い質問させていただきます。 尚、ソフトは、Microsoft Visual C++ 2010 Express を使用しております。 言語は、C/C++です。 作成したのは、音を再生する、というだけのプログラムです。 初めに、Win32プロジェクトを使い、一部、次のようにプログラムを作成しました。 ~~~~~~ HWND hWnd=CreateWindow(~) ~~仮の適当なウインドウを作成する~~ ~~~~~ MMRESULT ret = waveOutOpen( ~~音をオープンする処理~~ &m_hWaveOut, uDevID, &m_wfxWaveForm, (DWORD)hWnd, 0, CALLBACK_WINDOW); } ~~~~~ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { ~~ 再生に関する処理 ~~ } 音データは大きいので、分割して再生し、一つの分割データが再生し終わると、WndProcが呼ばれて 次の再生データを入れ… というような処理です。 大事なのは、コールバック関数を使っているところです。 このプログラムは無事動きました。 しかし、ここから問題が起きました。 ちゃんとしたGUIを実装する為にWindowsフォームアプリケーション、にてプログラムを作成し直した場合、 なぜかコールバック関数の部分だけが動かなくなってしまうのです。 他の部分は問題なく、動きます。 ウインドウから送られてくるメッセージが「Windowsフォームアプリケーション」の場合だけ 違ったりするのでしょうか? 何かわかる方いらっしゃいましたら、ご助言・ご協力お願いいたします。
- 締切済み
- C・C++・C#
お礼
すばらしいです。 動作は、希望通りです。 まだ理解するまでに時間が掛かりそうですが、がんばります。 本当にありがとうございました。