FriendsFade Posted May 16, 2011 Posted May 16, 2011 (edited) Hello I made this a long time ago and it probably doesn't even work no more and is discontinued...but feel free to use it as a scrap expandcollapse popup#NoTrayIcon #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_icon=icons\cyber-skull.ico #AutoIt3Wrapper_Res_Comment=Created by - FriendsFade #AutoIt3Wrapper_Res_Description=Mercenary NFO Viewer #AutoIt3Wrapper_Res_Fileversion=1 #AutoIt3Wrapper_Res_LegalCopyright=MercNFO - FriendsFade #AutoIt3Wrapper_Res_Language=1033 #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <Misc.au3> #Include <Constants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> Global $Text , $ReadIni[5] ;ReadIni = Ini's +1 Opt("TrayMenuMode" ,1) ;Opt("OnExitFunc" , "_Exit") _Singleton(@ScriptName) $MainPath = @AppDataDir & "\Mercenary NFO Viewer\" $SettingsPath = @AppDataDir & "\Mercenary NFO Viewer\NFO-Settings.ini" $Executable = "MercNFO.exe" $Section = "Settings" $KeyRun = "Run" $KeyNFOCol = "NFO Color" $KeyTextCol = "Text Color" $KeyTrans = "Transparent" $KeyOnTop = "Always on Top" $Buffer = "" $Width = 672 $Height = 300 $Run = 0 $Trans = 0 $AlwaysOnTop = 0 $NFOCol = 0x000000 $TextCol = 0xFF0000 $Red = 0xFF0000 $Blue = 0x0000FF $Black = 0x000000 $White = 0xFFFFFF $Green = 0x00FF00 $Purple = 0x800080 $Yellow = 0xFFFF00 Global $Greet = "" & _ " ÜÛ²±° þ þ °±²ÛÜ " & @CRLF & _ " ÜÛ²²±±° ° ° °±±²²ÛÜ " & @CRLF & _ " Û²ß ßß Üܲ²²²ÜÜ ±° °± Üܲ²²²ÜÜ ßß ß²Û " & @CRLF & _ " ßÜ ÜÛßßß ßßÛ²±°ß ß°±²Ûßß ßßßÛÜ Üß " & @CRLF & _ " þ þß ßß ßß ßþ þ " & @CRLF & _ " ÜÜ ßÜ ** ** ********* ***** Üß ÜÜ " & @CRLF & _ " ÜÛ²²²²ÛÛÜ Ü±° ** ** ********* ******** °±Ü ÜÛÛ²²²²ÛÜ " & @CRLF & _ " Þ±²ß ßß²²±°ß *** ** ** *** *** ß°±²²ßß ß²±Þ " & @CRLF & _ " ²±Ý **** ** ** ** ** ݱ² " & @CRLF & _ " ± ** ** ** ** *** ** ± " & @CRLF & _ " ± ** ** ** ******** ** ** ± " & @CRLF & _ " ± ** * ** ******** ** ** ± " & @CRLF & _ " ± ** ** ** ** ** *** ± " & @CRLF & _ " ± ** ** ** ** ** ** ± " & @CRLF & _ " ± ** **** ** ** *** ± " & @CRLF & _ " ± ** *** ** ******** ± " & @CRLF & _ " ± ** ** ** **** ± " & @CRLF & _ " ± ± " & @CRLF & _ " ± This ""NFO Reader"" was created by FriendsFade. ± " & @CRLF & _ " ± ± " & @CRLF & _ " ± ± " & @CRLF & _ " ± ± " & @CRLF & _ " ± ± " & @CRLF & _ " ± ± " & @CRLF & _ " ± ± " & @CRLF & _ " ²± ±² " & @CRLF & _ " ²± ±² " & @CRLF & _ " Þ²±ÜÛ²²Ü ܲ²Ûܱ²Þ " & @CRLF & _ " ß²²ß ²±Ü ܱ² ß²²ß " & @CRLF & _ " ÜÛ²±° þ þ °±²ÛÜ " & @CRLF & _ " ÜÛ²²±±° ° ° °±±²²ÛÜ " & @CRLF & _ " Û²ß ßß Üܲ²²²ÜÜ ±° °± Üܲ²²²ÜÜ ßß ß²Û " & @CRLF & _ " ßÜ ÜÛßßß ßßÛ²±°ß ß°±²Ûßß ßßßÛÜ Üß " & @CRLF & _ " þ þß Üþ ßß ßß þÜ ßþ þ " If $CmdLine[0] <> 0 Then If StringTrimLeft($CmdLine[1] , StringLen($CmdLine[1]) -4) = ".NFO" Then $FileData = $CmdLine[1] $Buffer = FileRead($FileData) Else MsgBox(16 , "Error" , "This isn't a NFO File!") Exit EndIf EndIf If @ScriptName <> $Executable Then MsgBox(16 , "Error" , "Please rename the program back to " & StringTrimRight($Executable , 4) & " or else you can't run this program.") Exit EndIf If Not FileExists($SettingsPath) Then _CreateIniFile() EndIf If FileExists($SettingsPath) Then ; Smart IniFile just incase I decide to add new ini settings, this will update the ini $Error = "Error" $ReadIni[0] = IniRead($SettingsPath , $Section , $KeyRun , $Run);Run Once $ReadIni[0] = IniRead($SettingsPath , $Section , $KeyNFOCol , $Error);NFO Background Color $ReadIni[1] = IniRead($SettingsPath , $Section , $KeyTextCol , $Error);NFO Text Color $ReadIni[2] = IniRead($SettingsPath , $Section , $KeyTrans , $Error);NFO Transparent $ReadIni[3] = IniRead($SettingsPath , $Section , $KeyOnTop , $Error);NFO on Top $Ini = 0 Do If $ReadIni[$Ini] = $Error Then _CreateIniFile() ExitLoop EndIf $Ini = $Ini +1 Until $Ini = 5 ;ReadIni[X] +1 EndIf If IniRead($SettingsPath , $Section , $KeyRun , $Run) = 0 Then FileCopy(@AutoItExe , $MainPath) IniWrite($SettingsPath , $Section , $KeyRun , 1) EndIf $NFO = GUICreate("Mercenary NFO Viewer", $Width, $Height, Default , Default , Default , $WS_EX_TOOLWINDOW + $WS_EX_ACCEPTFILES) ;File Functions Start $File = GUICtrlCreateMenu("File") $Open = GUICtrlCreateMenuItem("Open" , $File) GUICtrlCreateMenuItem("", $File) $Exit = GUICtrlCreateMenuItem("Exit" , $File) ;File Functions End ;Options Functions Start $Options = GUICtrlCreateMenu("Options") $Font = GUICtrlCreateMenu("Font" , $Options) $FontRed = GUICtrlCreateMenuItem("Red" , $Font) $FontBlue = GUICtrlCreateMenuItem("Blue" , $Font) $FontBlack = GUICtrlCreateMenuItem("Black" , $Font) $FontWhite = GUICtrlCreateMenuItem("White" , $Font) $FontGreen = GUICtrlCreateMenuItem("Green" , $Font) $FontPurple = GUICtrlCreateMenuItem("Purple" , $Font) $FontYellow = GUICtrlCreateMenuItem("Yellow" , $Font) GUICtrlCreateMenuItem("" , $Font) $FontChoose = GUICtrlCreateMenuItem("Choose..." , $Font) $Background = GUICtrlCreateMenu("Background" , $Options) $BackgroundRed = GUICtrlCreateMenuItem("Red" , $Background) $BackgroundBlue = GUICtrlCreateMenuItem("Blue" , $Background) $BackgroundBlack = GUICtrlCreateMenuItem("Black" , $Background) $BackgroundWhite = GUICtrlCreateMenuItem("White" , $Background) $BackgroundGreen = GUICtrlCreateMenuItem("Green" , $Background) $BackgroundPurple = GUICtrlCreateMenuItem("Purple" , $Background) $BackgroundYellow = GUICtrlCreateMenuItem("Yellow" , $Background) GUICtrlCreateMenuItem("" , $Background) $BackgroundChoose = GUICtrlCreateMenuItem("Choose..." , $Background) $Screen = GUICtrlCreateMenuItem("Full Screen" , $Options) GUICtrlSetState($Trans, $GUI_UNCHECKED) $Trans = GUICtrlCreateMenuItem("Transparent" , $Options) GUICtrlSetState($Trans, $GUI_UNCHECKED) $OnTop = GUICtrlCreateMenuItem("Always on Top" , $Options) GUICtrlSetState($Trans, $GUI_UNCHECKED) ;Options Functions Start ;Register Options Functions Start $RegMenu = GUICtrlCreateMenu("Register") $Reg = GUICtrlCreateMenuItem("Register" , $RegMenu) $UnReg = GUICtrlCreateMenuItem("Un-Register" , $RegMenu) ;Register Options Functions End $Dummy = GUICtrlCreateEdit($Greet , 0 , 0 , $Width , $Height -20) GUICtrlSetState($Dummy, $GUI_HIDE) If $Buffer = "" Then $Text = GUICtrlCreateEdit($Greet , 0 , 0 , $Width , $Height -20 , $ES_READONLY + $WS_VSCROLL) Else $Text = GUICtrlCreateEdit($Buffer , 0 , 0 , $Width , $Height -20 , $ES_READONLY + $WS_VSCROLL) EndIf ;Tray Functions Start $TrayOpen = TrayCreateItem("Open NFO") $TrayState = TrayCreateItem("Hide") $TrayExit = TrayCreateItem("Exit") ;Tray Functions End GUICtrlSetState($Text, $GUI_DROPACCEPTED) GUICtrlSetColor($Text , $TextCol) GUICtrlSetBkColor($Text , $NFOCol) GUICtrlSetFont($Text, 6, 300, -1, "Terminal") GUICtrlSetState($Text, $GUI_NOFOCUS) GUISetState() TraySetState() If IniRead($SettingsPath , $Section , "Trans" , 0) = 1 Then WinSetTrans($NFO , "" , 200) GUICtrlSetState($Trans, $GUI_CHECKED) Else WinSetTrans($NFO , "" , 255) GUICtrlSetState($Trans, $GUI_UNCHECKED) EndIf If IniRead($SettingsPath , $Section , "Always on Top" , 0) = 1 Then WinSetOnTop($NFO , "" , 1) GUICtrlSetState($OnTop, $GUI_CHECKED) Else WinSetOnTop($NFO , "" , 0) GUICtrlSetState($OnTop, $GUI_UNCHECKED) EndIf GUICtrlSetColor($Text , IniRead($SettingsPath , $Section , "TextCol" , $TextCol)) GUICtrlSetBkColor($Text , IniRead($SettingsPath , $Section , "NFOCol" , $NFOCol)) $Tray = 0 While 1 $GGM = GUIGetMsg() $TGM = TrayGetMsg() Switch $GGM Case $GUI_EVENT_CLOSE Exit Case $GUI_EVENT_DROPPED $Buffer = GUICtrlRead($Text) $SetData = @GUI_DragFile $SetData = StringReplace($SetData,@CR,"") $SetData = StringReplace($SetData,@LF,"") If StringTrimLeft($SetData , StringLen($SetData) -4) = ".NFO" Then GUICtrlSetData($Text , FileRead($SetData)) Else If IniRead($SettingsPath , $Section , "Always on Top" , 0) = 1 Then WinSetOnTop($NFO , "" , 0) GUICtrlSetData($Text, StringReplace($Buffer, @GUI_DragFile, "")) MsgBox(16 , "Error" , "This isn't a NFO File!") WinSetOnTop($NFO , "" , 1) Else GUICtrlSetData($Text, StringReplace($Buffer, @GUI_DragFile, "")) MsgBox(16 , "Error" , "This isn't a NFO File!") EndIf EndIf Case $Open $FileOP = FileOpenDialog("NFO Viewer" , "" , "NFO File (*.NFO)") If Not @Error Then FileOpen($FileOP , 0) GUICtrlSetData($Text , FileRead($FileOP)) FileClose($FileOP) EndIf Case $Exit Exit Case $Trans If BitAND(GUICtrlRead($Trans) , $GUI_CHECKED) = $GUI_CHECKED Then WinSetTrans($NFO , "" , 255) GUICtrlSetState($Trans, $GUI_UNCHECKED) IniWrite($SettingsPath , $Section , "Trans" , 0) Else WinSetTrans($NFO , "" , 200) GUICtrlSetState($Trans, $GUI_CHECKED) IniWrite($SettingsPath , $Section , "Trans" , 1) EndIf Case $FontRed GUICtrlSetColor($Text , $Red) IniWrite($SettingsPath , $Section , "TextCol" , $Red) Case $FontBlue GUICtrlSetColor($Text , $Blue) IniWrite($SettingsPath , $Section , "TextCol" , $Blue) Case $FontBlack GUICtrlSetColor($Text , $Black) IniWrite($SettingsPath , $Section , "TextCol" , $Black) Case $FontWhite GUICtrlSetColor($Text , $White) IniWrite($SettingsPath , $Section , "TextCol" , $White) Case $FontGreen GUICtrlSetColor($Text , $Green) IniWrite($SettingsPath , $Section , "TextCol" , $Green) Case $FontPurple GUICtrlSetColor($Text , $Purple) IniWrite($SettingsPath , $Section , "TextCol" , $Purple) Case $FontYellow GUICtrlSetColor($Text , $Yellow) IniWrite($SettingsPath , $Section , "TextCol" , $Yellow) Case $FontChoose $Color = _ChooseColor(2) If Not @Error Then GUICtrlSetColor($Text , $Color) IniWrite($SettingsPath , $Section , "TextCol" , $Color) EndIf Case $BackgroundRed GUICtrlSetBkColor($Text , $Red) IniWrite($SettingsPath , $Section , "NFOCol" , $Red) Case $BackgroundBlue GUICtrlSetBkColor($Text , $Blue) IniWrite($SettingsPath , $Section , "NFOCol" , $Blue) Case $BackgroundBlack GUICtrlSetBkColor($Text , $Black) IniWrite($SettingsPath , $Section , "NFOCol" , $Black) Case $BackgroundWhite GUICtrlSetBkColor($Text , $White) IniWrite($SettingsPath , $Section , "NFOCol" , $White) Case $BackgroundGreen GUICtrlSetBkColor($Text , $Green) IniWrite($SettingsPath , $Section , "NFOCol" , $Green) Case $BackgroundPurple GUICtrlSetBkColor($Text , $Purple) IniWrite($SettingsPath , $Section , "NFOCol" , $Purple) Case $BackgroundYellow GUICtrlSetBkColor($Text , $Yellow) IniWrite($SettingsPath , $Section , "NFOCol" , $Yellow) Case $BackgroundChoose $Color = _ChooseColor(2) If Not @Error Then GUICtrlSetBkColor($Text , $Color) IniWrite($SettingsPath , $Section , "NFOCol" , $Color) EndIf Case $Screen BlockInput(1) If BitAND(GUICtrlRead($Screen) , $GUI_CHECKED) = $GUI_CHECKED Then WinSetState($NFO , "" , @SW_RESTORE) GUICtrlSetState($Screen, $GUI_UNCHECKED) Else WinSetState($NFO , "" , @SW_MAXIMIZE) GUICtrlSetState($Screen, $GUI_CHECKED) EndIf BlockInput(0) Case $OnTop If BitAND(GUICtrlRead($OnTop) , $GUI_CHECKED) = $GUI_CHECKED Then WinSetOnTop($NFO , "" , 0) GUICtrlSetState($OnTop, $GUI_UNCHECKED) IniWrite($SettingsPath , $Section , "Always on Top" , 0) Else WinSetOnTop($NFO , "" , 1) GUICtrlSetState($OnTop, $GUI_CHECKED) IniWrite($SettingsPath , $Section , "Always on Top" , 1) EndIf Case $Reg If _MainMerc() = 1 Then ExitLoop _Reg() $WarTitle = "Warning!" $Warning = "Mercenary would just like to let you know that it needs to restart explorer.exe in order to take effect." $RegTitle = "Completed!" $RegMessage = "Mercenary should now be able to work with NFO files." If IniRead($SettingsPath , $Section , "Always on Top" , 0) = 1 Then WinSetOnTop($NFO , "" , 0) MsgBox(16 , $WarTitle , $Warning) _ProcessRestart() MsgBox(0 , $RegTitle , $RegMessage) WinSetOnTop($NFO , "" , 1) Else MsgBox(16 , $WarTitle , $Warning) _ProcessRestart() MsgBox(0 , $RegTitle , $RegMessage) EndIf Case $UnReg _UnReg() $WarTitle = "Warning!" $Warning = "Mercenary would just like to let you know that it needs to restart explorer.exe in order to take effect." $UnRegTitle = "Completed!" $UnRegMessage = "Mercenary is now fully uninstalled but will add itself to desktop incase you want to reinstall it at a later time." If IniRead($SettingsPath , $Section , "Always on Top" , 0) = 1 Then WinSetOnTop($NFO , "" , 0) MsgBox(16 , $WarTitle , $Warning) _ProcessRestart() MsgBox(0 , $UnRegTitle , $UnRegMessage) WinSetOnTop($NFO , "" , 1) Else MsgBox(16 , $WarTitle , $Warning) _ProcessRestart() MsgBox(0 , $UnRegTitle , $UnRegMessage) EndIf EndSwitch Switch $TGM Case $TrayOpen $FileOP = FileOpenDialog("NFO Viewer" , "" , "NFO File (*.NFO)") If Not @Error Then FileOpen($FileOP , 0) GUICtrlSetData($Text , FileRead($FileOP)) FileClose($FileOP) EndIf If $Tray = 1 Then GUISetState(@SW_SHOW , $NFO) TrayItemSetText($TrayState , "Hide") $Tray = 0 EndIf Case $TrayState If $Tray = 0 Then GUISetState(@SW_HIDE , $NFO) TrayItemSetText($TrayState , "Show") $Tray = 1 ElseIf $Tray = 1 Then GUISetState(@SW_SHOW , $NFO) TrayItemSetText($TrayState , "Hide") $Tray = 0 EndIf Case $TrayExit Exit EndSwitch WEnd Func _Reg() RegWrite("HKCR\.NFO", "", "REG_SZ", "") RegWrite("HKCR\.NFO" , "" , "REG_SZ" , "NFOFile") RegWrite("HKCR\.NFO", "", "REG_SZ", "Mercenary NFO Viewer") RegWrite("HKCR\.NFO\Shell", "", "REG_SZ", "") RegWrite("HKCR\.NFO\Shell\Open", "", "REG_SZ", "") RegWrite("HKCR\.NFO\Shell\Open\Command" , "" , "REG_SZ" , @AutoItExe & " %1") RegWrite("HKCR\.NFO\DefaultIcon", "", "REG_SZ", @AutoItExe & ',0') EndFunc Func _UnReg() FileCopy(@AutoItExe , @DesktopDir) RegDelete("HKCR\.NFO") DirRemove($MainPath , 1) EndFunc Func _ProcessRestart() $Process = "Explorer.exe" If ProcessExists($Process) Then Do ProcessClose($Process) Until Not ProcessExists($Process) ShellExecute($Process) EndIf EndFunc Func _MainMerc() If FileExists($MainPath & $Executable) And @AutoItExe <> $MainPath & $Executable Then RegDelete("HKCR\.NFO") RegWrite("HKCR\.NFO", "", "REG_SZ", "") RegWrite("HKCR\.NFO" , "" , "REG_SZ" , "NFOFile") RegWrite("HKCR\.NFO", "", "REG_SZ", "Mercenary NFO Viewer") RegWrite("HKCR\.NFO\Shell", "", "REG_SZ", "") RegWrite("HKCR\.NFO\Shell\Open", "", "REG_SZ", "") RegWrite("HKCR\.NFO\Shell\Open\Command" , "" , "REG_SZ" , $MainPath & $Executable & " %1") RegWrite("HKCR\.NFO\DefaultIcon", "", "REG_SZ", $MainPath & $Executable & ',0') If @Compiled = 1 Then _SelfDelete() EndIf _ProcessRestart() Return 1 EndIf EndFunc Func _SelfDelete($iDelay = 0) Local $sCmdFile FileDelete(@TempDir & "\scratch.bat") $sCmdFile = 'ping -n ' & $iDelay & '127.0.0.1 > nul' & @CRLF _ & ':loop' & @CRLF _ & 'del "' & @ScriptFullPath & '"' & @CRLF _ & 'if exist "' & @ScriptFullPath & '" goto loop' & @CRLF _ & 'del ' & @TempDir & '\scratch.bat' FileWrite(@TempDir & "\scratch.bat", $sCmdFile) Run(@TempDir & "\scratch.bat", @TempDir, @SW_HIDE) EndFunc Func _CreateIniFile() FileDelete($SettingsPath) DirCreate($MainPath) IniWrite($SettingsPath , $Section , $KeyRun , $Run);Run Once IniWrite($SettingsPath , $Section , $KeyNFOCol , $NFOCol);NFO Background Color IniWrite($SettingsPath , $Section , $KeyTextCol , $TextCol);NFO Text Color IniWrite($SettingsPath , $Section , $KeyTrans , $Trans) ;NFO Transparent IniWrite($SettingsPath , $Section , $KeyOnTop , $AlwaysOnTop) ;NFO on Top EndFunc ;Func _Exit() #cs The Purpose of making sure the Process exists is just incase a Antivirus trys to stop the programming from running and I want make sure they have access to explorer.exe. #CE ;$Process = "Explorer.exe" ;If Not ProcessExists($Process) Then ; ShellExecute($Process) ;EndIf ;EndFunc Edited May 16, 2011 by FriendsFade
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now