How to Import a Virtual Machine via VDI File

There are 2 methods.

 

Method 1:  “Machine -> New” to manually select the existing “vdi” file

  1. Refer to guide — www.arysontechnologies.com/blog/how-to-open-vdi-file/
    • Launch VirtualBox and create a new virtual machine. Choose an operating system among the choices given and click on Next button
    • Under Virtual Hard Disk, select Use existing hard disk and then click on the folder icon on the right
    • Now, a Virtual Media Manager window is opened. In that, click on the Add button and then select the VDI file which you want to open
    • Again, Virtual Hard Disk window is opened in which your new VDI is being shown and then click on Next
    • Now, your new virtual machine is started
    • After you have created, you may need to change the settings, e.g. network, as this “vbi” file was created using another machine/laptop.

Method 2: “Machine -> Add” to add “vbox” file

  1. Goto “Machine -> Add” to add a virtual machine , e.g.  Linux Mint version 17 Cinnamon 64 bit, from “X:\VirtualBox Files\Linux Mint\Linux Mint.vbox” into your VirtualBox
  2. After you have added/imported, you may need to change the settings, e.g. network, as this “vbox” file was created using another machine/laptop.

USB Drivers of FX30 and MOBITEK S80 Have Conflict — Bad_pool_caller

Problem: the USB Drivers for both FX30 and MOBITEK S80 cannot be installed in the same machine. Otherwise the below blue screen error will appear when trying to connect MOBITEK S80 3G Modem to the PC/machine.

 

