tsukasa-12r の回答履歴
- メソッドの中のオブジェクト?
メソッドの中のオブジェクト? オブジェクト志向を勉強しています。WSHも勉強しています。 オブジェクトはメソッドとデータで構成されていると学びました。 下記URLのWshNetworkオブジェクトではメソッドの中に更にオブジェクトがあるように見えます。 メソッドの中にオブジェクト、プロパティの中に更にオブジェクトを持つことがあるんでしょうか? http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh15/cformwsh15_01.html
- ベストアンサー
- その他(プログラミング・開発)
- mellow91
- 回答数3
- Disposeの動き
VB2010でプログラム開発を行っています。 VB2010は初心者で、インターネットを使って調べながら構築していますので、ほとんど意味を理解していない状態です。 この度下記の文を書いたのですが、Point1で「Cmd.Dispose() 」を入れないとPoint2で「OleDbException が発生しました エラーを特定できません」のエラーになってしまいます。 そこで2つの疑問が出てきたので教えていただけないでしょうか。 疑問1: なぜ、Point1でDisposeしないとエラーになってしまうのか。 疑問2: Point1でDisposeすると、内容が破棄されると思っていたのですが、そのまま処理が進むようです。 なぜ、再度「Dim Cmd As New OleDbCommand」の宣言が必要無く、トランザクションも続いているのでしょうか。 また、よりスマートな書き方があればご教授いただけるとありがたいです。 よろしくお願いします。 Module Module1 Public Con As New OleDbConnection Public Cmd As New OleDbCommand Public bTrans As OleDb.OleDbTransaction Public sb As New System.Text.StringBuilder() End Module Private Sub Btn_Kanryo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Kanryo.Click Dim ExResult AS Integer '新規トランザクションの開始。 bTrans = Con.BeginTransaction 'コマンドオブジェクトにトランザクション関連付け Cmd.Transaction = bTrans 'DB更新1 sb = New System.Text.StringBuilder sb.AppendLine("UPDATE A ") sb.AppendLine("SET") sb.AppendLine(" A_AA = '1'") sb.AppendLine(" WHERE") sb.AppendLine(" A_BB='123'") Cmd.Connection = Con Cmd.CommandText = sb.ToString ExResult = Cmd.ExecuteNonQuery() 'ストアドプロシージャ―処理 Cmd.Connection = Con Cmd.CommandType = CommandType.StoredProcedure Cmd.CommandText = "AAA.ABC" Dim outPara As New OleDbParameter("ERR_FLG", OleDbType.Decimal) outPara.Direction = ParameterDirection.Output Cmd.Parameters.Add(outPara) Cmd.ExecuteNonQuery() Point1⇒ Cmd.Dispose() 'DB更新2 sb = New System.Text.StringBuilder sb.AppendLine("DELETE ") sb.AppendLine(" B") sb.AppendLine(" WHERE ") sb.AppendLine(" B_AA='1'") Cmd.Connection = Con Cmd.CommandText = sb.ToString Point2⇒ ExResult = Cmd.ExecuteNonQuery() bTrans.Commit() End Sub
- ベストアンサー
- Visual Basic
- hatena13
- 回答数1
- ウィンドウプロシージャの書き方について
VC++Expressで開発しています。 このたびWin32APIを使用してみたいと思い以下のようなマウスの座標を常に表示するプログラムを書いてみました。 Form1.h ----------------------------------------------- #pragma once #include <Windows.h> #include <stdio.h> #pragma comment(lib, "user32.lib") //(略) LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wp,LPARAM lp) { switch(msg) { case WM_TIMER: switch(wp) { case 1: POINT point; GetCursorPos(&point); label2->Text="X:"+point.x; label3->Text="Y:"+point.y; break; } default: return DefWindowProc(hwnd,msg,wp,lp); break; } } private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { HWND hmyWnd = static_cast<HWND>(this->Handle.ToPointer()); SetTimer(hmyWnd,1,100,NULL); } ----------------------------------------------- コレを実行してみると warning C4441: '__stdcall ' の呼び出し規約が無視されました。代わりに、'__clrcall ' を使用しました という警告が出た後、ウィンドウが表示されますがラベルの内容は変化しません。 そこで質問させてください。 まず、この様な警告が出る理由はなんでしょうか? 私はウィンドウプロシージャの使い方が間違っていると思うのですが、それより先は調べることが出来ませんでした。 次に前述の疑問に関連してですが、「イベント駆動型のプログラムを書く際はメッセージキューにたまったメッセージをそれぞれ適切なウィンドウプロシージャへ送る」と言う風に理解しているのですが、どのサイトでプログラム例を見てもLRESULT CALLBACK WndProc(略)という受け取る側の関数を書いているだけで、肝心の送る側の関数を記述していません。 そのため、私も見よう見真似で受け取る側の関数だけ書いたのですが、これではもちろんどこに書かれているかも分からない送り側の関数と関連付けは出来ませんよね? 実際にウィンドウプロシージャやその他メッセージ処理ではどのようにして関連付けを行っているのですか? また、私はプロジェクトを作成したときに最初に出てきたForm1.hと言うファイルにコードを書き込んでいるのですが、これは後々問題になるでしょうか? 少しまとまりの無い質問となってしまいましたが、どうかお答えください。 お願いしますm(_ _)m
- ベストアンサー
- C・C++・C#
- ikasumiramen
- 回答数2
- objective-cで回転を抑制したい
Xcode4.3 iOS SDK 5.0で開発しています。 ある処理の実行中だけ、画面が回転しないようにしたいのですが、 どのようにすれば良いでしょうか? shouldAutorotateToInterfaceOrientationで NO を返してしまうと その画面自体が回転しなくなってしまいますので使用できません。 画面を表示中にある処理が実行されていたら、画面を回転しない。 もしくは、ある処理が終了するまで、画面の回転を抑制する という事を実現したいのですが、方法が見つかりませんでした。 どなたか、ご教授よろしくお願いします。
- 締切済み
- その他(プログラミング・開発)
- tirtirtir345
- 回答数1
- API Hooking の実用性・実効性について?
(1) API Hooking Tutorial http://ruffnex.oc.to/kenji/text/api_hook/ (2) Advanced Windows (下巻) 日経BPソフトプレス により API_Hooking に関する勉強してその基本原理を理解したつもりです ⇒ 細い所では多々不明な箇所もありますが・・・・ しかしながら上記2点の資料や関連サイトを繰返し眺めても分からない所があります それは『 API Hook はどんなソフトのどんな機能として現実に役立っているか? 』という点です APIをHookする動作原理は概ね分かりましたが、この原理を活用しているソフトにはどのようなものがあるのでしょうか? またそのソフトは如何なる機能を実現する為にAPI Hookを使用しているのですか? 想像力・創造力が欠如している私にはAPI Hookの実用性・実効性が分かりません API Hookを活用しているソフトをご存知でしたらお教え願います また具体的なソフトではなくとも『私はこういう問題を解決する為にAPI Hookを利用した』との体験談でも結構です 宜しくお願い申し上げます
- どのデータ型で宣言すればいいのでしょうか?
VBAです。 http://okwave.jp/qa/q1318017.html を参考に、現在パソコンに入ってるプリンタ名の一覧を取得したいのですが ***************************************** Sub アクティブプリンターを取得する() Set Win = CreateObject("Shell.Application") For Each Obj_Item In Win.Namespace(4).Items Debug.Print Obj_Item.Name Next End Sub ***************************************** を実行すると、 「Win」と「Obj_Item」が 「変数が定義されていません。」というコンパイルエラーになってします。 なので、 ***************************************** Dim Win, Obj_Item As データ型 ***************************************** で、変数を宣言すればいいと思うのですが、どのデータ型で宣言すればいいのでしょうか? ご回答よろしくお願いします。
- ベストアンサー
- Visual Basic
- bvbnmnbv
- 回答数1
- C#についてです
複数のグラフを作成しようと思い、2つのクラスを作りました。 1つ目のクラスで、下のように書き、 public class clsWave { public const int count = 1024; public int[] data = new int[count]; public byte range; public double[] realValue = new double[count]; public PictureBox pcb; public Pen myPen; ; public void Draw(Graphics g, int v) { int h = pcb.Height; int w = pcb.Width; int stpW = w / count; // X座標 Point[] lp = new Point[count]; for (int i = 0; i < data.Length; i++) { lp[i] = new Point(i * stpW, h - (int)(realValue[i] / (v * 8) * h)); } g.DrawLines(myPen, lp); } } もう一つのクラスで、グラフを下のように作りました。 clsWave BI = new clsWave(); clsWave BV = new clsWave(); clsWave CI = new clsWave(); clsWave CV = new clsWave(); clsWave EI = new clsWave(); clsWave EV = new clsWave(); clsWave SI = new clsWave(); clsWave SV = new clsWave(); この、グラフを配列にしたいのですが、私の力では、まだわかりません。 どのように作ればよいのでしょうか?教えてください。よろしくお願いいたします。
- ベストアンサー
- C・C++・C#
- takeru0318
- 回答数1
- C# Splitと配列の複合方法
こんにちは、 ”てすと、です。¥四月、寒い。” のような文字列があり これを¥で区切り、さらにカンマで区切って(Splitでここはできたのですが) 結果を下記のように配列に格納したいと思うのですが、どのように記述すればよいでしょうか? 配列(0,0)=”てすと” 配列(0,1)=”です。” 配列(1,0)=”四月” 配列(1,1)=”寒い。” 文字列の内容が定まっていないため配列の要素数が変動してするものでして。
- ベストアンサー
- その他(プログラミング・開発)
- lensent
- 回答数1
- C++ WMI レコード件数取得方法
お世話になっております。 C++でWMIを使用して、別PCのディスク容量を取得しようと思っています。 SQLの検索結果の「レコード件数」を取得する方法はありますでしょうか? (レコード件数で配列サイズを決めようとしています) ADOとかだとRecordCountとかで取得出来るのですが・・・。 COMオブジェクトで、IUnknownインターフェイスを使っているらしいので、 それの参照カウントって物の件数を調べられたら可能かとも考えましたが、 わかりませんでした・・・。 すみませんがご教授ください>< 以下が記述途中のソース抜粋です。 ===== HRESULT hres; ULONG uReturn = 0; IWbemServices *wbem_services = NULL; IEnumWbemClassObject *wbem_enumerator = NULL; IWbemClassObject *pclsObj = NULL; unsigned long *DiskSize; //本当はクラス使用です。 hres = wbem_services->ExecQuery(L"WQL", L"SELECT * FROM Win32_LogicalDisk WHERE DriveType=3", WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &wbem_enumerator); ↓↓↓↓↓ //ここで、RecordCountのように件数を取得がしたい。 DiskSize = new int[wbem_enumerator->RecordCount]; ↑↑↑↑↑ while (hres == S_OK) { hres = wbem_enumerator->Next(WBEM_INFINITE, 1, &pclsObj, &uReturn); } delete [] DiskSize;
- 締切済み
- C・C++・C#
- Missing0001
- 回答数1
- C♯ exeの起動結果を返す方法
C♯を学習中です。 以下のようなプログラムを作りたいと考えていますが、実現方法が分からないので質問をさせていただきます。 1.システムAがシステムBを起動する。 2.システムBは起動に成功したかシステムAに応答を返す。 起動成功の場合:0 起動失敗の場合:-1 3.システムAはシステムBからの応答を受け終了する。 4.システムBはコンソールに「Hello」を表示する。 上記の2の応答をどのようにすれば良いか分かりません。 returnで起動結果を返すと4の処理が行えないので困っています。
- 締切済み
- その他(プログラミング・開発)
- Makiyou
- 回答数2
- c# ドッキングしているコントロールを取得するには
こんにちは。c#初心者です。 コントロールを制作しているのですが、その途中で「System.Windows.Forms.Splitter」のようにドッキングしているコントロールに対して働き掛ける処理で、そのドッキングしているコントロールを取得する方法が分からず苦戦しています。 視覚化すると、□を現在制作中の「SampleControl」、■を任意の「Control」、■、□共に「Dockプロパティ」が「DockType.Left」とすると、 ■□ のように並んでいる際に□内部で■を取得する方法です。 どなたか詳しい方がいらっしゃいましたら教えていただけませんか?
- VB.NET ToolTipの表示条件について
VB2010、Winアプリ こんにちわ。 フォーム上に存在するTextBoxやLabelコントロールに ToolTipを表示させています。 ToolTipを表示させるための条件とかって設定出来ないんでしょうか? その条件というのは 「TextBoxやLabelコントロールの幅以上のテキストが入力されている」 場合のみToolTipを表示させたいというものです。 思いついた方法としては コントロールの幅と入力文字数を係数として格納しておき MouseのHoverとかのイベント時に文字数チェックを行い その判定により表示するかしないかを決定する、 というものぐらいしか自分には思いつきませんでした。 もっとスマートな方法があれば教えていただければと思います。 よろしくお願いします。。。 (TextBoxのWordWrapプロパティで折り返しを判断しているものを 見れれば楽にできるのかなぁなんて思ったりもしましたが どう判断しているかわからなかったもので。。。)
- ベストアンサー
- Visual Basic
- Rilakkuma_san
- 回答数1
- C# タスクバーを隠したフォーム固定の方法
前略 ・C#の初心者です。 ・先日このMSN相談箱でtsukasa-12rさんからタスクバーを非表示する下記のプログラムをおしえていだきました。 このプログラムでウィンドウフォームを固定しようとして this.FormBorderStyle = FormBorderStyle.FixedSingle; のコードを1行だけ追加しましたがウィンドウフォームを固定できませんでした。 タスクバーを隠して かつウィンドウフォームを固定したいのですが tsukasa-12rさん以外の方でもかまいませんのでどなたか教えてください。 以上、よろしくお願いします //----------------------------------- using System; using System.Drawing; using System.Runtime.InteropServices; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { [DllImport("user32.dll", SetLastError = true)] static extern IntPtr FindWindow(string lpClassName, IntPtr lpWindowName); [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); private const int SW_HIDE = 0; private const int SW_NORMAL = 1; [StructLayout(LayoutKind.Sequential)] struct APPBARDATA { public int cbSize; public IntPtr hwnd; public uint uCallbackMessage; public uint uEdge; public Rectangle rc; public int lParam; }; private const int ABM_SETSTATE = 10; private const int ABS_AUTOHIDE = 1; private const int ABS_ALWAYSONTOP = 2; [DllImport("shell32.dll")] static extern int SHAppBarMessage(int msg, ref APPBARDATA pbd ); public Form1() { InitializeComponent(); // 「タスクバーを自動的に隠す」 APPBARDATA abd = new APPBARDATA(); abd.cbSize = Marshal.SizeOf(abd); abd.lParam = ABS_AUTOHIDE; SHAppBarMessage(ABM_SETSTATE, ref abd); // タスクバーを非表示 ShowWindow(FindWindow("Shell_TrayWnd", IntPtr.Zero), SW_HIDE); // コントロールボックスを非表示 this.ControlBox = false; // 最大表示 this.WindowState = FormWindowState.Maximized; this.FormBorderStyle = FormBorderStyle.FixedSingle;// ← ウィンドウサイズを固定しようとして追加 → 固定できず } private void button1_Click(object sender, EventArgs e) { // タスクバーを常に表示 APPBARDATA abd = new APPBARDATA(); abd.cbSize = Marshal.SizeOf(abd); abd.lParam = ABS_ALWAYSONTOP; SHAppBarMessage(ABM_SETSTATE, ref abd); // タスクバーを表示 ShowWindow(FindWindow("Shell_TrayWnd", IntPtr.Zero), SW_NORMAL); // フォームを閉じる this.Close(); } } }
- 締切済み
- C・C++・C#
- noname#154688
- 回答数2
- C# タスクバーを隠したフォーム固定の方法
前略 ・C#の初心者です。 ・先日このMSN相談箱でtsukasa-12rさんからタスクバーを非表示する下記のプログラムをおしえていだきました。 このプログラムでウィンドウフォームを固定しようとして this.FormBorderStyle = FormBorderStyle.FixedSingle; のコードを1行だけ追加しましたがウィンドウフォームを固定できませんでした。 タスクバーを隠して かつウィンドウフォームを固定したいのですが tsukasa-12rさん以外の方でもかまいませんのでどなたか教えてください。 以上、よろしくお願いします //----------------------------------- using System; using System.Drawing; using System.Runtime.InteropServices; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { [DllImport("user32.dll", SetLastError = true)] static extern IntPtr FindWindow(string lpClassName, IntPtr lpWindowName); [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); private const int SW_HIDE = 0; private const int SW_NORMAL = 1; [StructLayout(LayoutKind.Sequential)] struct APPBARDATA { public int cbSize; public IntPtr hwnd; public uint uCallbackMessage; public uint uEdge; public Rectangle rc; public int lParam; }; private const int ABM_SETSTATE = 10; private const int ABS_AUTOHIDE = 1; private const int ABS_ALWAYSONTOP = 2; [DllImport("shell32.dll")] static extern int SHAppBarMessage(int msg, ref APPBARDATA pbd ); public Form1() { InitializeComponent(); // 「タスクバーを自動的に隠す」 APPBARDATA abd = new APPBARDATA(); abd.cbSize = Marshal.SizeOf(abd); abd.lParam = ABS_AUTOHIDE; SHAppBarMessage(ABM_SETSTATE, ref abd); // タスクバーを非表示 ShowWindow(FindWindow("Shell_TrayWnd", IntPtr.Zero), SW_HIDE); // コントロールボックスを非表示 this.ControlBox = false; // 最大表示 this.WindowState = FormWindowState.Maximized; this.FormBorderStyle = FormBorderStyle.FixedSingle;// ← ウィンドウサイズを固定しようとして追加 → 固定できず } private void button1_Click(object sender, EventArgs e) { // タスクバーを常に表示 APPBARDATA abd = new APPBARDATA(); abd.cbSize = Marshal.SizeOf(abd); abd.lParam = ABS_ALWAYSONTOP; SHAppBarMessage(ABM_SETSTATE, ref abd); // タスクバーを表示 ShowWindow(FindWindow("Shell_TrayWnd", IntPtr.Zero), SW_NORMAL); // フォームを閉じる this.Close(); } } }
- 締切済み
- C・C++・C#
- noname#154688
- 回答数2
- SQLを発行とは?クエリの作成とは違うのですか?
SQLを発行とは?クエリの作成とは違うのですか? アクセスしかわからない者です。 (SQLServerは無知) SQLを発行とか実行とかの言葉をよく目にしますが アクセスでテーブルを元に選択クエリを作成するのは 俗に言う「SQLを発行」でしょうか?
- ベストアンサー
- Visual Basic
- iwueye
- 回答数2
- ネイティブからマネージドdllの呼び出し方法
主題について、どなたかご教授願います。 主題の詳細として、ネイティブコード(Win32 アプリ C++)からマネージド(Visual studio C#)のDLLを呼び出したいと考えています。 一度、C#フォームアプリケーションにて、ダイアログ(フォーム)をもったアプリを作成し、アプリを作成したプロジェクトの出力をクラスライブラリに変更して.dllと.tlbを作成しました。 しかし、その後の呼び出し方法が不明なため、ネイティブコードからの呼び出し方法がわかっていない状態となっています。 つきましては、下記の質問について、どなたかお答えしていただけないでしょうか? 1:C#でのダイアログをもったDLLの作成は可能か(上記の作成方法が正確か否か) 2:上記が可能であれば、その作成方法 3:C++Win32 アプリケーションからの呼び出し方 サンプルや参考サイトなど、どんな情報でも構いませんので、ご教授のほど、よろしくお願い致します。
- ベストアンサー
- C・C++・C#
- kuresuto03
- 回答数2
- ネイティブからマネージドdllの呼び出し方法
主題について、どなたかご教授願います。 主題の詳細として、ネイティブコード(Win32 アプリ C++)からマネージド(Visual studio C#)のDLLを呼び出したいと考えています。 一度、C#フォームアプリケーションにて、ダイアログ(フォーム)をもったアプリを作成し、アプリを作成したプロジェクトの出力をクラスライブラリに変更して.dllと.tlbを作成しました。 しかし、その後の呼び出し方法が不明なため、ネイティブコードからの呼び出し方法がわかっていない状態となっています。 つきましては、下記の質問について、どなたかお答えしていただけないでしょうか? 1:C#でのダイアログをもったDLLの作成は可能か(上記の作成方法が正確か否か) 2:上記が可能であれば、その作成方法 3:C++Win32 アプリケーションからの呼び出し方 サンプルや参考サイトなど、どんな情報でも構いませんので、ご教授のほど、よろしくお願い致します。
- ベストアンサー
- C・C++・C#
- kuresuto03
- 回答数2
- C# タスク非表示でタイトルバーは表示する
前略 ・C#の初心者です。 ・タスクバーは下記のプログラムで非表示とすることができますが、同時にタイトルバーも消えてしまいます。タスクバーは非表示で、右端に閉じる・最大化・最小化アイコン("X"、 "□"、"_")のないタイトルバーを表示したいのですが、その方法をおしえてください。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace noTaskbar { public partial class Form1 : Form { public Form1() { InitializeComponent(); this.FormBorderStyle = FormBorderStyle.None;//タイトルバー&タスクバー非表示 this.WindowState = FormWindowState.Maximized;// } } } 以上、よろしくお願いします
- ベストアンサー
- C・C++・C#
- noname#154688
- 回答数2
- C# タスク非表示でタイトルバーは表示する
前略 ・C#の初心者です。 ・タスクバーは下記のプログラムで非表示とすることができますが、同時にタイトルバーも消えてしまいます。タスクバーは非表示で、右端に閉じる・最大化・最小化アイコン("X"、 "□"、"_")のないタイトルバーを表示したいのですが、その方法をおしえてください。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace noTaskbar { public partial class Form1 : Form { public Form1() { InitializeComponent(); this.FormBorderStyle = FormBorderStyle.None;//タイトルバー&タスクバー非表示 this.WindowState = FormWindowState.Maximized;// } } } 以上、よろしくお願いします
- ベストアンサー
- C・C++・C#
- noname#154688
- 回答数2
- SendMessage関数がうまく動作しません
いろんなWindowsのアプリケーションの設定を、プログラムから自動実行するようにしたく、テストでWinodowsのメモ帳の設定を一部自動設定するソースコードを書いてみたのですが、どうもうまくいきません。 実行して、メッセージを表示することはできるのですが、メモ帳のページ設定ウィンドウのエディットコントロールに、目的のテキストが入力されません。 コントロールのIDも、何度も確認したので、間違ってはいないと思うのですが、なぜ、目的のテキストが入力されないのでしょうか。 SendMessage関数の参考ページは、いろいろと調べてみまして、目的のことをするのであれば、以下で問題なと思うのですが、なぜか、うまくいきません。 もし、お分かりの方がいらっしゃったら、お知恵を拝借いただけないでしょうか。 ■ 開発&実行環境 Windows XP XP3 32bit c++ ■ 動作 Winodowsのメモ帳のページ設定ウィンドウが開いているときに、フッター(F)のエディットコントロール のテキストを既定のものに置き換える。 ■ ソースコード /* 取りあえず、よく利用しそうなものをインクルード */ #include <windows.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <commctrl.h> #include <tchar.h> DWORD dwSleepTime = 3000; DWORD dwSleepTime1 = 1000; DWORD dwSleepTime2 = 5000; void SendKeysC( BYTE bVk // 仮想キーコード ) { // キーの押し下げをシミュレートする。 keybd_event( bVk, MapVirtualKey(bVk, 0), KEYEVENTF_EXTENDEDKEY | 0, 0 ); // キーの解放をシミュレートする。 keybd_event( bVk, MapVirtualKey(bVk, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); } void SendKeysExC( BYTE bVk1, // 仮想キーコード BYTE bVk2 // 仮想キーコード ) { // キーの押し下げをシミュレートする。 keybd_event( bVk1, MapVirtualKey(bVk1, 0), KEYEVENTF_EXTENDEDKEY | 0, 0 ); // キーの押し下げをシミュレートする。 keybd_event( bVk2, MapVirtualKey(bVk2, 0), KEYEVENTF_EXTENDEDKEY | 0, 0 ); // キーの解放をシミュレートする。 keybd_event( bVk2, MapVirtualKey(bVk2, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); // キーの解放をシミュレートする。 keybd_event( bVk1, MapVirtualKey(bVk1, 0), KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); } int main(int argc, char *argv[]) { HWND hWnd1; HWND hWndTmp; char *sNum; LPCTSTR lpszText; lpszText = _T("サンプル"); sNum = "start"; MessageBox(NULL, "フォアグラウンドウィンドウを選択してある?", "OK", MB_OK); hWnd1 = GetForegroundWindow(); Sleep(dwSleepTime); SendKeysC(0X09); Sleep(dwSleepTime); //メモ帳のページ設定ウィンドウのフッター(F)のエディットコントロール hWndTmp = NULL; hWndTmp = GetDlgItem(hWnd1, 122); SendKeysExC(0X10, 0X09); Sleep(dwSleepTime); ::SendMessage(hWndTmp,WM_SETTEXT,0,(LPARAM)"test"); Sleep(dwSleepTime); return 0; }