Wednesday, April 13, 2011

FreeBasic : Code : runas in FreeBasic

#Include "windows.bi"
#inclib "advapi32"

Declare FUNCTION CreateProcessWithLogonW LIB "ADVAPI32" ALIAS "CreateProcessWithLogonW" ( _
    byval lpUsername As LPCWSTR  , _
BYVAL lpDomain AS LPCWSTR , _
BYVAL lpPassword AS LPCWSTR, _
BYVAL dwLogonFlags AS DWORD, _
BYVAL lpApplicationName AS LPCWSTR , _
BYVAL lpCommandLine AS LPCWSTR , _
BYVAL dwCreationFlags AS DWORD, _
BYVAL lpEnvironment AS DWORD, _
BYVAL lpCurrentDirectory AS LPCWSTR , _
lpStartupInfo AS STARTUPINFO, _
lpProcessInfo AS PROCESS_INFORMATION) AS LONG


Const X_CJ_LOGON_WITH_PROFILE=1
Const X_CJ_CREATE_DEFAULT_ERROR_MODE = &H04000000
'#############################################
'                   RunAsUser for Windows 2000 and Later
'#############################################

FUNCTION RunAsUser(BYVAL UserName AS STRING, _
        BYVAL Password AS STRING, _
        BYVAL DomainName AS STRING, _
        BYVAL CommandLine AS STRING, _
        BYVAL CurrentDirectory AS STRING) AS boolean       

    Dim si AS STARTUPINFO   
    Dim pi AS PROCESS_INFORMATION

    Dim AS String wCurrentDir,wCommandLine,wPassword,wUser,wDomain
    dim R01 AS LONG
   
    si.cb = LEN(si)
   
    wUser = UserName
    wDomain = DomainName
    wPassword = Password
    wCommandLine = CommandLine
    wCurrentDir = CurrentDirectory
     'Print wCommandLine & "TEST"
    R01 = CreateProcessWithLogonW(wUser,wDomain,wPassword, _
        X_CJ_LOGON_WITH_PROFILE, 0&, wCommandLine, _
        X_CJ_CREATE_DEFAULT_ERROR_MODE, 0&, wCurrentDir, si, pi)   
    IF R01 <> 0 THEN
      CloseHandle pi.hThread
      CloseHandle pi.hProcess     
      Return TRUE
    ELSE
      Return FALSE
    END If
End FUNCTION

Dim As Long R01
Dim As String  user_name,password,domain,program,workingDir

user_name="username"
password="pa$$word"
domain="domain"
program="C:\\windows\\notepad.exe"
workingDir="C:\\windows"

R01=RunAsUser(user_name,password,domain,program,workingDir)
 

Tuesday, April 12, 2011

Checking if any process is running using FreeBasic


#include once "windows.bi"               'in
#define UNICODE                          'this
#include once "disphelper/disphelper.bi" 'order
'

Function checkProcName(processName As String) As Boolean
dim as HRESULT hres
dim as zstring ptr procID,procPath, procName

DISPATCH_OBJ(wmiSvc)
DISPATCH_OBJ(colProc)
dhInitialize(TRUE)

hres=dhGetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2",NULL,@wmiSvc)
hres=dhGetValue("%o",@colProc,wmiSvc,".ExecQuery(%s)","Select * from Win32_Process Where Name='" & processName & "'") ' where Name=\'" & "notepad.exe" & "\'")
'
Dim  count  As Integer
count = 0
FOR_EACH0(objProc,colProc,NULL)
  count = count +1
  *procPath=""
  hres=dhGetValue("%s",@procPath,objProc,".ExecutablePath")
  hres=dhGetValue("%s",@procID,objProc,".ProcessID")
  hres=dhGetValue("%s",@procName,objProc,".Name")
   '
   if hres=0 then
       print *procID; tab(8);*procName
   end if
   '
NEXT_(objProc)
Print count
SAFE_RELEASE(wmiSvc)
SAFE_RELEASE(colProc)
dhUninitialize(TRUE)

If count = 0 Then
Return FALSE
Else
Return TRUE
EndIf
End Function


Dim test As Boolean
test= checkProcName("notepad.exe")
print:print "Sleeping to Exit.." & test
Sleep

Monday, April 11, 2011

FAQ's MSI Packaging & Repackaging

There are two version of the document. I have tried my best to have correct information and if you find any issue or wrong information then please inform me about it. The download location for them are as follows

Thursday, October 7, 2010

MSI Interview Questions. Ver: 0.0.1 Beta 4

Hello all,
I have updated the MSI Interview Questions, the updated document can be downloaded from http://sourceforge.net/projects/mayadeploy/files/FAQ/FAQ%20on%20MSI%20packaging%20and%20repackaging_0.0_1Beta4.pdf/download.
Enjoy solving the last 3 questions.
As always the questions & answers might be wrong.
:) so please correct me if that is the case :) .
Enjoy,
Mayank Johri

Alpha 1 Version of App-V Interview Questions

Dear All,
My first try to consolidate all the app-v interview questions. http://sourceforge.net/projects/softgridhelper/files/Documentations/AppV%20Interview%20Questions_Ver_0.0.1Alpha1.pdf/download
As always your comments and suggestions are most welcome.
Enjoy,
Mayank Johri

Sunday, July 25, 2010

