Advertisement
6_2008-2009 Windows System Services #194794

How to prevent a second instance and take its parameters

Theodoros Bebekis bebekis@mail.otenet.gr (Delphi 2.0 -Delphi 3.0 - Delphi 4.0)

AI

AI Summary: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.

Source Code
original-source
void CTestView::OnSearch() 
	{
	
	// szFilename is declared in the header as array of char
	// look for MyFile.txt (or whatever)
	
		strcpy(szFilename,"MyFile.txt");
	
	// go to root directory (or to whichever directory that you wish)
	
		_chdir("C:\\");
	
	// search for the filename
	
		SearchDirectory();
	
	// announce when done
	
		MessageBox("Done Searching");	
	}

SearchDirectory() is called initially from OnSearch(). SearchDirectory() is then called recursively (from itself) until the end of the directory tree is reached and all branches are searched. 
	void CTestView::SearchDirectory() 
	{
		struct _finddata_t filestruct;
		long hnd;
		char buffer[_MAX_PATH];
	
	// set _findfirst to find everthing
	
		hnd = _findfirst("*",&filestruct);
	
	// if handle fails, drive is empty...
	
		if((hnd == -1)) return;
	
	// get first entity on drive - check if it's a directory
	
		if(::GetFileAttributes(filestruct.name) & FILE_ATTRIBUTE_DIRECTORY 
			&& !(::GetFileAttributes(filestruct.name) & FILE_ATTRIBUTE_HIDDEN)) { 
		
	// if so, change to that directory and recursively call SearchDirectory
		
			if(*filestruct.name != '.') { 
			
				_chdir(filestruct.name);
			
				SearchDirectory();
	// go back up one directory level
			
				_chdir("..");
			}
		}	
		else {
	// if it's not a directory and it matches what you want...
			if(!stricmp(filestruct.name,szFilename)) {
	// output the filename with path to debugger
				_getcwd(buffer,_MAX_PATH);
				strcat(buffer,"\\");
				strcat(buffer,filestruct.name);  
				strcat(buffer,"\r\n");
				OutputDebugString(buffer);
			}		
		}
	
		while(!(_findnext(hnd,&filestruct))) {
		
			if(::GetFileAttributes(filestruct.name) & FILE_ATTRIBUTE_DIRECTORY 
				&& !(::GetFileAttributes(filestruct.name) & FILE_ATTRIBUTE_HIDDEN)) {
			
				if(*filestruct.name != '.') {  
					_chdir(filestruct.name);
				
					SearchDirectory();
				
					_chdir("..");
				}
			}
			else {
			
				if(!stricmp(filestruct.name,szFilename)) {
					_getcwd(buffer,_MAX_PATH);  
					strcat(buffer,"\\");
					strcat(buffer,filestruct.name);
					strcat(buffer,"\r\n");
					OutputDebugString(buffer);
				}
			}
		}
	
		_findclose(hnd);	
	}
Upload
Basic File Functions
---------------------
Read File:
----------
Imports System
Imports System.IO
Public Module modmain
  Sub Main()
   Dim srFile as StreamReader = File.OpenText("C:\autoexec.bat")
   Console.WriteLine(srFile.ReadToEnd())
   srFile.Close
  End Sub
End Module
Write File:
-----------
Imports System
Imports System.IO
Public Module modmain
  Sub Main()
   Dim swFile as StreamWriter = File.CreateText("C:\test.txt")
   swFile.WriteLine("Hello World ;)")
   swFile.Flush()
   swFile.Close()
  End Sub
End Module
File Version Info:
------------------
Imports System
Imports System.Diagnostics
Public Module modmain
  Sub Main()
   Dim versionInfo As FileVersionInfo = FileVersionInfo.GetVersionInfo("C:\WINNT\Notepad.exe")
   Console.WriteLine("Notepad version " + versionInfo.FileVersion)
   Console.WriteLine("Description: " + versionInfo.FileDescription)
  End Sub
End Module
File Size:
----------
Imports System
Imports System.IO
Public Module modmain
  Sub Main()
   Dim MyFile as new FileInfo ("c:\autoexec.bat")
   Console.WriteLine("The length of autoexec.bat is " _
     + MyFile.Length.ToString + " bytes.")
  End Sub
End Module
Copy Move and Delete File:
--------------------------
Imports System
Imports System.IO
Public Module modmain
  Sub Main()
   	File.Copy("c:\autoexec.bat", "c:\autocopy.ext")
   	File.Move("c:\autocopy.ext", "c:\newname.ext")
	File.Delete("c:\autocopy.ext")	
  End Sub
End Module
Temporary File Name:
---------------------
The GetTempFileName function creates a name for a temporary file. The filename is the concatenation of specified path and prefix strings, a hexadecimal string formed from a specified integer, and the .TMP extension.
Imports System
Imports System.IO
Public Module modmain
  Sub Main()
   Console.WriteLine(Path.GetTempFileName)
  End Sub
End Module
Original Comments (3)
Recovered from Wayback Machine