#108042 - 2003-11-17 02:57 PM
Sample code for new COM project
Howard Bullock
KiX Supporter
Registered: 2000-09-15
Posts: 5809
Loc: Harrisburg, PA USA
Below is a test script that work with the new DLL I working on providing. It will provide a Perl object and provide access to all the methods supported by the object. Well it looks like PostPrep needs to be updated. break on $iRC =SETOPTION ('WrapAtEOL' ,'on' ) $HABObject = createobject ("HBullock.AdminObjects" ) if vartypename ($HABObject1 ) < > "Object" ? "@serror" endif ; ChangeNotify test code ; Valid Filters (string containing any of the following flags separated by whitespace): ; ATTRIBUTES Any attribute change ; DIR_NAME Any directory name change ; FILE_NAME Any file name change (creating/deleting/renaming) ; LAST_WRITE Any change to a file's last write time ; SECURITY Any security descriptor change ; SIZE Any change in a file's size ;$ChangeNotify1 = $HABObject.ChangeNotify ("c:\data\scripts", 1, "FILE_NAME") ;$ChangeNotify2 = $HABObject.ChangeNotify ("c:\data\scripts", 1, "SIZE") ; ; ;$loop = 1 ;while ($loop) ; do ; $i = 1+ $i ; $result1 = $ChangeNotify1.wait(200) ; milliseconds ; $result2 = $ChangeNotify2.wait(200) ; milliseconds ; ? "Timeout: " + $i ; If $i>50 $loop=0 endif ; until $result1 < > 0 or $result2 < > 0 or $i>50 ; ; if $result1 ; ? "FILE_NAME: Something changed" ; $rc = $ChangeNotify1.reset ; ;Do Something about it... ; endif ; if $result2 ; ? "SIZE: Something changed" ; $rc = $ChangeNotify2.reset ; ;Do Something about it... ; endif ;loop $Zip1 = $HABObject.Zip ("C:\Data\Download\BBchecker.zip" ) $num = $Zip1.numberOfMembers ? @serror ? "Num of files in archive: " + $num ? ; Output list of files in the archive ; Note the use of the "List" method to make the array. This is case sensative. $files = $Zip1.List.memberNames $x =1 for each $member in $files ? "" + $x + ": " + $member $x = $x + 1 next ; Get a file from the archive as an object ? $file = "view.kix" $member = $Zip1.memberNamed ( $file ) ? "compressionMethod = " + $member.compressionMethod ? "lastModFileDateTime = " + $member.lastModFileDateTime ? "crc32string = " + $member.crc32String ? "uncompressedSize = " + $member.uncompressedSize ? "compressedSize = " + $member.compressedSize ; Extract file to a specified location. ? $rc = $member.extractToFileNamed ( "C:\Data\Scripts\PerlCtrl\objects\" + $file ) if $rc = 0 ? "Extraction was successful" else ? "Extraction Failed: $rc @serror" endif ? $Zip2 = $HABObject.Zip () $files = "C:\Data\Scripts\PerlCtrl\objects\Zip.html" , "C:\Data\Scripts\PerlCtrl\objects\HABobjects2.DLL" , "C:\data\scripts\[censored].kix" for each $file in $files $member = $Zip2.addFile ( $file ) if $Zip2.writeToFileNamed ( "C:\Data\Scripts\PerlCtrl\objects\Test.zip" ) = 0 ? "Added: " + $file endif next
Top
#108043 - 2003-11-17 02:59 PM
Re: Sample code for new COM project
Howard Bullock
KiX Supporter
Registered: 2000-09-15
Posts: 5809
Loc: Harrisburg, PA USA
Here the code again using code tags. Code: break on $iRC=SETOPTION('WrapAtEOL','on') $HABObject = createobject("HBullock.AdminObjects") if vartypename($HABObject1) <> "Object" ? "@serror" endif ; ChangeNotify test code ; Valid Filters (string containing any of the following flags separated by whitespace): ; ATTRIBUTES Any attribute change ; DIR_NAME Any directory name change ; FILE_NAME Any file name change (creating/deleting/renaming) ; LAST_WRITE Any change to a file's last write time ; SECURITY Any security descriptor change ; SIZE Any change in a file's size ;$ChangeNotify1 = $HABObject.ChangeNotify ("c:\data\scripts", 1, "FILE_NAME") ;$ChangeNotify2 = $HABObject.ChangeNotify ("c:\data\scripts", 1, "SIZE") ; ; ;$loop = 1 ;while ($loop) ; do ; $i = 1+ $i ; $result1 = $ChangeNotify1.wait(200) ; milliseconds ; $result2 = $ChangeNotify2.wait(200) ; milliseconds ; ? "Timeout: " + $i ; If $i>50 $loop=0 endif ; until $result1 <> 0 or $result2 <> 0 or $i>50 ; ; if $result1 ; ? "FILE_NAME: Something changed" ; $rc = $ChangeNotify1.reset ; ;Do Something about it... ; endif ; if $result2 ; ? "SIZE: Something changed" ; $rc = $ChangeNotify2.reset ; ;Do Something about it... ; endif ;loop $Zip1 = $HABObject.Zip("C:\Data\Download\BBchecker.zip") $num = $Zip1.numberOfMembers ? @serror ? "Num of files in archive: " + $num ? ; Output list of files in the archive ; Note the use of the "List" method to make the array. This is case sensative. $files = $Zip1.List.memberNames $x=1 for each $member in $files ? ""+ $x + ": " + $member $x = $x + 1 next ; Get a file from the archive as an object ? $file = "view.kix" $member = $Zip1.memberNamed( $file ) ? "compressionMethod = " + $member.compressionMethod ? "lastModFileDateTime = " + $member.lastModFileDateTime ? "crc32string = " + $member.crc32String ? "uncompressedSize = " + $member.uncompressedSize ? "compressedSize = " + $member.compressedSize ; Extract file to a specified location. ? $rc = $member.extractToFileNamed( "C:\Data\Scripts\PerlCtrl\objects\" + $file ) if $rc = 0 ? "Extraction was successful" else ? "Extraction Failed: $rc @serror" endif ? $Zip2 = $HABObject.Zip() $files = "C:\Data\Scripts\PerlCtrl\objects\Zip.html", "C:\Data\Scripts\PerlCtrl\objects\HABobjects2.DLL", "C:\data\scripts\[censored].kix" for each $file in $files $member = $Zip2.addFile( $file ) if $Zip2.writeToFileNamed( "C:\Data\Scripts\PerlCtrl\objects\Test.zip" ) = 0 ? "Added: " + $file endif next
Top
#108045 - 2003-11-17 06:59 PM
Re: Sample code for new COM project
Howard Bullock
KiX Supporter
Registered: 2000-09-15
Posts: 5809
Loc: Harrisburg, PA USA
Shawn that did not seem to make any difference. break on $iRC =SETOPTION ('WrapAtEOL' ,'on' ) $HABObject = createobject ("HBullock.AdminObjects" ) if vartypename ($HABObject1 ) < > "Object" ? "@serror" endif ; ChangeNotify test code ; Valid Filters (string containing any of the following flags separated by whitespace): ; ATTRIBUTES Any attribute change ; DIR_NAME Any directory name change ; FILE_NAME Any file name change (creating/deleting/renaming) ; LAST_WRITE Any change to a file's last write time ; SECURITY Any security descriptor change ; SIZE Any change in a file's size ;$ChangeNotify1 = $HABObject.ChangeNotify ("c:\data\scripts", 1, "FILE_NAME") ;$ChangeNotify2 = $HABObject.ChangeNotify ("c:\data\scripts", 1, "SIZE") ; ; ;$loop = 1 ;while ($loop) ; do ; $i = 1+ $i ; $result1 = $ChangeNotify1.wait(200) ; milliseconds ; $result2 = $ChangeNotify2.wait(200) ; milliseconds ; ? "Timeout: " + $i ; If $i>50 $loop=0 endif ; until $result1 < > 0 or $result2 < > 0 or $i>50 ; ; if $result1 ; ? "FILE_NAME: Something changed" ; $rc = $ChangeNotify1.reset ; ;Do Something about it... ; endif ; if $result2 ; ? "SIZE: Something changed" ; $rc = $ChangeNotify2.reset ; ;Do Something about it... ; endif ;loop $Zip1 = $HABObject.Zip ("C:\Data\Download\BBchecker.zip" ) $num = $Zip1.numberOfMembers ? @serror ? "Num of files in archive: " + $num ? ; Output list of files in the archive ; Note the use of the "List" method to make the array. This is case sensative. $files = $Zip1.List.memberNames $x =1 for each $member in $files ? "" + $x + ": " + $member $x = $x + 1 next ; Get a file from the archive as an object ? $file = "view.kix" $member = $Zip1.memberNamed ( $file ) ? "compressionMethod = " + $member.compressionMethod ? "lastModFileDateTime = " + $member.lastModFileDateTime ? "crc32string = " + $member.crc32String ? "uncompressedSize = " + $member.uncompressedSize ? "compressedSize = " + $member.compressedSize ; Extract file to a specified location. ? $rc = $member.extractToFileNamed ( "C:\Data\Scripts\PerlCtrl\objects\" + $file ) if $rc = 0 ? "Extraction was successful" else ? "Extraction Failed: $rc @serror" endif ? $Zip2 = $HABObject.Zip () $files = "C:\Data\Scripts\PerlCtrl\objects\Zip.html" , "C:\Data\Scripts\PerlCtrl\objects\HABobjects2.DLL" , "C:\data\scripts\[censored].kix" for each $file in $files $member = $Zip2.addFile ( $file ) if $Zip2.writeToFileNamed ( "C:\Data\Scripts\PerlCtrl\objects\Test.zip" ) = 0 ? "Added: " + $file endif next
Top
#108048 - 2003-11-18 12:13 PM
Re: Sample code for new COM project
Lonkero
KiX Master Guru
Registered: 2001-06-05
Posts: 22346
Loc: OK
k, doing a test... <table border cellpadding="10" style="background-color:black;border-color:red;border-style:inset;border-width:7;"><tr><td><pre><font face="Lucida Console" size=1 color=#EE82EE><font color=#40E0D0>function</font> <font color=#FF7F50>Uptime</font>() <font color=#40E0D0>dim</font> <font color=#FF7F50>$</font>,<font color=#FF7F50>$!</font>,<font color=#FF7F50>$y</font>,<font color=#FF7F50>$m</font>,<font color=#FF7F50>$d</font>,<font color=#FF7F50>$t</font> <font color=#40E0D0>For</font> <font color=#40E0D0>Each</font> <font color=#FF7F50>$</font> <font color=#40E0D0>in</font> <font color=#FF1493>GetObject</font>(<font color=#3CB371>"winmgmts:"</font>)<font color=#FF7F50>.InstancesOf</font>(<font color=#3CB371>"Win32_OperatingSystem"</font>) <font color=#FF7F50>$!</font> = <font color=#FF1493>split</font>(<font color=#FF7F50>$.LastBootUpTime</font>,<font color=#3CB371>"."</font>)[<font color=#EE82EE>0</font>] <font color=#FF7F50>$t</font>=<font color=#EE82EE>3600</font>*<font color=#FF1493>substr</font>(<font color=#FF7F50>$!</font>,<font color=#EE82EE>9</font>,<font color=#EE82EE>2</font>)+<font color=#EE82EE>60</font>*<font color=#FF1493>substr</font>(<font color=#FF7F50>$!</font>,<font color=#EE82EE>11</font>,<font color=#EE82EE>2</font>)+<font color=#FF1493>substr</font>(<font color=#FF7F50>$!</font>,<font color=#EE82EE>13</font>,<font color=#EE82EE>2</font>) <font color=#FF7F50>$y</font>=<font color=#FF1493>left</font>(<font color=#FF7F50>$!</font>,<font color=#EE82EE>4</font>) <font color=#FF7F50>$m</font>=<font color=#FF1493>substr</font>(<font color=#FF7F50>$!</font>,<font color=#EE82EE>5</font>,<font color=#EE82EE>2</font>) <font color=#FF7F50>$d</font>=<font color=#FF1493>substr</font>(<font color=#FF7F50>$!</font>,<font color=#EE82EE>7</font>,<font color=#EE82EE>2</font>) <font color=#FF7F50>$!</font>=<font color=#FF1493>split</font>(<font color=#FFFF00>@time</font>,<font color=#3CB371>":"</font>) <font color=#FF7F50>$t</font>=<font color=#EE82EE>3600</font>*<font color=#FF7F50>$!</font>[<font color=#EE82EE>0</font>]+<font color=#EE82EE>60</font>*<font color=#FF7F50>$!</font>[<font color=#EE82EE>1</font>]+<font color=#FF7F50>$!</font>[<font color=#EE82EE>2</font>]-<font color=#FF7F50>$t</font> <font color=#FF7F50>$!</font>=<font color=#FF1493>split</font>(<font color=#FFFF00>@date</font>,<font color=#3CB371>"/"</font>) <font color=#40E0D0>if</font> <font color=#FF7F50>$t</font><<b ></b><font color=#EE82EE>0</font> <font color=#FF7F50>$t</font>=<font color=#FF7F50>$t</font>+<font color=#EE82EE>86400</font> <font color=#FF7F50>$!</font>[<font color=#EE82EE>2</font>]=<font color=#EE82EE>0</font>+<font color=#FF7F50>$!</font>[<font color=#EE82EE>2</font>]-<font color=#EE82EE>1</font> <font color=#40E0D0>endif</font> <font color=#40E0D0>if</font> <font color=#FF7F50>$d</font>><font color=#FF7F50>$!</font>[<font color=#EE82EE>2</font>] <font color=#40E0D0>select</font> <font color=#40E0D0>case</font> <font color=#EE82EE>3</font>=<font color=#FF7F50>$!</font>[<font color=#EE82EE>1</font>] <font color=#FF7F50>$!</font>[<font color=#EE82EE>2</font>]=<font color=#EE82EE>28</font>+<font color=#FF7F50>$!</font>[<font color=#EE82EE>2</font>] <font color=#40E0D0>case</font> <font color=#FF1493>instr</font>(<font color=#3CB371>"2468911"</font>,<font color=#FF7F50>$!</font>[<font color=#EE82EE>1</font>]) <font color=#FF7F50>$!</font>[<font color=#EE82EE>2</font>]=<font color=#EE82EE>31</font>+<font color=#FF7F50>$!</font>[<font color=#EE82EE>2</font>] <font color=#40E0D0>case</font> <font color=#3CB371>"Lonk"</font> <font color=#FF7F50>$!</font>[<font color=#EE82EE>2</font>]=<font color=#EE82EE>30</font>+<font color=#FF7F50>$!</font>[<font color=#EE82EE>2</font>] <font color=#40E0D0>endselect</font> <font color=#FF7F50>$!</font>[<font color=#EE82EE>1</font>]=<font color=#EE82EE>0</font>+<font color=#FF7F50>$!</font>[<font color=#EE82EE>1</font>]-<font color=#EE82EE>1</font> <font color=#40E0D0>endif</font> <font color=#FF7F50>$!</font>[<font color=#EE82EE>2</font>]=<font color=#EE82EE>0</font>+<font color=#FF7F50>$!</font>[<font color=#EE82EE>2</font>]-<font color=#FF7F50>$d</font> <font color=#40E0D0>if</font> <font color=#FF7F50>$m</font>><font color=#FF7F50>$!</font>[<font color=#EE82EE>1</font>] <font color=#FF7F50>$!</font>[<font color=#EE82EE>1</font>]=<font color=#EE82EE>12</font>+<font color=#FF7F50>$!</font>[<font color=#EE82EE>1</font>] <font color=#FF7F50>$!</font>[<font color=#EE82EE>0</font>]=<font color=#EE82EE>0</font>+<font color=#FF7F50>$!</font>[<font color=#EE82EE>0</font>]-<font color=#EE82EE>1</font> <font color=#40E0D0>endif</font> <font color=#FF7F50>$!</font>[<font color=#EE82EE>1</font>]=<font color=#EE82EE>0</font>+<font color=#FF7F50>$!</font>[<font color=#EE82EE>1</font>]-<font color=#FF7F50>$m</font> <font color=#FF7F50>$!</font>[<font color=#EE82EE>0</font>]=<font color=#FF1493>right</font>(<font color=#3CB371>"000"</font>+(<font color=#EE82EE>0</font>+<font color=#FF7F50>$!</font>[<font color=#EE82EE>0</font>]-<font color=#FF7F50>$y</font>),<font color=#EE82EE>4</font>) <font color=#FF7F50>$!</font>[<font color=#EE82EE>1</font>]=<font color=#FF1493>right</font>(<font color=#3CB371>"0"</font>+<font color=#FF7F50>$!</font>[<font color=#EE82EE>1</font>],<font color=#EE82EE>2</font>) <font color=#FF7F50>$!</font>[<font color=#EE82EE>2</font>]=<font color=#FF1493>right</font>(<font color=#3CB371>"0"</font>+<font color=#FF7F50>$!</font>[<font color=#EE82EE>2</font>],<font color=#EE82EE>2</font>) <font color=#FF7F50>$Uptime</font>=<font color=#FF1493>join</font>(<font color=#FF7F50>$!</font>,<font color=#3CB371>"\"</font>) <font color=#FF7F50>$!</font>=<font color=#FF7F50>$t</font>/<font color=#EE82EE>3600</font> <font color=#FF7F50>$t</font>=<font color=#FF7F50>$t</font>-<font color=#EE82EE>3600</font>*<font color=#FF7F50>$!</font> <font color=#FF7F50>$Uptime</font>=<font color=#FF7F50>$Uptime</font>+<font color=#3CB371>" "</font>+<font color=#FF7F50>$!</font> <font color=#FF7F50>$!</font>=<font color=#FF7F50>$t</font>/<font color=#EE82EE>60</font> <font color=#FF7F50>$t</font>=<font color=#FF7F50>$t</font>-<font color=#EE82EE>60</font>*<font color=#FF7F50>$!</font> <font color=#FF7F50>$Uptime</font>=<font color=#FF7F50>$Uptime</font>+<font color=#3CB371>":"</font>+<font color=#FF7F50>$!</font>+<font color=#3CB371>":"</font>+<font color=#FF7F50>$t</font> <font color=#40E0D0>Next</font> <font color=#40E0D0>endfunction</font></font></pre></td></tr></table>
_________________________
! download
KiXnet
Top
#108051 - 2003-11-18 12:53 PM
Re: Sample code for new COM project
MCA
KiX Supporter
Registered: 2000-04-28
Posts: 5152
Loc: Netherlands, EU
Dear, Indeed a lot of work should be done for everyone after such migration. How is BBChecker doing it? greetings.
Top
Moderator: Shawn , ShaneEP , Ruud van Velsen , Arend_ , Jochen , Radimus , Glenn Barnas , Allen , Mart
1 registered
(Allen )
and 1198 anonymous users online.