Stringscan

Check-in [ace55adfc0]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Rev bump to 1.2 for Windows, extensive re-work of deployment to use shortcuts to rubyw because of crash in linked exe without console
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256:ace55adfc0492e99c4bda2eda5f937523469277659f50981b1567516ae94f7d2
User & Date: kevin 2018-06-05 03:16:34
Context
2018-06-05
04:39
Tweak for bgerror, software update Leaf check-in: 3db5b85264 user: kevin tags: trunk
03:16
Rev bump to 1.2 for Windows, extensive re-work of deployment to use shortcuts to rubyw because of crash in linked exe without console check-in: ace55adfc0 user: kevin tags: trunk
2018-06-03
21:09
Prepare Windows build check-in: 1317f8260d user: kevin tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to buildexe.bat.

1
2
call %1\gcc  icons.o versioninfo.o stringscan.c -m64 -I%2\include\ruby-2.3.0\x64-mingw32 -I%2\include -I%2\include\ruby-2.3.0 -L%2\lib -L%2\bin -L%2%\lib\libx64-msvcrt-ruby230-dll.a -llibx64-msvcrt-ruby230   -lShlwapi -mwindows -o Stringscan.exe
 
|

1
2
call %1\gcc  icons.o versioninfo.o stringscan.c -m64 -I%2\include\ruby-2.3.0\x64-mingw32 -I%2\include -I%2\include\ruby-2.3.0 -L%2\lib -L%2\bin -L%2%\lib\libx64-msvcrt-ruby230-dll.a -llibx64-msvcrt-ruby230 -lShlwapi -mwindows -o Stringscan.exe
 

Changes to install.bat.

20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
..
46
47
48
49
50
51
52
53



54
55

56
57
58
59

::test for key, add to registry
reg query "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Stringscan.exe"
if errorlevel 0 (
reg delete "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Stringscan.exe" /f
)
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Stringscan.exe" /f
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Stringscan.exe"  /ve /d "%appdata%\Stringscan_App\stringscan\Stringscan.exe" /f
 
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Stringscan" /f
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Stringscan" /f /v "DisplayIcon" /t REG_SZ /d "%appdata%\Stringscan\stringscan.ico"
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Stringscan" /f /v "DisplayName" /t REG_SZ /d "Stringscan"
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Stringscan" /f /v "InstallLocation" /t REG_SZ /d "%install_dir%"

reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Stringscan" /f /v "Publisher" /t REG_SZ /d "WordTech Communications LLC"
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Stringscan" /f /v "InstallDate" /t REG_SZ /d %DATE%
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Stringscan" /f /v "Version" /t REG_SZ /d 1.1.0
 
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Stringscan" /f /v "UninstallString" /t REG_SZ /d "cmd /c %appdata%\Stringscan\uninstall.bat"
 
::add to start menu
set startdir="%appdata%\Microsoft\Windows\Start Menu\Stringscan\"

