Never been to DZone Snippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

« Newer Snippets
Older Snippets »
Showing 1-10 of 10 total  RSS 

Using mmap to do a global search and replace on Windows

// Use win32-mmap to do a global search and replace on Windows

require 'win32/mmap'
require 'windows/msvcrt/buffer'
include Windows::MSVCRT::Buffer

Strlen = API.new('strlen', 'L', 'L', 'msvcrt')
Strstr = API.new('strstr', 'LP', 'L', 'msvcrt')

Dir["**/*.rb"].each{ |f|
   p f
   Win32::MMap.new(:file => f) do |addr|
      old_str = 'some_old_string'
      old_len = old_str.length
      new_str = 'some_other_string'
      new_len = new_str.length

      ptr1 = ptr2 = ptr3 = Strstr.call(addr,old_str)

      while ptr1 && ptr1 != 0
         ptr2 += new_len
         ptr3 += old_len
         memmove(ptr2, ptr3, 1 + Strlen.call(ptr3))
         memcpy(ptr1, new_str, new_len)
         ptr1 = ptr2 = ptr3 = Strstr.call(ptr2,old_str)
      end
   end
}

test1

// description of your code here

#include <stdio.h>
int main()
{
printf("test");
}

Open/Creates a Base Key in the Registry

// open a Base Key in the registry

       public static RegistryKey GetKey(string baseKey)
        {
            RegistryKey key;
            try
            {
                key = Registry.LocalMachine.OpenSubKey(baseKey, true);

                if (key == null)
                {
                    key = Registry.LocalMachine.CreateSubKey(baseKey);
                }
                else
                {
                    MessageBox.Show("Base key resolved");
                }
            }
            catch (Exception e)
            {
                return null;
            }
            return key;
        }

Wallpaper.reg

[HKEY_CURRENT_USER\Control Panel\Desktop]
"Wallpaper"="C:\\wallpaper.bmp"

Recover Master Boot Record

From http://www.trajano.net/2006/07/freedos-to-rescue.html:

http://www.freedos.org/freedos/files/
If you ever bust up your dual boot installation because you wanted to remove Linux on your laptop with no floppy drive. Like me a few minutes ago. Go grab the FreeDOS ISO image and burn it to your CD-RW media and boot from it.
Press Enter
Type 2 (for safe mode)
cd FREEDOS
FDISK /MBR

Mongrel on Win32 as Service

Mongrel now has support for running as a Win32 service right out of the box. The support is still rough but works well enough that we decided to release it. You can thank Luis Lavena for working on this and making it so nice.

After you do the gem install, find a Rails application you want to run and do:
$ mongrel_rails_service install -n myapp -r c:\my\path\to\myapp -p 4000 -e production
$ mongrel_rails_service start -n myapp

Now hit the port and poof, works. Stopping the app is just done with:
$ mongrel_rails_service stop -n myapp

And, you can even set the CPU processor affinity for the service when yourun the install command. Can’t even do that on POSIX yet. Now that’s hot.

If you run into an app that’s not running right, my suggestion is to run it with the regular mongrel_rails runner:
$ cd c:\my\path\to\myapp
$ mongrel_rails start -p 4500

Since that will spit out error messages and stuff to the console. Use CTRL-Pause/Break to stop.

Speech recognition

The code is too long. I'd rather just make a link.
It uses MS Speech SDK 5.1 via COM.

Text-to-speech

>>> import win32com.client
>>> s = win32com.client.Dispatch("SAPI.SpVoice")
>>> s.Speak('Hello, how are you?')

You need MS Speech SDK installed. See recipe.

Get and set windows clipboard

From June Kim's recipe.
import win32clipboard as w 
import win32con

def getText(): 
    w.OpenClipboard() 
    d=w.GetClipboardData(win32con.CF_TEXT) 
    w.CloseClipboard() 
    return d 
 
def setText(aType,aString): 
    w.OpenClipboard()
    w.EmptyClipboard()
    w.SetClipboardData(aType,aString) 
    w.CloseClipboard()

Creating a share on windows

Copied from John Nielson's recipe.
import win32net
import win32netcon

shinfo={}

shinfo['netname']='python test'
shinfo['type']=win32netcon.STYPE_DISKTREE
shinfo['remark']='data files'
shinfo['permissions']=0
shinfo['max_uses']=-1
shinfo['current_uses']=0
shinfo['path']='c:\\my_data'
shinfo['passwd']=''
server='servername'

win32net.NetShareAdd(server,2,shinfo)
« Newer Snippets
Older Snippets »
Showing 1-10 of 10 total  RSS