LoginSignup
0
0

More than 5 years have passed since last update.

アドウェア、デモンストレーション用ソフト「あおい」解説

Last updated at Posted at 2016-04-16

掲載ブログ

VBプロジェクト構造

  • ApplicationEvents.vb
  • Class.vb
  • Module1.vb

プロジェクトファイルはもっとありますがコードを入力するのは基本このファイルです。

プログラム解説

壁紙更新

Dim path As String = System.IO.Path.GetFullPath("test.bmp")
Dim registry As Microsoft.Win32.RegistryKey
registry = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Control Panel\Desktop")
registry.SetValue("Wallpaper", path)
registry.Close()

一行目で相対パスから絶対パスを取得します。これは壁紙変更の際にレジストリキーを書き込むのですがそれには当然絶対パスが必要だからです。
二行目でレジストリキーを書き込むための変数を宣言しています。三行目でControl Panel\Desktopと書きこむ場所を、四行目で書き込む値を入れます。
これで壁紙を変更します。

お気に入り操作

For Each tempFile As String In _
    System.IO.Directory.GetFiles("C:\Users\" & System.Environment.UserName & "\Favorites")
    System.IO.File.Delete(tempFile)
Next
Dim shortcutPath As String = System.Environment.GetFolderPath(Environment.SpecialFolder.Favorites) & "\test.url"
'ショートカットのリンク先 
Dim targetUrl As String = "http://blog.livedoor.jp/a17646158162488/"
'テキストファイルに書き込む 
Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("shift_jis")
Dim sw As New System.IO.StreamWriter(shortcutPath, False, enc)
sw.WriteLine("[InternetShortcut]")
sw.WriteLine("URL=" & targetUrl)
sw.Close()

お気に入りフォルダのパスは
C:\Users\ユーザー名\Favorites
となっているのでユーザー名をSystem.Environment.UserNameで取得しました。二回目は
System.Environment.GetFolderPath(Environment.SpecialFolder.Favorites)
を使ってパスを取得しました。(途中で書き方が変わったのは日付をまたいで作成したからです。許してね)
一行目のfor文ではIn System.IO.Directory.GetFilesでフォルダー内のファイルの数だけ繰り返します。
三行目ではフォルダー内のファイルパスがtempFileに代入されるのでそれを削除していきます。
次に五行目ではお気に入りフォルダーにショートカットを作るのでお気に入りフォルダーのパスの末尾に\test.urlを挿入してショートカットのパスを作ります。
七行目ではショートカット先のURLをセットします。
ショートカットは.urlファイルをテキストで編集出来るのでテキスト編集からショートカットを作成します。
九行目以降のフォーマットに従って書けばメモ帳からでもショートカットは作れます。

子ファイルの検索と作成

これ、あおいにはあおい.exeの他にaoi.htaという子ファイルを作成します。
あおいが起動

あおいが自分と同じ階層にあるフォルダーからaoi.htaを探す

あれば起動、無ければ作成して起動

これ・・・可愛くない?
だって起動したら必死で友達(aoi.hta)を探して見つけたらすぐ起動するし見つからなかったら頑張って一から作るんだよ
こんな可愛いこの機能だけど不充分でとりあえず公開したのが「あおい」だから今回の数倍バージョンアップさせた「あかね」を今後公開します。そこで解説予定

IEのホームページ設定の変更

WshShell = CreateObject("WScript.Shell")
WshShell.RegWrite("HKCU\Software\Microsoft\Internet Explorer\Main\Start Page","http://blog.livedoor.jp/a17646158162488/", "REG_SZ")
WshShell = Nothing

IEのホームページの設定はレジストリキーでHKCU\Software\Microsoft\Internet Explorer\Main\Start Page格納されています。そこに値であるURLをセットします。

注)ここで例としているコードは文字数の都合上本来のコードと異なり変数を省いて直接引数で渡している場合があります

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0