FAQ: MSI Interview

I am posting the first draft of FAQ of MSI packaging & repackaging. It can be downloaded from here

Wednesday, May 19, 2010

TIPS: Python: Copying text in Clipboard using Python

following code lets you achieve that.
import win32clipboard
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardText(text)
win32clipboard.CloseClipboard()

Saturday, May 8, 2010

TIPS: Issues while compiling WXWidgets

If you have msys installed & added to the path then WxWidgets failes to compile and you will get the error which starts as follows

if not exist gcc_mswd mkdir gcc_mswd


The easiest solution to resolve is in the command prompt remove all the path folders except windows & mingw paths and then try to recompile in the same command window.

Thursday, May 6, 2010

TIPS: Most Important Calls From The RunDll32.exe & Shell32.Dll ...

Most Important Calls From The RunDll32.exe & Shell32.Dll ...

RUNDLL32.EXE shell32,SHFormatDrive',sw_normal

Module Command Result
main.cpl rundll32.exe shell32.dll,Control_RunDLL main.cpl @2 displays the Printers Folder (including Add Printer
rundll32.exe shell32.dll,Control_RunDLL main.cpl @3 displays the Fonts Folder in Explorer view
rundll32.exe shell32.dll,Control_RunDLL main.cpl @ displays Power Management Properties
Modem.cpl rundll32.exe shell32.dll,Control_RunDLL modem.cpl,,add Runs the Add New Modem wizard
Mmsys.cpl rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0 displays the Multimedia/Audio property page
rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,1 displays the Multimedia/Video property page
rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,2 displays the Multimedia/MIDI property page
rundll32.exe shell32.dll,Control_RunDLLmmsys.cpl,,3 Multimedia/CD Music property page
rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,4 displays the Multimedia/Advanced property pag
rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1 displays the Sound Properties page
Netcpl.cpl rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl displays the Networks properties, Configuration tab
Odbccp32.cpl rundll32.exe shell32.dll,Control_RunDLL odbccp32.cpl displays the ODBC32 Data Source Administrator propertie
Shell32.dll rundll32.exe shell32.dll,OpenAs_RunDLL {drive:\path\filename} displays the application/file "Open With" dialog
Password.cpl rundll32.exe shell32.dll,Control_RunDLL password.cpl displays the Passwords properties, Change Passwords tab
Powercfg.cpl rundll32.exe shell32.dll,Control_RunDLL powercfg.cpl displays the Power Management properties, Power Schemes tab
Intl.cpl rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0 displays the Regional Settings property page
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,1 displays the Numbers property page
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,2 displays the Currency property page
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,3 displays the Time property page
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,4 displays the Date property page
Divers RUNDLL.EXE rnaui.dll,RnaWizard Dial-Up Network connection wizard
RUNDLL.EXE shell,shellexecute Open Explorer window
sysdm.cpl,InstallDevice_Rundll Hardware Installation wizard
RUNDLL.EXE user,cascadechildwindows Cascade all windows
RUNDLL.EXE user,MessageBeep default beep sound
RUNDLL.EXE user,repaintscreen same as F5 in an Explorer window
RUNDLL.EXE user,setcursorpos cursor is set to the upper left
RUNDLL.EXE user,SwapMouseButton swapping mouse buttons
RUNDLL.EXE user,tilechildwindows Tile all windows
RUNDLL.EXE user,wnetconnectdialog Map Network drive
RUNDLL.EXE user,wnetdisconnectdialog Unmap Network drive
RUNDLL.EXE user,ExitWindows Exit Windows
RUNDLL.EXE user,ExitWindowsExec Restart Windows
RUNDLL32.EXE rnaserv,CallerAccess start Dial-Up Server
RUNDLL32.EXE shell32,Control_RunDLL start Control Panel
RUNDLL32.EXE shell32,Control_RunDLL X "X" = any CPL filename
RUNDLL32.EXE shell32,OpenAs_RunDLL "Open with" dialog box
RUNDLL32.EXE shell32,ShellAboutA About in an Explorer window
RUNDLL32.EXE shell32,SHExitWindowsEx X Exit Windows, where these values apply for X:
1: Exit Windows
2: Reboot PC
4: Close all applications
8: Exit Win and turn-off ATX-compatible PC
0: Restart Windows shell
-1: Restart Explorer
RUNDLL32.EXE shell32,SHFormatDrive "Format Disk" dialog box
RUNDLL.EXE krnl386.exe,exitkernel Exit Windows without prompting

Friday, April 9, 2010

Tips: wx.Python: Animated Gif in

import wx

import wx.animate # ..\wx\animate.py

class MyPanel(wx.Panel):

""" class MyPanel creates a panel, inherits wx.Panel """

def __init__(self, parent=None):


wx.Panel.__init__(self, parent)


self.SetBackgroundColour("white")


ag_fname = r"progress.gif"


self.ag = wx.animate.GIFAnimationCtrl(self, -1, ag_fname, pos=(0, 0), size=(64,64))


self.ag.GetPlayer().UseBackgroundColour(True)


self.ag.Play()


#self.ag.Stop()



if __name__ == '__main__':

app = wx.App(redirect = 0)


frame = MyPanel(None)


frame.Show(True)


app.SetTopWindow(frame)


app.MainLoop()