There is a way:
Category: Scripting
AutoHotKey and VBscript self-elevate to administrator
article #1104, updated 2554 days ago
Script/Macro capability won't enable in VBA
article #934, updated 3118 days ago
If all of your settings are correct but you still get the popup saying that macros are disabled, your OTM file — the VBA project file — is corrupt. In the case of Outlook:
- Export your modules to .BAS files
- Exit Outlook
- Go here in Explorer:
C:\Users\[user]AppData\Roaming\Microsoft\Outlook
- Delete the OTM file
- Restart Outlook
- Import your exported .BAS files into the new VBA project which it created for you.
Great VBScript reference
article #928, updated 3123 days ago
Seems like certain VBScript references are being ripped off of the Web; thus it was great to see this:
Windows automation / keyboard and mouse macros, in Python
article #823, updated 3398 days ago
Two very interesting and related developments:
WordPerfect Files
article #737, updated 3657 days ago
It’s not very much documented, but if you have a lot of WordPerfect files, try renaming their extensions to .DOC. Word will load them, unless they are very old files from WordPerfect for DOS.
If you have a huge tree of WPD files, use a batch file like this:
For /R "X:\TOP_OF_TREE" %%G in (.) Do ( Pushd %%G Echo now in %%G ren *.wpd *.doc Popd ) Echo "Done!"
An excellent resource on CMD, VBscript, PowerShell, Bash, Oracle, OS X, SQL Server, Access...
article #628, updated 3909 days ago
Try this:
Detect Computer Group Membership
article #544, updated 4154 days ago
Try this:
Dim objNetwork Set objNetwork = CreateObject("WScript.Network") Dim objWinntComp Set objWinntComp = GetObject("WinNT://" & objNetwork.UserDomain & "/" & objNetwork.ComputerName & ",computer") MsgBox "WinNT://" & objNetwork.UserDomain & "/" & objNetwork.ComputerName & ",computer" Dim strGroupToCheck strGroupToCheck = "GROUP_TO_DETECT" If IsMemberOfGroup(objNetwork.UserDomain, objWinntComp, strGroupToCheck) = True Then MsgBox "You are a member of " & strGroupToCheck ElseIf IsMemberOfGroup(objNetwork.UserDomain, objWinntComp, strGroupToCheck) = False Then MsgBox "You are NOT a member of " & strGroupToCheck WScript.Quit ElseIf IsMemberOfGroup(objNetwork.UserDomain, objWinntComp, strGroupToCheck) = "Error" Then MsgBox "There was no group found called " & strGroupToCheck WScript.Quit End If Function IsMemberOfGroup(strUserDomain, objComp, strGroup) 'the user is a member of a specified group IsMemberOfGroup = False Dim objGroup On Error Resume Next Set objGroup = GetObject("WinNT://" & strUserDomain & "/" & strGroup & ",group") If Err.Number Then IsMemberOfGroup = "Error" Else IsMemberOfGroup = objGroup.IsMember(objComp.ADsPath & "$") End If End Function
Iterate a folder in CMD
article #519, updated 4209 days ago
Try this:
@echo off for /D %%Q in (C:\*) do echo Directory: %%Q for %%Q in (C:\*) do echo File: %%Q
The above is a solid batch file — if you use the logic in the command shell, use single percents, not doubles!
Choose one or more files in Access (or other VBA) 2010
article #412, updated 4581 days ago
The below is revised from here. It works well, as long as a reference to the Microsoft Office [currentversion] Type Library is created. This is confirmed to work well in Access 2010.
Public Function ChooseFile() As String With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = False 'Select only one file .Title = "Choose file" 'Set dialog title .ButtonName = "Choose" 'Set the button caption '.Filters.Clear 'Make sure the filter list is clear 'Add 2 filters '.Filters.Add "JPEGs", "*.jpg" '.Filters.Add "Bitmaps", "*.bmp" '.FilterIndex = 2 ' Set the filter index to 2 '.Filters.Add "All", "*.*" 'Set initial path .InitialFileName = "" 'Optionally show files as thumbnails '.InitialView = msoFileDialogViewThumbnail .InitialView = msoFileDialogViewList 'Show the dialog and test the return If .Show = 0 Then 'didn't pick a file - exit sub ChooseFile = "" Exit Function End If 'Should be only one file name - grab it ChooseFile = Trim(.SelectedItems(1)) 'On Error Resume Next 'Set error trap End With End Function
Send email via Gmail SMTP by VBscript (incl. SMTP auth!)
article #341, updated 4783 days ago
Here is a VBscript which, if edited for your Gmail account and environment, will work well on anything XP, Server 2003, or above. It does not require any additional installations, CDO is an object built in to Windows:
EmailSubject = "Sending Email by CDO" EmailBody = "This is the body of a message sent via" & vbCRLF & _ "a CDO.Message object using SMTP authentication." Const EmailFrom = "self@gmail.com" Const EmailFromName = "My Very Own Name" Const EmailTo = "someone@destination.com" Const SMTPServer = "smtp.gmail.com" Const SMTPLogon = "self@gmail.com" Const SMTPPassword = "gMaIlPaSsWoRd" Const SMTPSSL = True Const SMTPPort = 465 Const cdoSendUsingPickup = 1 'Send message using local SMTP service pickup directory. Const cdoSendUsingPort = 2 'Send the message using SMTP over TCP/IP networking. Const cdoAnonymous = 0 ' No authentication Const cdoBasic = 1 ' BASIC clear text authentication Const cdoNTLM = 2 ' NTLM, Microsoft proprietary authentication ' First, create the message Set objMessage = CreateObject("CDO.Message") objMessage.Subject = EmailSubject objMessage.From = """" & EmailFromName & """ <" & EmailFrom & ">" objMessage.To = EmailTo objMessage.TextBody = EmailBody ' Second, configure the server objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPServer objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusername") = SMTPLogon objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = SMTPPassword objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = SMTPPort objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = SMTPSSL objMessage.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 objMessage.Configuration.Fields.Update ' Now send the message! objMessage.Send