C言語を利用して常駐ソフトを作成したいと考えています。
目標としては、タイマー付きの自動でパソコンをシャットダウンするソフト等を作りたいと思っています。
作成方法、または作成方法が記載されているHP等を教えていただければ幸いです。
自分のスキルとしては、ポインタ、構造体等も理解しているつもりです。
ソフトとしては、テキストファイル編集ソフトくらいしか作った事がありません。
しかしC言語以前にJavaを扱っていて、Appletを用いてスペースインベーダー(もどき)を作ったり、メール送信ソフトを作ったりした事があります。
(Javaでやれば?と思った人がいたらJavaでのやり方も教えていただけるとありがたいです^^; )
OS: WIndowsXP Professional
開発環境: BorlandC++
エディタ: CPad for Borland C++Compiler
を使っていますが、
VisualStudio2005もあります。
(テキストファイルを読み込み、編集して出力するソフト等の非常に軽いソフトしか作った事がないためVisualStudioは起動が遅くて不快だったため使用した事はあまりありません^^; )
よろしくお願いします。
No.8ベストアンサー
- 回答日時:
★補足に対するアドバイス
>ちなみにですけど、このような事を初歩から学べるような本を
>知っていたら教えて欲しいんですが・・・。
↑
http://www.amazon.co.jp/dp/4797325453/→『Windowsゲームプログラミング』
http://www.amazon.co.jp/dp/4797328487/→『猫でもわかるWindowsプログラミング 第2版』
本屋やネット『cbook24』や『Amazon』さんで見つけましょう。
初歩から学べて分かりやすい本として2冊紹介しました。
>また、これはWindowsプログラミングというものなのですか?
↑
http://www.amazon.co.jp/dp/4789836908/→『Win32API完璧マスタ―Visual C++プログラミング』
http://www.amazon.co.jp/dp/4875934394/→『Win32 APIのしくみ―Windows開発環境「C++、VB、Delphi、VB.NET」からの利用法』
こちらも探せばたくさんありますが、全体的に金額が高いです。
だから MSDN サイトを活用すれば無料です。
http://msdn2.microsoft.com/ja-jp/library/default …→『MSDN ライブラリ』
ここで API 関数などを検索してマニュアルを読むわけです。
※無料なので活用しましょう。日本語サイトです。英語サイトもあるけど。
小技集:
・小技集(サンプル集)の本やサイトを紹介します。
http://www.expertmg.co.jp/html/cti/vctips/index. …→『VC++によるWin32プログラミングTips』
http://katsura-kotonoha.sakura.ne.jp/prog/win.sh …→『Windows API』
http://sapporo.cool.ne.jp/tanomi/→『BCBQ&A』
http://www.alpha-net.ne.jp/users2/junchoon/tips0 …→『Win32 tips [山内狂団]』
http://www14.big.or.jp/~ken1/tech/tech.html→『Windows プログラミング テクニック集』
http://www.geocities.jp/skynet3113/data/index.html→『WinTips ジャンル一覧』
http://www.arcpit.co.jp/winapi/api_01/index.htm→『1.APIの基本(Windows API Topics)』
お勉強サイト:
・『猫でもわかるプログラミング』は回答者 No.7 さんが紹介しているため省きます。
http://wisdom.sakura.ne.jp/system/winapi/→『Win32 API入門』
http://nienie.com/~masapico/sample_index.html→『Win32 サンプル集』
http://nienie.com/~masapico/api_index.html→『API別 Win32 サンプル集』
http://www.geocities.jp/ky_webid/win32c/index.html→『Win32API(C言語)編』
・探せばいろいろ見つかります。
その他:
・ネット検索のコツを紹介します。
(1)日本語で探すときは語尾に『とは』を付けて検索。→例『常駐ソフトとは』
(2)関連しそうな API 関数名で検索。
(3)関連しそうな API で使う構造体名や共用体名で検索。
(4)関連しそうな WM_XXX メッセージなどで検索。
(5)関連しそうなマクロ関数名などで検索。
(6)その他は自分で検索術を探す意欲かな。
最後に:
>常駐ソフトの作成方法がわかれば教えてください。お願いします。
↑
これは既に回答が No.6(zwi)さんでありますね。
常駐ソフトといっても難しくはないのです。
・単純に
(1)常に表示されるウインドウではなくて非ウインドウを持つのが基本。
(2)メニューなどを出すためにタスクトレイにアイコンを表示。
(3)タスクトレイのアイコンよりメニューやダイアログなどを出す仕組み。
(4)他にもタスクトレイにもアイコンを出さずに2度プログラムを起動したときに
メニューやダイアログを出すタイプも作れます。トレイアイコンを増やしたくない
場合は有効です。
・まずは『非ウインドウ』と『タスクトレイ・アイコン』から検索、実装して下さい。
参考資料:
http://www.expertmg.co.jp/html/cti/vctips/icon.htm→『アイコンをシステムトレイに表示させる』
http://www.expertmg.co.jp/html/cti/vctips/proces …→『多重起動を防止する』
http://www.expertmg.co.jp/html/cti/vctips/menu_t …→『ポップアップメニューを表示させる』
以上。
参考URL:http://katsura-kotonoha.sakura.ne.jp/prog/win.sh …
たくさんのURL教えていただきありがとうございます。
また、丁寧に検索方法まで教えていただき、非常に勉強になりました。
これでより頑張れそうです!ありがとうございます!
No.9
- 回答日時:
作成方法については
既に回答にあがっている「猫でもわかる~」が参考になると思います。
参考になるというより勉強するといった感じでしょうか。
一通り、Windowsプログラミングを学べば常駐プログラムも作れます。
常駐するかどうかは単に、ウインドウの表示があるかどうかというだけの話ですし
後はタスクトレイアイコンに表示するかどうかやサービスとして起動できるようにするかどうか
等です。
>テキストファイルを読み込み、編集して出力するソフト等の非常に軽いソフトしか作った事がないためVisualStudioは起動が遅くて不快だったため使用した事はあまりありません^^;
別にVC++のコンパイル自体はコマンドラインから行えるので
slnファイルを扱う時だけVCを開いて
他は秀丸等のエディタで書けばよいんじゃないでしょうか?
(nmakeを使うならそのslnファイルさえ不要だと思います。)
たしかにウィンドウの表示があるかないかだけの違いですね・・・
他の人の意見を聞く事はとても参考になりますね。
VisualStudioは起動遅いですよねw
「猫でもわかるプログラミング」を読んで勉強しようと思います!ありがとうございました!
No.7
- 回答日時:
#1のzwiです。
>また、これはWindowsプログラミングというものなのですか?
WindowsAPI(Win32API)を使ったWindowsプログラミングになります。
これは、BCC(Borland C++Compiler)でもVisualStudio2005でもプログラミング可能です。
お使いのVisualStudio2005は無料のExpress Edtionでしょうか?
Express Edtionは、無料なためMFCというクラスライブラリとリソースエディタが使用できません。
MFCはWin32APIをパッケージ化してC++のクラス化したもので、クセはありますが慣れると効率よくWinアプリを作成できるライブラリです。
リソースエディタは、GUIでウィンドウフォームを作成できる便利な機能ですが、これも削られています。
BCCに比べてメリットは、統合環境なのでmakefileが不要、デバッガが標準で付いている点でしょうか。
デメリットとして、VisualStudio2005からUNICODEが標準になったので、文字列の記述が面倒になったこと、openとかがセキュリティ上問題があるので必ず警告されるようになった事、やはりBCCに比べて重いことでしょうか。
WindowsAPIを使う限りは、プログラミングの手間は似たようなものです。どちらを使うのかの参考までに。
参考になりそうなサイトは、
「猫でもわかるプログラミング」で大半はBCCでもそのままコードが使えるはずです。本も多数出てます。
http://www.kumei.ne.jp/c_lang/
よくわかりました。ありがとうございます。
また、返信遅れてしまいもうしわけありません。(私用のため・・・)
ちなみにVisualStudio2005は有料のものです。
「猫でもわかるプログラミング」を読んで参考にしたいと思います。
ありがとうございました。
No.6
- 回答日時:
#1のzwiです。
常駐ソフトというのは、タスクトレイ(通知領域)にアイコンを表示したり、Xボタンで直ちに終了しないようにしたり、起動時はウィンドを表示しないようにする事で良いですか?
参考になりそうなのを幾つか紹介します。
http://support.codegear.com/article/35942
http://www.geocities.co.jp/siliconvalley/4805/bc …
これもVC++だと情報が多いんですけど。BCB,BCC関係は少ないですね。
この回答への補足
まさにそれです!
とても参考になります。ありがとうございます。
VC++で頑張ってみようかと思います。
ちなみにですけど、このような事を初歩から学べるような本を知っていたら教えて欲しいんですが・・・。
また、これはWindowsプログラミングというものなのですか?
No.5
- 回答日時:
適当なキーワードとWin32APIで
だいたいの情報はそろうと思うけど
質問者はいったいなにがわからないのだろうか?
例
http://www.google.co.jp/search?q=%E3%82%B7%E3%83 …
http://www.google.co.jp/search?hl=ja&client=fire …
>(Javaでやれば?と思った人がいたらJavaでのやり方も教えていただけるとありがたいです^^;
JavaからWin32APIを呼び出せばいいだけ
この回答への補足
その適当なキーワード(Win32API)がわからずに苦戦していました。
初心者のため知識があまりなく何を調べればいいのかよくわからなかったのです。
とても参考になりました。ありがとうございます。
No.4
- 回答日時:
★アドバイス
>目標としては、タイマー付きの自動でパソコンをシャットダウンするソフト等を作りたいと思っています。
↑
タイマー処理は SetTimer()、KillTimer()、WM_TIMER を使います。
非常に簡単です。簡単すぎて驚きます。
※ネットで検索すると直ぐにでもサンプルが見つかります。
>パソコンをシャットダウン
↑
ExitWindowsEx() 関数を使います。
Windows 95、98、Me 系は ExitWindowsEx() だけでシャットダウンが出来ます。
Windows NT、2000、XP、Vista 系はシャットダウンするための特権モードなどを
取得する必要があります。ちょっと複雑かな。
・下にサンプルを載せておきます。
サンプル:
// Windowsのシャットダウンを実行
static BOOL myExitWindowsEx( UINT uFlags )
{
TOKEN_PRIVILEGES TokenPri;
HANDLE hToken;
if ( OpenProcessToken(GetCurrentProcess(),(TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY),&hToken) ){
if ( LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&TokenPri.Privileges[0].Luid) ){
TokenPri.PrivilegeCount = 1;
TokenPri.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges( hToken, FALSE, &TokenPri, 0, NULL, NULL );
if ( GetLastError() == ERROR_SUCCESS ){
return( ExitWindowsEx(uFlags,0) );
}
}
}
return( FALSE );
}
使い方:
myExitWindowsEx( EWX_LOGOFF ); // ログオフ
myExitWindowsEx( EWX_POWEROFF ); // パワーオフ
myExitWindowsEx( EWX_REBOOT ); // 再起動
myExitWindowsEx( EWX_SHUTDOWN ); // シャットダウン
参考資料1:
http://homepage2.nifty.com/sak/w_sak3/doc/syspc/ …
http://homepage2.nifty.com/DSS/VCPP/API/ExitWind …
http://www.g-ninja.net/tips/shutdown.html
参考資料2:
http://yokohama.cool.ne.jp/chokuto/advanced/func …
http://yokohama.cool.ne.jp/chokuto/advanced/func …
http://yokohama.cool.ne.jp/chokuto/advanced/mess …
以上。
この回答への補足
詳しい説明ありがとうございます!
タイマーの作り方は参考URLによって出来そうな感じなのですが、
タイマーを作りたいというのは例として挙げただけであり、実際には常駐ソフトを作る事が前提で考えています。
常駐ソフトの作成方法がわかれば教えてください。お願いします。
No.3
- 回答日時:
BorlandC++では、この手の情報少ないですからね。
「SE_SHUTDOWN_NAME XP VC++」で探すと結構見つかったりします。
私はVC++の人なので提供できる情報が的外れだったらごめんなさい。
シャットダウン。NT用ですがvistaまで通用するはずです。
C++Builderでかかれてますが、Borland C++ Compiler5.5でも参考になるかと。
http://support.codegear.com/jp/article/35937
VC++用ですが、こちらも参考に。
http://onishi-lab.jp/programming/shutdown_win.html
タイマーというか時計です。時間処理の参考に。
http://www2.ttcn.ne.jp/~tkky/Application/Clock/c …
他にもC++BuilderのTIPS集があるみたいです。
どちらもプログラムの難易度としては高くありませんが、Borland C++ Compiler5.5は情報が少ないので苦労するかと思いますが、がんばってください!
No.2
- 回答日時:
フリーソフトでいっぱいありますが?
http://www.vector.co.jp/vpack/filearea/win/util/ …
http://www.vector.co.jp/vpack/filearea/win/util/ …
あえて作りたい理由は何でしょうか?
シャットダウンやタイマーは難しいプログラムでは無いので、あちこちのサイトに情報はころがっています。
例えばシャットダウンは、SE_SHUTDOWN_NAME特権を得て、ExitWindowsExでシャットダウンします。
この回答への補足
パソコン関係の大学に通っているためプログラミングに非常に興味があります。
やはり自分で作る事によってスキルアップすると思っています。
フリーソフトであるのは知っていますが、自分で作ってみたいため質問させていただきました。
情報が見つけられないため(探すのが下手かもしれません)、情報のあるサイトを教えてください。
お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- ソフトウェア WindowsでYMM4のような動画編集ソフトが作りたいです。 1 2022/06/10 21:50
- ノートパソコン パソコンのCドライブとDドライブの違いについてお教えください。 4 2023/01/07 16:47
- インターネット広告・アフィリエイト アフェリエイトサイト 作成について 5 2022/05/13 21:31
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- Windows 10 Windows10搭載の画面録画 容量を小さくする方法ありますか? 3 2022/06/21 09:45
- ドライブ・ストレージ Win10を再インストールしたら、HDDの一部に未割り当て領域ができ何の操作もできません。 4 2023/05/19 05:31
- 画像編集・動画編集・音楽編集 動画編集の処理時間と編集後の動画容量について 2 2022/12/29 21:27
- 作詞・作曲 或る曲の楽譜のコード進行の中に"F onA"なるものがありました。これはどんな和音ですか? 7 2023/05/22 00:34
- 画像編集・動画編集・音楽編集 おすすめの動画編集ソフトを教えてください! 4 2022/04/13 16:25
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
【お題】 ・ありそうだけど、絶対に無いことわざを教えてください。
-
【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
「出身中学と出身高校が混ざったような校舎にいる夢を見る」「まぶたがピクピクしてるので鏡で確認しようとしたらピクピクが止まってしまう」など、 これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
-
【選手権お題その2】この漫画の2コマ目を考えてください
サッカーのワンシーンを切り取った1コマ目。果たして2コマ目にはどんな展開になるのか教えてください。
-
常駐プログラム
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アセンブリ名とは??
-
なぜ数学や物理が苦手な人はプ...
-
VC++でCtrl+Vを操作させたい
-
gettimeofday() と localtime_r...
-
プログラミングの質問です。x^2...
-
曲を作るのにプログラミングっ...
-
cygwinでのGUIプログラミングの...
-
リピート再生が出来ません
-
Visual Studio Codeについて
-
MFCとC++/CLIとの比較
-
OpenCVで音声は扱えるか
-
60歳の定年から プログラム言...
-
TeraPadのダウンロードについて
-
MaskEdBoxをクリアしたい
-
宣言の構文エラーが出ます。
-
procってなんですか?
-
VBA フォルダ アクセス権限付与
-
C言語で個人の趣味では何が出来...
-
VBAプログラミング
-
今日、小論文を書きました。「2...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アセンブリ名とは??
-
Visual Studio Codeについて
-
procってなんですか?
-
exeファイルを作ったり改造した...
-
VBA フォルダ アクセス権限付与
-
リピート再生が出来ません
-
VBAプログラミング
-
エクセルVBAでRS232Cへ
-
作業工程 SDとMD
-
プログラミングでArduinoのc++...
-
プログラミングを学ぼうと思い...
-
gettimeofday() と localtime_r...
-
push any key で終了する方法?
-
C#でマウスのドラッグで範囲を...
-
Cプログラミングでハングマンゲ...
-
曲を作るのにプログラミングっ...
-
LeetCodeていうの初めて、
-
図形の中心の取り方を教えてく...
-
私はプログラミングは一切分か...
-
名城大学理工学部電気電子工学...
おすすめ情報