Solutions: there are 3 solutions to choose:

  1. reboot Windows into “last known good configuration” (source: https://support.microsoft.com/en-my/help/4026863/windows-fix-error-0xc2-badpoolcaller);
  2. run system restore to restore Windows to the a date before FX30 USB driver was installed; or
  3. uninstall FX30 USB driver.

Test Result of MOBITEK SMS Engine — Enterprise Edition with TLS 1.2

Conclusion: MOBITEK SMS Engine — Enterprise Edition starting from version 5.8 until 8.x supports TLS 1.2 .

 

TEST DATE SMS ENGINE VERSION TLS 1.2 SSL 2.0 OS MS SQL SERVER ODBC DRIVER 64-BIT ODBC DRIVER 32-BIT .NET FRAMEWORK TEST RESULT
2020-05-14 8.3 Enabled Disabled by default Windows Server 2012 64 bit MS SQL Server 2017 Express ODBC Driver 13 for SQL Server v. 2017.140.1000.169 ODBC Driver 13 for SQL Server v. 2017.140.1000.169 4.7.2 16:50:30 SMS Engine Enterprise Edition service (8.3.0) started
16:50:35 Modem ID 8 : initialized
2020-05-20 7.1 Enabled Disabled by default Windows Server 2012 64 bit MS SQL Server 2017 Express ODBC Driver 13 for SQL Server v. 2017.140.1000.169 ODBC Driver 13 for SQL Server v. 2017.140.1000.169 4.7.2 09:47:04 SMS Engine Enterprise Edition service (7.1.0) started
09:47:09 Modem ID 8 : initialized
2020-05-20 8.3 Enabled Disabled by default Windows Server 2012 64 bit MS SQL Server 2017 Express ODBC Driver 13 for SQL Server v. 2017.140.1000.169 ODBC Driver 13 for SQL Server v. 2017.140.1000.169 4.7.2 10:29:17 SMS Engine Enterprise Edition service (8.3.0) started
10:29:22 Modem ID 8 : initialized
10:31:39 SMS Engine Enterprise Edition service (8.3.0) stopped
2020-05-21 5.8 Enabled Disabled by adding  DWORD: “Enabled” with value 0
in registry
Windows Server 2012 64 bit MS SQL Server 2017 Express ODBC Driver 13 for SQL Server v. 2017.140.1000.169 ODBC Driver 13 for SQL Server v. 2017.140.1000.169 4.6 16:10:25 SMS Engine Enterprise Edition service (version 5.8.1) started
16:10:29 Modem ID 8 : initialized
16:10:49 SMS Engine Enterprise Edition service (version 5.8.1) stopped

 

AutoHotkey: How to Define 2 Alphabet Keys as Hotkey

AutoHotkey allows user to define a custom combination of two keys (except joystick buttons) by using ampersand (&) between them. As for example:

a & b::MsgBox Hello!!!

Hold down <a> key then press <b> key to trigger the message box.

But by using this way, key <a> will become a prefix key. In other words, it will causes key <a> to lose its original function when it is pressed, i.e. “a” will not appear in text box. To avoid this behaviour, one of the way is to apply the tilde prefix (~) to the key.

For example:

~a & b::MsgBox Hello!!!

Using tilde in front of keys will maintain the native function of the keys used. However, Special hotkeys that are substitutes for alt-tab always ignore the tilde prefix.

 

Source:

Comparison of ReadAllText vs ReadLine vs ReadBlock vs ReadAllLines

When using ReadAllText method to read a log file with a size of 21.83MB, it takes between  7 seconds (for powerful CPU) to 12 seconds (for weak CPU).

 

SOLUTION SOLVED?
  1. I’ve used all possible method for loading .log/.txt extension file type into TextBox in VB.Net, eg. ReadLine, ReadAllLines, ReadAllText, ReadToEnd, but all methods result are the same. But the time load for the .log file is not actually long when execute in my laptop
  2. I think we should just stick with the current code because every solution that i found on the internet using the same all methods that i just mentioned. Probably will take much more longer time if want to solve this problem.
Failed
StreamReader.ReadLine

Source:

Dim file As New FileInfo("path\to\file")

Using reader As StreamReader = file.OpenText()
    While Not reader.EndOfStream
        Dim nextLine As String = reader.ReadLine()
        ProcessLine(nextLine)
    End While
End Using

 

NO

This method generates error maybe because the memory usage increase overtime due to many lines data read
I’m not sure what cause the error but the detail can be found here:
https://docs.microsoft.com/en-us/dotnet/framework/debug-trace-profile/contextswitchdeadlock-mda

Or maybe because i don’t actually know the correct way to use this method

StreamReader.ReadBlock

Source:

Const MAX_BYTES As Integer = 1048576 * 5 '=10 MB 
Dim bytesRead(MAX_BYTES) As Char
Dim numBytesRead As Integer
Dim currentPos As Integer = 0
Dim strFileName As String
Dim strm As System.IO.Stream
Dim TextLine As String
Dim FileDetail As IO.FileInfo

OpenFileDialogMain.ShowDialog()
strm = OpenFileDialogMain.OpenFile()
strFileName = OpenFileDialogMain.FileName.ToString()
  
Using reader As System.IO.TextReader = _
System.IO.File.OpenText(strFileName)
  numBytesRead = _
reader.ReadBlock(bytesRead, currentPos, MAX_BYTES)
  TextLine = reader.ReadLine()
End Using

txtEditor.Text = New String(bytesRead)
txtEditor.Text += TextLine
txtEditor.Text = txtEditor.Text & vbCrLf & Now

 

NO

This method can be used to fetch .log file but a bit slower than ReadAllText() method.

Completion time to load the log file into textbox is approximately 11-12 seconds

File.ReadAllLines

Source:

NO

This method opens a text file, reads all lines of the file into a string array, and then closes the file.

To load the string array into the textbox will use the same method as ReadLine() which is using Looping

 

Test Methodology

 

TEST DELL-E6410 MSI
StreamReader.Readline

How long does it take for Control Panel to load the log file
“X:\Support\Support Cases\264 (I19-2460-MACRO-ASP)\2020_1_14.log”, File size: 21.83MB

No result because of error No result because of error
StreamReader.ReadBlock

How long does it take for Control Panel to load the log file “X:\Support\Support Cases\264 (I19-2460-MACRO-ASP)\2020_1_14.log”, File size: 21.83MB

11-12 seconds 11-12 seconds
File.ReadAllLines

How long does it take for Control Panel to load the log file “X:\Support\Support Cases\264 (I19-2460-MACRO-ASP)\2020_1_14.log”, File size: 21.83MB

No result because of error No result because of error
What is the CPU? Intel(R) Core(TM) i5 CPU M560 @ 2.67GHz Intel(R) Core(TM) i5-4200 CPU @ 2.50GHz
What is the RAM? 4.00 GB (3.43 usable) 8.00 GB

Conclusion: stick with ReadAllText method to read a log file.

How to Run VB.net Code as an Administrator

Whenever you see this error message

“Cannot open [Windows service name] on computer “

error

you need to run the VB.Net code as an “Administrator”. There are 2 solutions available.

Solution 1: Modifying “app.manifest”

  1. Go to project and select “(Project Name) properties…”
    1
  2. Click on “View UAC Settings”
    2
  3. Find the code “<requestedExecutionLevel level=”asInvoker” uiAccess=”false” />”
    3
  4. Replace the code with “<requestedExecutionLevel level=”requireAdministrator” uiAccess=”false” />”
  5. You will be able to run your sample code now.
  6. Later, when the code is compiled to executable (exe), this VB.Net application will also run as “Administrator”.

 

Source:

 

Solution 2: Running Visual Studio as an “Administrator”

Step 1: Find Visual Studio IDE in program files, for my machine it is located at “C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE”a

Step 2: Right click on “vbexpress.exe” and select “Properties”b

Step 3: Click on “Compatibility”, then check on “Run this program as an administrator” , then click “OK”
c

Step 4: Run the program and it will run as administrator.