Tracerplus : Change Connect Project via Text

Tracerplus Connect software makes a hardcoded reference to the linked Tracerplus Desktop project. However if you need to relocate the directory of the Desktop project that will break the Connect references to the fields and cause the synchronization to fail.

If you move the Desktop project the following workflow may be best:

  1. Stop the Connect Server service
  2. Move the Desktop project (via export > import)
  3. locate the “.tce” file in the Connect project directory and replace all occurrences of the string :
    projectfile="C:\TracerplusDesktop\Project\DesktopProject.tpp">

    with the new directory, so if the new dir is “D:\TP” it would become:

    projectfile="D:\TP\DesktopProject.tpp">

Adobe Photoshop CS3 Crashing When Exiting

It’s very old now but still in use somewhere … Running on Windows Ent x64 and crashing when exiting.

 

Resolved by renaming / deleting the preference file “Adobe Photoshop X Prefs.psp”.
Users/[Username]/AppData/Roaming/Adobe/Adobe Photoshop [version #]/Adobe Photoshop [version #] Settings

 

creds:

https://forums.adobe.com/thread/375776

Windows Software Won’t Uninstall – Reboot Required Despite Rebooting

If this problem happens then it may be a result of failing pending changes to the Windows OS. These file changes are listed in a registry key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\

under DWORD:

PendingFileRenameOperation

I would suggest first renaming this DWORD value, with the prefix “OLD_” or something similar and then attempting the un/install again.

If there were some unexpected results in renaming the file it is trivial to remove the prefix and restore the system but best practice would include an entire registry export prior to fiddling!

Export Windows Registry

 

Google Sheets Image into Cell image(url)

Full credit to Eric Mercer via http://googlesheetshelp.blogspot.fr/2014/11/method-for-displaying-images-stored-on.html

The key to using images from Google Drive inside of a cell in a Google Sheets document is to check the sharing options apply to the viewer / owner of the google sheets and reformat the url for the image.

  1. The containing folder and the image itself must be accessible by the Google Sheets document owner / viewer. They do not need to be public unless the google sheets document needs to be publicly viewable.
  2. Now get the shared URL for the image and reform it as indicated below:
    https://drive.google.com/open?id=0B9biAW_mGiSpQ1ZjWTNxLTE2RDQ&authuser=0
    Becomes:
    http://drive.google.com/uc?export=view&id=0B9biAW_mGiSpQ1ZjWTNxLTE2RDQ
  3. Finally you can insert the following code into the Google Sheets cell to display the image:
    =image("http://drive.google.com/uc?export=view&id=0B9biAW_mGiSpQ1ZjWTNxLTE2RDQ", 1)
  4. Options for image formatting thanks to https://support.google.com/docs/answer/97447?hl=en
    To add an image inside of a cell, you can use the following formulas to change the size of the image in the cell. You must have a URL for the image you're adding.
    
    Size to fit: Type =IMAGE("URL") or =IMAGE("URL", 1) into the cell with the URL of the image you want to add. Using this formula will scale the image to fit inside of the selected cell. If the cell is bigger than the image you're inserting, the remainder of the cell will be white.
    Stretch to fit: Type =IMAGE("URL", 2) into the cell with the URL of the image you want to add.Using this formula will stretch the image to fit inside of the selected cell. The aspect ratio (height vs. width) of the image won't be preserved.
    Original size: Type =IMAGE("URL", 3) into the cell with the URL of the image you want to add. Using this formula will add the image into the cell at its original size. If the image is bigger than the cell, some of the image may be cut off.
    Custom size: Type =IMAGE("URL", 4, height, width) into the cell with the URL of the image you want to add, as well as your custom height and width (in pixels). Using this formula will add the image into the cell with your custom size.

Outlook: Export all mail into Explorer

This guide uses a VB script copied from https://techniclee.wordpress.com/2013/05/09/export-outlook-folders-to-the-file-system/ as it’s basis.

The script here only copies emails from Outlook with no option for deleting the emails, for another layer of safety the deletion is left to the user to complete manually.

The script will copy all emails from a selected folder, including subfolders, into Windows and retain each email’s attachments, sender and recipient addresses along with the timestamp information relating to the email (not the creation date within Windows).

I’ve copied the edited script below for reference, thanks to the Keble IT Manager and a few of my own edits too I have a slightly improved version which handles errors better, this is available at the end of this article.

The process for importing this script to users is manual, thankfully only a handful of people require it so it’s not a huge overhead. The deployment process is:

From within Outlook:

  1. Click [File] > [Options] > [Customize Ribbon] and [TICK] the [Developer Ribbon] check box, click [OK] to all open menus to close them
  2. Click the [Developer] ribbon menu item > [Visual Basic]
  3. [Insert] > [Module]
  4. Copy and paste the script below into the window
  5. Click the [Save] button and close the [Visual Basic Window] to return to Outlook
  6. Click [File] > [Options] > [Customize Ribbon]
  7. [UN-TICK] the [Developer Ribbon]
  8. Click the [New Tab] button, highlight the [New Tab (Custom)] entry in the [Main Tabs] list > click the [Rename] button > Name the tab “Email Export”, click [OK] to save
  9. Highlight the [New Group (Custom)] entry in the [Main Tabs] list >  click the [Rename] button >Name the group “Export Highlighted Folder to Windows” > Select an appropriate icon
  10. In the left column, from the [Choose commands from:] drop-down menu select [Macros]
  11. Click and drag the [Project1.CopyOutlookFoldertoFileSystem] entry onto the newly created new group named “Export Highlighted Folder to Windows”
  12. Highlight the [Project1.CopyOutlookFoldertoFileSystem] entry in the [Main Tabs] list >  click the [Rename] button >Name the command “Export”.
  13. Click [OK] to close all open menus and return to Outlook

This creates a new tab with the script loaded into a single command named “Export” on the Outlook ribbon. The script doesn’t *ever* delete mail from Outlook, it only ever copies. To use the script:

  1. Highlight a folder on the Outlook navigation pane that you want to copy to Windows
  2. Click the new “Export” button
  3. Select the Windows folder you want to export to
  4. Click [OK] and wait for the export to complete, it may take a few minutes for 1GB+ folders
  5. Once the transfer window disappears the copy is complete, inspect the folder in Windows to ensure the emails are there
  6. Having double checked the export worked you can down delete the source folder from Outlook or all the emails inside it.

 

'On the next line edit the starting folder as desired. If you leave it blank, then the starting folder will be the local computer.
Const STARTING_FOLDER = ""
 
Dim objFSO As Object
 
Sub CopyOutlookFolderToFileSystem()
 ExportController "Copy"
End Sub
 
'Sub MoveOutlookFolderToFileSystem()
' ExportController "Move"
'End Sub
 
Sub ExportController(strAction As String)
 Dim olkFld As Outlook.MAPIFolder, strPath As String, dest As String
 strPath = SelectFolder(STARTING_FOLDER)
 If strPath = "" Then
 MsgBox "You did not select a folder. Export cancelled.", vbInformation + vbOKOnly, "Export Outlook Folder"
 Else
 Set objFSO = CreateObject("Scripting.FileSystemObject")
 Set olkFld = Application.ActiveExplorer.CurrentFolder
 ExportOutlookFolder olkFld, strPath
 If LCase(strAction) = "move" Then
 olkFld.Delete
 Else
 dest = strPath & "\" & olkFld.Name
 MsgBox "Now check that the right number of messages and folders are in " & dest & ", then delete the folder from Outlook"
 End If
 End If
 Set olkFld = Nothing
 Set objFSO = Nothing
End Sub
 
Sub ExportOutlookFolder(ByVal olkFld As Outlook.MAPIFolder, strStartingPath As String)
 Dim olkSub As Outlook.MAPIFolder, olkItm As Object, strPath As String, strMyPath As String, strSubject As String, intCount As Integer, s As String, d As Date, f As String, itemlist As Outlook.items
 
 On Error Resume Next
 ' Set an initial date just in case first item is broken
 d = Date
 strPath = strStartingPath & "\" & olkFld.Name
 objFSO.CreateFolder strPath
 ' Folder exists
 If Err.Number = 58 Then
 Dim rc As Integer
 rc = MsgBox("The folder " & strPath & " already exists, proceed anyway?", vbOKCancel)
 If rc = 1 Then
 Err.Clear
 Else
 Exit Sub
 End If
 End If
 
 Set itemlist = olkFld.items
 itemlist.Sort "[SentOn]", False
 
 For Each olkItm In itemlist
 ' Start with clean slate
 Err.Clear
 s = RemoveIllegalCharacters(olkItm.Subject)
 If Err.Number <> 0 Then
 s = "[Error in subject]"
 Err.Clear
 End If
 
 f = RemoveIllegalCharacters(olkItm.SenderName)
 If Err.Number <> 0 Then
 f = "[Error in sender]"
 Err.Clear
 End If
 ' This may fail in very rare circumstances. It'll use the date of the previous item as we've not reset it. That's probably close enough as the items are sorted into ascending date order.
 d = olkItm.SentOn
 
 strSubject = "[From] " & f & " [Subject] " & s
 strFilename = strSubject & ".msg"
 intCount = 0
 Do While True
 strMyPath = strPath & "\" & strFilename
 If objFSO.FileExists(strMyPath) Then
 intCount = intCount + 1
 strFilename = strSubject & " (" & intCount & ").msg"
 Else
 Exit Do
 End If
 Loop
 olkItm.SaveAs strMyPath, olMSG
 ChangeTimeStamp strMyPath, d
 Next
 For Each olkSub In olkFld.Folders
 ExportOutlookFolder olkSub, strPath
 Next
 Set olkFld = Nothing
 Set olkItm = Nothing
End Sub
 
Function SelectFolder(varStartingFolder As Variant) As String
 ' This function is a modified version of the SelectFolder function written by Rob van der Woude (http://www.robvanderwoude.com/vbstech_ui_selectfolder.php)
 
 ' Standard housekeeping
 Dim objFolder As Object, objShell As Object
 
 ' Custom error handling
 On Error Resume Next
 
 ' Create a dialog object
 Set objShell = CreateObject("Shell.Application")
 Set objFolder = objShell.BrowseForFolder(0, "Select the folder you want to export to", 0, varStartingFolder)
 
 ' Return the path of the selected folder
 If TypeName(objFolder) <> "Nothing" Then SelectFolder = objFolder.self.Path
 
 ' Standard housekeeping
 Set objFolder = Nothing
 Set objShell = Nothing
 On Error GoTo 0
End Function
 
Function RemoveIllegalCharacters(strValue As String) As String
 ' Purpose: Remove characters that cannot be in a filename from a string.'
 ' Written: 4/24/2009'
 ' Author: BlueDevilFan'
 ' Outlook: All versions'
 RemoveIllegalCharacters = strValue
 ' RemoveIllegalCharacters = LCase(RemoveIllegalCharacters)
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "<", "(")
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, ">", ")")
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, ":", "-")
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, Chr(34), "'")
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "/", "")
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "\", "")
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "|", "")
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "?", "")
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "*", "")
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "+", "")
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "@", "_at_")
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, Chr(9), "")
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "û", "u")
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "ü", "u")
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "à", "a")
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "ç", "c")
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "é", "e")
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "è", "e")
 RemoveIllegalCharacters = Replace(RemoveIllegalCharacters, "ê", "e")
