Hatena::ブログ(Diary)

×××Diary このページをアンテナに追加 RSSフィード

2014-06-04

壁紙変更

デフォルトPC縛り(Officeあり)

壁紙変えたい!

壁紙を変更するには、レジストリを変えればいいものの

すぐに反映するためには、WindowsAPIの力を借りたい。

上記縛りなら、ExcelVBAを使うことになるが、

ひっそり、こっそり実行したいのであれば、VBScriptで起動してやるのがよいかも。

ExcelVBA側(bg.xlsm)

Declare Function SystemParametersInfo Lib "user32" Alias _
                           "SystemParametersInfoA" (ByVal uAction As Long, _
                                                    ByVal uParam As Long, _
                                                    ByVal lpvParam As Any, _
                                                    ByVal fuWinIni As Long) As Long

Public Const SPI_SETDESKWALLPAPER = 20
Public Const SPIF_SENDWININICHANGE = 2
Public Const SPIF_UPDATEINIFILE = 1

Public Sub ChangeWallPaper(ByVal WPaper As String)
    
    Dim WSH     As Object
    Dim re      As Long

    
    ''レジストリに書き込み
    Set WSH = CreateObject("WScript.Shell")
    WSH.RegWrite "HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper", WPaper, "REG_SZ"
    Set WSH = Nothing
    
    ''更新
    re = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, ByVal WPaper, _
                              SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)
End Sub

VBScript側(bg.vbs)

Option Explicit

Dim ExcelApp
Dim ExcelBook
Dim FilePath, WallPaperPath
FilePath = "C:\Users\[UserName]\Desktop\bg.xlsm"
WallPaperPath = "C:\Users\[UserName]\Desktop\pen pen.jpg"

Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Visible = False

Set ExcelBook = ExcelApp.Workbooks.Open(FilePath)

ExcelApp.Run "'" + FilePath + "'!ChangeWallPaper", CStr(WallPaperPath)

ExcelBook.Close
ExcelApp.Quit

Set ExcelBook = Nothing
Set ExcelApp  = Nothing

2014-06-02

単なるメモ

デスクトップ上にファイルまたはフォルダがあれば

そこでメッセージを出して終了し、存在しなければログオフする。

Option Explicit

'デスクトップにファイル、フォルダが存在しなければ終了
If IsExistsDataInDesktop() Then
  msgbox "デスクトップにファイルまたはフォルダが存在します"
Else
  Call ShutDown()
End If


'処理終了
WScript.QUit

Function IsExistsDataInDesktop()
  'フォルダは一つでもあればTrueを返す
  'ファイルは、ショートカット以外があればTrueを返す
  Dim DesktopPath
  Dim File
  Dim Folder
  Dim FSO
  Dim WSH
  
  Set FSO = CreateObject("Scripting.FIleSystemObject")
  IsExistsDataInDesktop = False
  
  'デスクトップパスの取得
  Set WSH = CreateObject("WScript.Shell")
  DesktopPath = WSH.SpecialFolders("Desktop")
  
  'デスクトップパス配下にあるフォルダをチェック
  For Each Folder In FSO.GetFolder(DesktopPath).SubFolders
    If IsExistsDataInDesktop Then Exit For
    IsExistsDataInDesktop = True
    
  Next
  
  'デスクトップパス配下にあるファイルをチェック
  For Each File In FSO.GetFolder(DesktopPath).Files
    If IsExistsDataInDesktop Then Exit For
    
    If Right(File.Path, 4) <> ".lnk" Or Right(File.Path, 4) <> ".ini" Then
      IsExistsDataInDesktop = True
    End If
    
  Next
  
  Set FSO = Nothing
  Set WSH = Nothing
  
End Function

Sub ShutDown()
  Dim Command
  Dim WSH
  Set WSH = CreateObject("WScript.Shell")
  
  Command = "shutdown -l"
  WSH.Run "%ComSpec% /c" & Command, 0, False
  Set WSH = Nothing
End Sub

2014-05-20

2014-05-18

Hackers Bar

その発想斜め上を行き過ぎでしょ・・・

ITメディアで見かけた記事だけど六本木

バーテンダーコーディングする様子を見ながら酒を飲むバーができたそうな 笑

カクテル名が「ブルースクリーン」「スパゲッティ」って不吉すぎるでしょ! 六本木にできた「Hackers Bar」行ってきた

メニュー名がアレゲな上に、コンセプトがすげー

「Hackers Bar」ではバーテンダーライブコーディングを行い、お客はそれを見ながらお酒を楽しむ。「お客さんの注文を受け、バーテンダーであるハッカーがその場でコーディングする。お客さんはそれを見てバグを見つけたり、もっとこうした方がいいといったアイデアを出したり、あるいはお客さんとして来ていた別のハッカーデザイナーと出会ったりする。そんな場所にしたいんです」と中尾氏は話す。

しかも、正社員バイト募集要項は、プログラミングスキル要求される模様。

店内でお客様のご要望に合わせたシステムアプリケーション制作していただきます。PerlPHPPythonRuby, JavaScriptなどいずれかのLLスキルObjective-CJavaによるネイティブアプリ開発スキルなど歓迎します。

http://hackersbar.net/#recruit

公式サイトが、下記なんですが・・・

http://hackersbar.net/

偶然訪れたタイミングのフェースブックシェア数とツイート数が

f:id:maeyan:20140519001038p:image

HTTPステータスエラーコードにしか見えない・・・。

2014-05-17

vmware + office2013

VMWare5.01にWindows7(32ビット)を入れて

Excel2013を入れた時に、最初の立ち上がりの画面が

真っ黒で使い物にならなかったわけです。


しょうがないので、ひとまずExcel2010を入れて回避したのですが

Excel固有の問題なのかなと思って放置していて今度はPowerPoint2013を入れたら

同様の現象がみられて、まったく使えないわけです。


さすがに、今から2010版を買うのもと思い対策を調べたのでめも。

まずは現象の確認。

通常は起動後の画面が下記のようになり

f:id:maeyan:20140517105957p:image


新しいプレゼンテーションを選択すると下記のようになる。

f:id:maeyan:20140517105956p:image


問題の画面は、立ち上げた直後黒い画面となり、直観でだいたいここかなー

と思い新しいプレゼンテーションクリックすると次の画面に移行できます。

黒いだけで、リンク関係は存在しています。

※画面は黒いけど、起動後の最初の画面です。

f:id:maeyan:20140517105955p:image


無事次の画面にうつりました。

え?

※画面は黒いけど、新しいプレゼンテーションクリックした後の画面です

f:id:maeyan:20140517105955p:image


こんなんじゃ、何もできないので対策をしましょう。

一応、ちゃんと画面を移動したのか確認してみます。

左上にあるはずのパワーポイントのマークのところで

右クリックすると「移動、サイズ変更・・・」等のメニューが出れば、画面遷移がきちんと行われています。

f:id:maeyan:20140517105954p:image


設定の画面を表示したいので、スライド表示ボタンの右側にあるはずのボタンを直観クリックします。左から6つ目のボタンですね。

メニューが表示されたならば、「その他のコマンド」を選択しましょう。

f:id:maeyan:20140517105953p:image


そうすると、「詳細設定」の「表示」項目に「ハードウェアグラフィックアクセラレータを無効にする」というのがあるので、そちらにチェックを入れてOKを選択するとふつうに見れるようになります。

f:id:maeyan:20140517105951p:image