Author Archives: Stanford

code … killproc.c

This week is Computer Science Education Week.  As part of their Hour of Code, I will be posting my source code from as far as back as possible.

It’s a bunch of gunk and fudges, so don’t judge me.  BTW… everything is BSD licensed.


 

After years of having to do it either manually through Task Manager or using a scripting engine like AutoIT, I finally settled down and wrote my own Win32 application that does massacres processes that I don’t like.  Will post source code later. Note that this kills all instances of the specified process. Usage : killproc.exe […]


 

 

killproc.c

#include<windows.h>
#include<process.h>
#include <Tlhelp32.h>
#include<winbase.h>

#include<stdio.h>

#include<string.h>

void killProcessByName(const char*filename){
HANDLE hSnapShot =CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
PROCESSENTRY32 pEntry;
pEntry.dwSize =sizeof(pEntry);
BOOL hRes =Process32First(hSnapShot,&pEntry);
while(hRes){if(strcmp(pEntry.szExeFile, filename)==0){
HANDLE hProcess =OpenProcess(PROCESS_TERMINATE,0,(DWORD) pEntry.th32ProcessID);
if(hProcess != NULL){
TerminateProcess(hProcess,9);
CloseHandle(hProcess);
}
}
hRes =Process32Next(hSnapShot,&pEntry);
}
CloseHandle(hSnapShot);
}

int main(int argc, char * argv[]){
if (argc>1)
{
killProcessByName(argv[1]);
printf (“Killing process named %s\n”,argv[1]);
} else
{
printf (“Usage : killproc <procname>\n”);
}

return 0;
}

 

Code – helloworld.c

This week is Computer Science Education Week.  As part of their Hour of Code, I will be posting my source code from as far as back as possible.

It’s a bunch of gunk and fudges, so don’t judge me.  BTW… everything is BSD licensed.


 

Hello World on Windows.

#include “stdio.h”

void sayHello()
{
printf (“Hello Stanford ! Welcome back to Win32 API. You have been missed !! \n”);
}

int main()
{
sayHello();
return 0;
}

Using…too …much memory ……..

So about 2 months ago,  I installed ChruBuntu on my Acer Chromebook and  have been loving it for the most part.  However there is one nagging issue and it’s the memory usage that slows the system to a crawl when visiting some rich content websites (e.g. Youtube, FB, Gmail, etc).

A normal task would be to simply kill the browser process, ie. Firefox when the system gets sluggish. However by that time, opening a terminal window and then waiting for inputs to appear on the screen was getting ridiculous.  On average it would take me 2-4 minutes,  before I could kill the FIrefox process.

My solution : A shell script that runs every minute and monitors the memory usage.  The moment free memory drops below a certain threshold, all firefox (and Chrome) processes are executed with prejudice  !!

Here is the script

————————————————————————————

#!/bin/sh

/usr/bin/free -m | grep Mem | grep -v grep | awk ‘{print $4}’ > /tmp/freem1.log
mem=$(cat /tmp/freem1.log )
lmt=”95″
#echo “memory usage is $mem\n”

if [ “$mem” -gt “$lmt” ]
then
echo “Memory usage is fine at $mem \n”
else
echo “Memory is Less than $lmt at $mem. Killing chrome and firefox\n”

ps ax | grep firefox | grep -v grep| awk ‘{print $1}’ | xargs kill -9
ps ax | grep chrome | grep -v grep| awk ‘{print $1}’ | xargs kill -9
fi

————————————————–