End Function
 
Sub ChangeTimeStamp(strFile As String, datStamp As Date)
 Dim objShell As Object, objFolder As Object, objFolderItem As Object, varPath As Variant, varName As Variant
 varName = Mid(strFile, InStrRev(strFile, "\") + 1)
 varPath = Mid(strFile, 1, InStrRev(strFile, "\"))
 Set objShell = CreateObject("Shell.Application")
 Set objFolder = objShell.NameSpace(varPath)
 Set objFolderItem = objFolder.ParseName(varName)
 objFolderItem.ModifyDate = CStr(datStamp)
 Set objShell = Nothing
 Set objFolder = Nothing
 Set objFolderItem = Nothing
End Sub

MySQL ODBC 5.2.6 Driver for Windows (2008 r2)

I was unable to install the x86 or x64 MySQL ODBC driver (v5.2.6) in my Windows 2008r2 server due to a reported missing module, the exact error was:

“Product: MySQL Connector/ODBC 5.2 — Error 1918.Error installing ODBC driver MySQL ODBC 5.2 ANSI Driver, ODBC error 13: The setup routines for the MySQL ODBC 5.2 ANSI Driver ODBC driver could not be loaded due to system error code 126: The specified module could not be found. (C:Program FilesMySQLConnector ODBC 5.2myodbc5S.dll).. Verify that the file MySQL ODBC 5.2 ANSI Driver exists and that you can access it.”

A little searching turned up a gem from another blogger, copying C:WindowsSystem32msvcr100_clr0400.dll to C:WindowsSystem32msvcr100.dll and then restarting the MySQL driver installation worked a treat!

SOURCE: Thanks to Matt of http://iwantanitcareer.com for his reference in this fix!