• 締切済み

C言語でのレジストリ書き換え

C言語に於いて以下のことをしようと思うのですが、知識不足故、どうもうまくいきません。 ・プログラム名 -1 とすると、とあるレジストリの値のデータを"100"にする。-2とすると"200"となる。 又、同時に、他の値のデータを"abc def 1"にする。-2とすると"abc def 2"となる。 ・プログラム名 -d とすると、上記の"abc def *"のデータを表示する。 どなたかどうすれば以上のことができるのか教えていただけないでしょうか。

みんなの回答

  • eroermine
  • ベストアンサー率18% (83/444)
回答No.1

int WINAPI WinMain(HINSTANCE hCurInst, HINSTANCE hPrevInst, LPSTR lpsCmdLine, int nCmdShow) 中略 if ( strcmp(lpsCmdLine,"-1") == 0 ){ レジストリを100と"abc def 1" にする。 else if ( strcmp(lpsCmdLine,"-2") == 0 ){ レジストリを200と"abc def 2"にする。 if ( strcmp(lpsCmdLine,"-d") == 0 ){ MessageBox( NULL,レジストリの値, "説明", MB_OK); }

gconoo
質問者

補足

申し訳ございませんがもう少し詳しく御願いできないでしょうか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • C言語 比較抽出

    C言語 コンソール VC6.0で悩んでいます。 ABC.com ABC.com DEF.co.jp GHI.go.jp DEF.co.jp DEF.co.jp JKL.com JKL.com ABC.com 上記のようなデータがsData[i]にあり、 ABC.com  3回 DEF.co.jp  3回 GHI.go.jp  1回 JKL.com  2回 のように画面に出力したいのですが、表示も処理も一緒だとややこしいので 表示は後回しにして、一度sHost[i]とiNum[i]に格納しようと考えています。 strcmpでの比較をwhileやforで多重ループで回すくらいしか思い付きません。 何か案だけでもいただけないでしょうか。お願いします。

  • Windowsのレジストリをみて、コントロールパネルの値を知りたい

    お世話になります。 厳密にいうと、C,C++の質問ではないかも知れませんが プログラムから、Windowsの地域と言語のオプションの 言語タブの「東アジア言語のファイルをインストールする」が チェックされているか否かを取得したいと思っています。 C,C++でやるんなら、レジストリの値を見ればいいのだろうと 思うのですが、どのレジストリをみればいいか、ご存知ないでしょうか? (それとも、レジストリをみないで、コンパネの値を問い合わせる APIがあったり???)

  • C言語初心者です。

    C言語初心者です。 1^2-2^2+3^3-4^2…+99^2-100^2の値を求めるプログラムを作成したいのですが上手くいきません。 どこが足りないのですか? #include <stdio.h> int main(void) { printf("%d", 1^2 - 2^2 + 3^2 - 4^2 … + 99^2 - 100^2); return (0); } よろしくお願いします。

  • C言語、リダイレクト

    C言語の初心者です。 コマンドプロンプトで「./a.out <text.txt」とうつと、text.txtのデータを取得し、表示するプログラムをつくろうと思っています。 試行錯誤の結果 #include <stdio.h> main(){ char abc; scanf("%s",&abc); printf("%c",abc); } だとエラーもなくコンパイルできるのですが、肝心のファイルの中身が一文字までしか表示されません。 これはchar abcでabcを一文字だけの変数にしているからみたいですが、調べてみたのですがどうもここから先に進めません。 どこをどのように変えれば良いですか?お願いします。

  • C言語の問題がわかりません。

    C言語の問題がわかりません。 ファイルを読み込んで、文字数と単語数を数えるプログラムなのですが、 例えば、ファイルが 「I was born in Japan  I like baseball」でしたら、 1:I was born in Japan 19文字、5単語 2:I like baseball 15文字、3単語 と表示したいのですが、下記のプログラムのままだと、 1:I was born in Japan 20文字、5単語 2:I like baseball 15文字、3単語 と作った文章の改行の部分を認証してしまいます。 改行の部分を認証しないようにこれを修正するにはどうしたらいいでしょうか? また、もう一つあるのですが、結果の文章を 1:napaJ・・・ 2:・・・ekil I と行ごとに逆に表示したいのですが、どうすれば逆に表示できますでしょうか? #include <stdio.h> #include <string.h> #include <stdlib.h> int main(void) { FILE *fin; char filename[20]; char data[256], *abc; int a,b,n; printf("ファイル名の入力 :"); scanf("%s", filename); fin=fopen(filename,"r"); if(fin == NULL){ printf("%sがオープンできません!\n",filename); exit(1); } a=0; b=0; n=0; while(fgets(data,256,fin) != NULL) { a=a+1; b=strlen(data); abc = data; *(abc - 2) = '\t'; while (*abc == ' ') {abc++;} while (*abc != '\0') { while (*abc != '\0' && !(*abc == ' ' || *abc == '\t' || *abc == ',' || *abc == '.')){abc++;} n = n+1; while (*abc != '\0' && (*abc == ' ' || *abc == '\t' || *abc == ',' || *abc == '.')) {abc++;} } printf("%d:%s\n",a,data); printf("%d文字、%d単語\n",b,n); n=0; } fclose(fin); return 0; }

  • レジストリが作られたことを捉えるプログラムは???

    C#であるプログラムをキックするプログラムを作りました。 キックするまでは難しくないのですが・・・ キックしたプログラムはレジストリを作ります。 そのレジストリの値は本来手動で変えるものなのですが・・・面倒なのでレジストリが作成されたことを確認した段階で値の書き換えをしたいのですがそういった“レジストリの書き換え”を監視する方法とか可能なのでしょうか?

  • 0を含んだ文字列の長さ(バイト数)の求め方

    環境:VC2005 WinAPI32 C言語 SDK 上記の環境でプログラミングをしています。 よろしくお願いいたします。 char str[256]=""; strcat(str, "ABC"); str[4]=0; strcat(str, "DEF"); たとえば上記のようなプログラムで、 str中のバイト数(文字列長?)を求めたいと思っています。 strの中身は [A][B][C][0][D][E][F][0][0][0]...[0]となっていますが、 このとき、7という値を取得したいのですが、何か効率的な方法はありますでしょうか・・。

  • C言語のプログラムに関する質問です。

    C言語の初心者です。 i=0~nまでのデータch1[i]の中から、負の値の個数を抽出したい場合、どのようにプログラムを書けばよいでしょうか? よろしくお願いします。

  • c言語です。

    c言語です。 現在電話番号入力のプログラムを書いているのですが、うまくいきません。 決まりは18文字以下で、入力できる値が数字1から9と'(',')','-'のみです。 私はあと少しなんですが、うまくプログラムを組めませんでした。 forを使ってやってみたのですがうまくいきません。文字数制限はできたのですが、、 どなたか良い知恵がありましたら教えてください。

  • c言語について

    C言語で、二つの整数値を読み込んで、前者の値が後者の何%であるかを実数で表示するプログラムを作成しようとして以下のコードを書きました。 #include <stdio.h> int main(void) { int n1, n2 ; puts("二つの整数を入力してください。") ; printf("整数A : \n") ; scanf("%d" , &n1) ; printf("整数B : \n") ; scanf("%d" , &n2) ; printf("Aの値はBの%f%%です。\n" , (double)(n1 / n2) * 100) ; return 0 ; } 上記コードを実行すると、0.000000%のような結果になります。 そこで、最後のキャスト演算子を使用した後の式で(n1 / n2) * 100がまずいのかなと考え、n1 / n2 * 100にしたら上手くいきました。 なぜ、上記コードだと上手くいかないんでしょうか?