> cipher /s:c:\ > encryption.txt
で一覧が取れる。
先頭がEになってるのが暗号化ファイル。
cygwinがあれば
> grep ^E encryption.txt
> cipher /s:c:\ > encryption.txt
で一覧が取れる。
先頭がEになってるのが暗号化ファイル。
cygwinがあれば
> grep ^E encryption.txt
XPに新OS(vista系)をインストールしたときになる。あらかじめルートの圧縮は解除しておいたほうがいいようだ。
直し方
vista系のDVDから起動。画面で止まったらSHIFT+F10でコマンドプロンプトに移行、
方法1
1 2 3 4 |
> attrib -H -S -R bootmgr > copy bootmgr bootmgr.save > C:\windows\system32\compact /U /F C:\BOOTMGR > attrib +H +S +R bootmgr |
方法2
1 2 3 |
> bootrec /FixMbr > bootrec /fixboot > bootrec /rebuildbcd |
configuration\.settings\org.eclipse.ui.ide.prefs
Microsoft .NET Framework Repair Toolをダウンロードして実行、以下の状態で止めて、再度インストールを試みる。
これでもだめなら
ここからdotnetfx_cleanup_tool.zipをダウンロードして.NET Frameworkを全削除、再起動後に試みる
これでもだめならイベントビューアをクリアしてからエラーを調べる
Windowsを上書きインストールしていたりするとC:\Program Files\Reference Assembliesのアクセス権がないためエラーになることがある。この場合はこのフォルダの所有者を変えてUserがアクセスできるようにする。
Form.WindowStateを見る。
1 2 3 4 |
if (WindowState == FormWindowState.Maximized) { MessageBox.Show("Miximized"); } |
VS2008でフォームプロジェクトをつくり、フォームにボタンを設置しハンドラを以下のように書くとエラーになる。
1 2 3 4 5 |
private void button1_Click(object sender, EventArgs e) { Location.X = 100; Location.Y = 100; } |
1 |
エラー 1 変数ではないため、'System.Windows.Forms.Form.Location' の戻り値を変更できません。 C:\T\hhh\nonvariable\nonvariable\Form1.cs 21 13 nonvariable |
再現するために簡単なコンソールプログラムを作る。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; namespace nonvariable2 { class AA { internal System.Drawing.Point pt{get;set;} }; class Program { static void Main(string[] args) { AA aa = new AA(); // エラー 1 変数ではないため、'nonvariable2.AA.pt' の戻り値を変更できません。 // aa.pt.X = 100; Point pp = aa.pt; pp.X = 100; Console.WriteLine(aa.pt.X); } } } |
Form.LocationはSystem.Drawing.Pointでこれはstructであり、value typeだ。
value typeということはボックス化が問題のように感じるがおそらくこれはそうではない。
value typeとはC言語で言うところのstructであって=で値を設定すれば全フィールドコピーされ、関数で渡しても関数から返してもコピーされるような型のことだ。
上記コードのプロパティpt.getはあくまで関数であり返すのはコピーである。ボックス化されたものではない。よってこのコピーの値を変更することは意味を成さない。プロパティにしなければエラーにはならない。
最初のコードは以下のように書くのが正解
1 2 3 4 |
private void button1_Click(object sender, EventArgs e) { Location = new Point(100, 100); } |
Form.Locationはウインドウの位置だからX,Yを別々に設定するのはよくない。しかしエラーの表示は「変数でないため」というのも変な感じだ。これはFormの設計がおかしいのだろうか。
Form.Locationはsetされたときウインドウの位置を変えないとならないのでプロパティでやるしかない。Pointをいじれないとするとしょうがないのか
ちなみにC++/CLIだとエラーにならないが、あたいは設定されないので最初なやむ。
タスクバーには表示されていることが前提。
1、まずタスクバーで問題のウインドウをクリックしてアクティブにする。
2、[Alt]+[Space]を押す。(Altを押しながらSpaceを押す)
3、[M]を押す。
4、この状態でカーソルキー(矢印キー)でウインドウを動かせるようになっているのでいろいろ動かして画面上に持ってくる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <string> #include <sstream> #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { const char* p = "aaa\nbbb\r\nccc\n\nddd\n"; std::stringstream is(p); string t; while(getline(is, t)) { t.erase(t.find_last_not_of("\r")+1); cout << t << endl; } return 0; } |
debianではfirefoxはリポジトリにはなく、オリジナルビルドのiceweaselを使っているがこれだとプロファイルマネージャが動かなかったので本家からfirefoxをダウンロードして生インストールする。
最初にiceweaselを削除
# apt-get remove iceweasel
本家からlinux版firefoxをダウンロードする。ここではfirefox-26.0.tar.bz2をダウンロードした。
$ tar xf firefox-26.0.tar.bz2
これはソースではなく実効ファイルがそのまま入ってたからビルドする必要なかった。
/opt/fireにコピーしてシンボリックリンクをはった
# cd /usr/bin
# ln -s /opt/firefox/firefox firefox
設定ファイルを全消去してプロファイルマネージャを起動
$ cd
$ rm -rfv .mozilla/
$ firefox -ProfileManager
flashはadobe本家からlibflashplayer.soをダウンロードして .mozilla/plugins/の中に入れるかシンボリックリンクをはる。
どれかでみる。カーネルのバージョンとディストリのバージョンがある。
1 2 3 4 5 |
$ cat /proc/version $ uname -a $ lsb_release -a $ cat /etc/lsb-release $ cat /etc/debian_version |
/proc/versionはカーネルから直接持ってくる。ここの文字列はカーネルをビルドしたときに埋め込まれるものだと思う。
unameは/proc/versionを見ていると思う。
lsb_releaseはpythonで/usr/lib/python2.7/dist-packages/lsb_release.pyに書かれている。その他のはただのファイルでこれらはディトリビュータが書いたものと思われる。