home *** CD-ROM | disk | FTP | other *** search
/ Programming Tool Box / SIMS_2.iso / vb_code2 / vbsqueez / vbsqz.frm (.txt) < prev    next >
Visual Basic Form  |  1995-02-27  |  8KB  |  167 lines

  1.     VBSqueeze
  2. VB Squeeze
  3. Form1%
  4. btnSave
  5. &Save/Load Text
  6. FindWindow
  7. lpClassName
  8. lpWindowName
  9. GetActiveWindow
  10. GetWindowText
  11. lpString&
  12.     nMaxChars
  13. SetActiveWindow
  14. FALSE
  15. FileName0
  16. OldFileName
  17. btnSave_Click
  18. VBhWnd>
  19. ActivehWnd
  20. PrevhWnd
  21.     Clipboard
  22. WndCaption
  23. RtnLen
  24. MB_OK
  25. Form_Unload
  26. Cancel<
  27.  VB SQUEEZE
  28. *  What is it?
  29. . *' 
  30. *  VB Squeeze is another useful(hopefully) little utility   *'
  31. *  that will save some of you some time and make your life  *'
  32. *  a little easier.
  33. *  What does it do?
  34. *  We all know that VB accumualates extra garbage in our
  35. *  Form files, and such, while we work, and the only way to *'
  36. *  get rid of it is to do a SaveText/LoadText for each of   *'
  37. *  our forms.  This can get to be very tedious indeed, so   *'
  38. *  VB Squeeze will do it for you, for each file in your
  39. *  project.
  40. *  How does it work?
  41. ( *' 
  42. *  VB Squeeze uses SendKeys to activate VB and perform the  *'
  43. *  necessary operations on each file.
  44. *  WARNING!
  45. *  I just got this idea and wanted to see if it would
  46. *  work so I threw it together very quickly. The code is
  47. *  commented but you will want to look it over for obvious  *'
  48. *  bugs that I missed and places to improve it(like error   *'
  49. *  checking of some sort). Since it relies on SendKeys it   *'
  50. *  is not the most reliable method of doing this but, hey,  *'
  51. *  it works. USE IT AT YOUR OWN RISK. If you modify and
  52. *  improve it I would love to hear about it. If you think   *'
  53. *  it's a lousy idea and a complete waste of time I want
  54. *  to know that too.
  55. ( *' 
  56. *  PLEASE!
  57. 2 *' 
  58. *  Look through the code before you run it(and don't use
  59. *  it on anything important at first) so you know what it   *'
  60. *  does to get the job done. You may want to modify it to   *'
  61. *  operate on a single file instead of all the files in
  62. *  your project.
  63. , *' 
  64. *  NOTES:
  65. *  The biggest note is this. If you have two files with
  66. *  the same prefix(i.e. MYAPP.FRM & MYAPP.BAS) then
  67. *  VB Squeeze will stop if they are consecutive in the
  68. *  project window(the global file seems to be the biggest   *'
  69. *  culprit). The reason is this. As VB Squeeze moves down   *'
  70. *  the list of files in the project window it compares the  *'
  71. *  name of the last file with that of the current file,
  72. *  and, if they match, it assumes it's at the last file.
  73. *  I hope someone comes up with a better method for this.   *'
  74. *  Why does only the prefix need to match? The filename is  *'
  75. *  taken from the Code|Save dialog box and .TXT is appended *'
  76. *  automatically.
  77. *  Error checking doesn't exist. You will want to add this  *'
  78. *  for safety(check for pre-existing files and such).
  79. *  IMPROVEMENTS:
  80. , *' 
  81. *  Please do!  I don't have the time to really make this a  *'
  82. *  priority project and I HATE doing the SaveText/LoadText  *'
  83. *  mambo.
  84. *  Maybe the saved text could be opened and all the
  85. *  comments and blank lines could be stripped to comapct
  86. *  code before compilation.
  87. *  Comments? Suggestions? I want 'em!
  88. *  Gregg Irwin CIS:ID 72450,676
  89. Userr
  90. Const NULL = 0&
  91.  '--If you want to pass NULL to FindWindow*
  92. btnSave_Click
  93. -- Class name for VB = "wndclass_desked_gsk"
  94. -- Caption for VB
  95.  = "Microsoft Visual Basic [design]"o
  96. wndclass_desked_gsk
  97. Microsoft Visual Basic [design]
  98. -- Make sure VB is running before we do anything
  99. -- If VB isn't active then activate it.n
  100. -- Save the handle of the currently active window
  101.    and activate VB. 
  102. -- Start with a clean clipboardn
  103. !@#$%^&*()
  104. -- Initialize OldFileName so we don't have
  105.    a match by accident or coinicidence.l
  106. -- Move to first file in project window-
  107. %{F6}
  108. -- Move to next VB owned window
  109. -- Initialize a string for an API call
  110. -- Get Window captiona
  111. -- Strip Chr$(0)
  112. -- We found the project window
  113. {HOME}
  114. -- Move to first fileh
  115. -- For each file in the project...
  116.  Save the code as text and then reload it to get
  117.  rid of all the old trash that hangs around.
  118. -- Reset file name for next iteration-
  119. -- Code|Save
  120. ^{INSERT}{ENTER}
  121. -- Clip filename to clipboard & Save txt file
  122. -- Save filename in variable
  123. -- Find the project window
  124. %{F6}
  125. -- Move to next VB owned window 
  126. -- Initialize a string for an API call
  127. -- Get Window captiona
  128. -- Strip Chr$(0)
  129. -- We found the project window
  130. -- If you don't open the code window before loading-
  131.    the text it will load as a separate module.
  132. --Open code window
  133. --Code|Loadd
  134. +{INSERT}%R
  135. --Paste filename & Click "&Replace" 
  136. -- Close the window before moving to the next file
  137.    otherwise the focus won't be in the project
  138.    window(and you're in big trouble then).
  139. % %{F4}
  140. --System Menu|Close-
  141. *  NOTE:  The File|Save command is commented out for good
  142.      reason. As I was working on this I ran the program   *' 
  143.      to test it and it ate my file(becuase it loads the   *' 
  144.      text in over the original file code). I consider
  145.      this to be a bad thing. I recommend that you let it  *'
  146.      Save/Load-Text all your files and then look at them  *'
  147.      to make sure it all worked *before* you save them.   *'
  148.      This is a quick hack with very little planning and   *'
  149.      forethought behind it. MAKE NO ASSUMPTION THAT IT
  150.      IS A FULLY TESTED PROGRAM THAT WILL WORK FOR YOU!!!  *'
  151.      I say this because it works on your entire project   *'
  152.      and could destroy a lot of work.  I am posting this  *'
  153.      app and all it's source in the hopes that someone
  154.      will find it useful(and maybe improve it as well).   *'
  155.      I don't have time right now to make it bulletproof.  *'
  156. **SendKeys "%FS", TRUE
  157.  '--File|Save 
  158. {DOWN}
  159. --Move to next filee
  160. Visual Basic is not running
  161. VB Squeeze...Didn't
  162. Len(VBhWnd)c
  163. -- Un-REM this to re-activate the window that wase
  164.    active when we started.
  165. dummy = SetActiveWindow(PrevhWnd) 
  166. Form_Unload
  167.