Page 1 of 1

How to delete a file using the .js script?

Posted: Tue Jul 04, 2017 6:03 pm
by sexy96
I have such a script:

var sFile = "B:\TEMP\info.txt";
var hEditWnd = AkelPad.GetEditWnd();
var sEditFile = AkelPad.GetEditFile(0);
var hFont;
var aFont;

if (hEditWnd)
{
hFont = AkelPad.SendMessage(hEditWnd, 0x0031 /*WM_GETFONT*/, 0, 0);
aFont = GetFontArray(hFont, hEditWnd);
sEditFile = AkelPad.GetEditFile(0);

AkelPad.WriteFile(sFile, sEditFile + "\r\n", -1, 1250 /*nCP*/, 0 /*bBOM*/, 0 /*flags*/);
AkelPad.WriteFile(sFile, aFont[4] + "\r\n", -1, 1250, 0, 0x2 /*WFF_APPENDFILE*/);
// AkelPad.WriteFile(sFile, aFont[4] + "\r\n", -1, 1250 /*nCP*/, 0 /*bBOM*/, 0 /*flags*/);

AkelPad.Exec('"D:\AutoHotkey\AutoHotkeyU64.exe" "D:\WinCMD\AkelPad86\AHKFiles\plus.ahk"');
}

function GetFontArray(hFont, hWnd)
{
var oSys = AkelPad.SystemFunction();
var nLFSize = 28 + 32 * 2; //sizeof(LOGFONTW)
var lpLF = AkelPad.MemAlloc(nLFSize);
var aFont = [];

oSys.Call("Gdi32::GetObjectW", hFont, nLFSize, lpLF);

nHeight = AkelPad.MemRead(PtrAdd(lpLF, 0), 3 /*DTDWORD*/); //lfHeight
aFont[4] = -nHeight;

AkelPad.MemFree(lpLF);

return aFont;
}

I would like to add a command, to run this script
Removed at first "B:\TEMP\info.txt", if there is one.

What and where to type?

Posted: Wed Jul 05, 2017 5:41 pm
by KDJ
sexy96

Delete file by using FileSystemObject:

Code: Select all

var oFSO  = new ActiveXObject("Scripting.FileSystemObject");
var sFile = "E:\\Temp\\Info.txt";

if (oFSO.FileExists(sFile))
{
  try
  {
    oFSO.DeleteFile(sFile, 1 /*force delete RO file*/);
  }
  catch (oError)
  {}

  if (oFSO.FileExists(sFile))
    AkelPad.MessageBox(0, "Can not delete. File is locked!", WScript.ScriptName, 0 /*MB_OK*/);
  else
    AkelPad.MessageBox(0, "File has been deleted.", WScript.ScriptName, 0 /*MB_OK*/);
}
else
  AkelPad.MessageBox(0, "File does not exist!", WScript.ScriptName, 0 /*MB_OK*/);

Posted: Thu Jul 06, 2017 12:39 pm
by sexy96
Bardzo dziękuję, działa super.