The below finds the program and path via registery, but when I shell
nothing happens
#COMPILE EXE
$INCLUDE "WIN32API.INC
%REG_LEN = 1024
DECLARE FUNCTION GetReg(BYVAL iLocation AS LONG, BYVAL sSubKeys AS STRING, BYVAL sValueName AS STRING, BYVAL sDefault AS STRING) AS STRING
$programID = "TOSeM - Tired Of Spam eMail"
FUNCTION PBMAIN() AS LONG
LOCAL sName AS STRING, sMailClient AS STRING
' Get mail name...
sName = GetReg(%HKEY_LOCAL_MACHINE, "SOFTWARE\Clients\Mail", "", "")
sMailClient = GetReg(%HKEY_LOCAL_MACHINE, "SOFTWARE\Clients\Mail\" + sName + "\Protocols\mailto\shell\open\command", "", "")
MSGBOX sName + " " + sMailClient
' If in quotes, then get whats inside the quotes...
IF INSTR(sMailClient, CHR$(34)) THEN sMailClient = PARSE$(sMailClient, CHR$(34), 2)
' Execute mail client
y!= SHELL (sMailClient, 1)
END FUNCTION
'------------------------------------------------------------------------------
FUNCTION GetReg(BYVAL iLocation AS LONG, BYVAL sSubKeys AS STRING, BYVAL sValueName AS STRING, BYVAL sDefault AS STRING) AS STRING
LOCAL hKey AS LONG, zRegVal AS ASCIIZ * %REG_LEN
IF iLocation = 0 THEN iLocation = %HKEY_CURRENT_USER
IF RegOpenKeyEx(iLocation, TRIM$(sSubKeys, "\"), 0, %KEY_READ, hKey) = %ERROR_SUCCESS THEN
IF RegQueryValueEx(hKey, BYCOPY sValueName, 0, %REG_SZ, zRegVal, %REG_LEN) <> %ERROR_SUCCESS THEN GOTO RegStringDefault:
ELSE
RegStringDefault:
zRegVal = sDefault
END IF
IF hKey THEN RegCloseKey hKey
FUNCTION = zRegVal
END FUNCTION
------------------
nothing happens
#COMPILE EXE
$INCLUDE "WIN32API.INC
%REG_LEN = 1024
DECLARE FUNCTION GetReg(BYVAL iLocation AS LONG, BYVAL sSubKeys AS STRING, BYVAL sValueName AS STRING, BYVAL sDefault AS STRING) AS STRING
$programID = "TOSeM - Tired Of Spam eMail"
FUNCTION PBMAIN() AS LONG
LOCAL sName AS STRING, sMailClient AS STRING
' Get mail name...
sName = GetReg(%HKEY_LOCAL_MACHINE, "SOFTWARE\Clients\Mail", "", "")
sMailClient = GetReg(%HKEY_LOCAL_MACHINE, "SOFTWARE\Clients\Mail\" + sName + "\Protocols\mailto\shell\open\command", "", "")
MSGBOX sName + " " + sMailClient
' If in quotes, then get whats inside the quotes...
IF INSTR(sMailClient, CHR$(34)) THEN sMailClient = PARSE$(sMailClient, CHR$(34), 2)
' Execute mail client
y!= SHELL (sMailClient, 1)
END FUNCTION
'------------------------------------------------------------------------------
FUNCTION GetReg(BYVAL iLocation AS LONG, BYVAL sSubKeys AS STRING, BYVAL sValueName AS STRING, BYVAL sDefault AS STRING) AS STRING
LOCAL hKey AS LONG, zRegVal AS ASCIIZ * %REG_LEN
IF iLocation = 0 THEN iLocation = %HKEY_CURRENT_USER
IF RegOpenKeyEx(iLocation, TRIM$(sSubKeys, "\"), 0, %KEY_READ, hKey) = %ERROR_SUCCESS THEN
IF RegQueryValueEx(hKey, BYCOPY sValueName, 0, %REG_SZ, zRegVal, %REG_LEN) <> %ERROR_SUCCESS THEN GOTO RegStringDefault:
ELSE
RegStringDefault:
zRegVal = sDefault
END IF
IF hKey THEN RegCloseKey hKey
FUNCTION = zRegVal
END FUNCTION
------------------
Comment