if not exist %startdir% (
................................................................................
cd %startdir%

::mklink /H Stringscan.exe "%appdata%\Stringscan_App\stringscan\Stringscan.exe"

echo Set oWS = WScript.CreateObject("WScript.Shell") >%temp%\link.vbs
echo sLinkFile = "Stringscan.lnk" >>  %temp%\link.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >>  %temp%\link.vbs
echo oLink.TargetPath = "%appdata%\Stringscan_App\bin\Stringscan.exe" >> %temp%\link.vbs



echo oLink.Save >>  %temp%\link.vbs
call  %temp%\link.vbs

del %temp%\link.vbs

cd C:\Users\%username%\Desktop
echo Done.







|








|







 







|
>
>
>


>




20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
..
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

::test for key, add to registry
reg query "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Stringscan.exe"
if errorlevel 0 (
reg delete "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Stringscan.exe" /f
)
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Stringscan.exe" /f
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Stringscan.lnk"  /ve /d "%appdata%\Stringscan_App\stringscan\Stringscan.lnk" /f
 
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Stringscan" /f
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Stringscan" /f /v "DisplayIcon" /t REG_SZ /d "%appdata%\Stringscan\stringscan.ico"
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Stringscan" /f /v "DisplayName" /t REG_SZ /d "Stringscan"
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Stringscan" /f /v "InstallLocation" /t REG_SZ /d "%install_dir%"

reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Stringscan" /f /v "Publisher" /t REG_SZ /d "WordTech Communications LLC"
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Stringscan" /f /v "InstallDate" /t REG_SZ /d %DATE%
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Stringscan" /f /v "Version" /t REG_SZ /d 1.2.0
 
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Stringscan" /f /v "UninstallString" /t REG_SZ /d "cmd /c %appdata%\Stringscan\uninstall.bat"
 
::add to start menu
set startdir="%appdata%\Microsoft\Windows\Start Menu\Stringscan\"

if not exist %startdir% (
................................................................................
cd %startdir%

::mklink /H Stringscan.exe "%appdata%\Stringscan_App\stringscan\Stringscan.exe"

echo Set oWS = WScript.CreateObject("WScript.Shell") >%temp%\link.vbs
echo sLinkFile = "Stringscan.lnk" >>  %temp%\link.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >>  %temp%\link.vbs
echo oLink.TargetPath = "%appdata%\Stringscan_App\bin\rubyw.exe" >> %temp%\link.vbs
echo oLink.Arguments = "stringscan.rb" >> %temp%\link.vbs
echo oLink.IconLocation = "%appdata%\Stringscan\stringscan.ico" >> %temp%\link.vbs
echo oLink.WorkingDirectory = "%appdata%\Stringscan_App\bin"  >> %temp%\link.vbs
echo oLink.Save >>  %temp%\link.vbs
call  %temp%\link.vbs
copy /Y "Stringscan.lnk"  "%appdata%\Stringscan_App\bin"
del %temp%\link.vbs

cd C:\Users\%username%\Desktop
echo Done.

Changes to makeinstaller.bat.

1
2
3
4
5
6
7
8
9
10
call 7za a stringscan.zip .\build\*

iexpress /n stringscan.sed

set VERSION="1.1.0.0 (%date%)"
set FILEDESCR=/s desc "Installer for Stringscan"
set COMPINFO=/s company "WordTech Communications LLC" /s (c) "(c) 2017"
set PRODINFO=/s product "Stringscan" /pv "1.1.0.0"

"C:\Users\kevin\Desktop\verpatch.exe" /va Stringscan_Setup.exe %VERSION% %FILEDESCR% %COMPINFO% %PRODINFO% 




|

|
|


1
2
3
4
5
6
7
8
9
10
call 7za a stringscan.zip .\build\*

iexpress /n stringscan.sed

set VERSION="1.2.0.0 (%date%)"
set FILEDESCR=/s desc "Installer for Stringscan"
set COMPINFO=/s company "WordTech Communications LLC" /s (c) "(c) 2018"
set PRODINFO=/s product "Stringscan" /pv "1.2.0.0"

"C:\Users\kevin\Desktop\verpatch.exe" /va Stringscan_Setup.exe %VERSION% %FILEDESCR% %COMPINFO% %PRODINFO% 

Changes to scriptlibs/regproc/regproc.tcl.

36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
...
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265

    #set the 30-day clock for application/version
    proc setClock {} {
	variable datadir 
	variable appname
	variable appversion
	variable appstore
	puts "datadir is $datadir"

	set launchTime [clock seconds]
	set saveTime [open $datadir/$appname$appversion.dat w]
	puts $saveTime $launchTime
	close $saveTime
    }

................................................................................
	for {set i 1} {$i < $count} {incr i 1} {

	    lappend serialbase [string toupper $appname]-[expr $i * 5]-[expr $i/11]-[expr $i - 1]-[string toupper [string trim [string range $appname 0 1]]]
	}
	

	set output [lsearch  -inline $serialbase $serial]
	puts $serial
	puts $output
	
	if {$output >= 0} {
	    cd $datadir
	    set lic [open $datadir/lic.dat w]
	    puts $lic "$serial"
	    close $lic
		grab release .number







<







 







<
<







36
37
38
39
40
41
42

43
44
45
46
47
48
49
...
249
250
251
252
253
254
255


256
257
258
259
260
261
262

    #set the 30-day clock for application/version
    proc setClock {} {
	variable datadir 
	variable appname
	variable appversion
	variable appstore


	set launchTime [clock seconds]
	set saveTime [open $datadir/$appname$appversion.dat w]
	puts $saveTime $launchTime
	close $saveTime
    }

................................................................................
	for {set i 1} {$i < $count} {incr i 1} {

	    lappend serialbase [string toupper $appname]-[expr $i * 5]-[expr $i/11]-[expr $i - 1]-[string toupper [string trim [string range $appname 0 1]]]
	}
	

	set output [lsearch  -inline $serialbase $serial]


	
	if {$output >= 0} {
	    cd $datadir
	    set lic [open $datadir/lic.dat w]
	    puts $lic "$serial"
	    close $lic
		grab release .number

Changes to stringscan.rb.

25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
TkPackage.require('xplat')

if $platform == 'aqua'
    $accelkey = 'Command'
else 
    $accelkey = 'Control'
end


class StringscanApp

    #here we initialize our app class
    def initialize

        $dirname = ""







<







25
26
27
28
29
30
31

32
33
34
35
36
37
38
TkPackage.require('xplat')

if $platform == 'aqua'
    $accelkey = 'Command'
else 
    $accelkey = 'Control'
end


class StringscanApp

    #here we initialize our app class
    def initialize

        $dirname = ""