AutoHotkey Homepage AutoHotkey Community
Let's help each other out
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Sparrow: AHK WebServer w/ AHK in HTML support (sources incl)
Goto page Previous  1, 2, 3, 4, 5, 6, 7  Next
 
Reply to topic    AutoHotkey Community Forum Index -> Scripts & Functions
View previous topic :: View next topic  
Author Message
twhyman



Joined: 07 Dec 2005
Posts: 339

PostPosted: Fri Nov 21, 2008 2:16 am    Post subject: Reply with quote

Hi,

Any new version coming up soon? Very Happy
_________________
(\__/) This is Bunny.
(='.'=) Cut, copy, and paste bunny onto your sig.
(")_(") Help Bunny gain World Domination.
Back to top
View user's profile Send private message
Xatmo97
Guest





PostPosted: Sat Nov 22, 2008 6:46 pm    Post subject: .PHP Reply with quote

Is there anyway to use .php files with the webserver i tryed to use php and when i go to the url it loads html fine but when i try to click a link that uses .php it trys to download it insted of useing it
Back to top
derRaphael



Joined: 23 Nov 2007
Posts: 841
Location: ~/.

PostPosted: Sat Nov 22, 2008 7:41 pm    Post subject: Re: .PHP Reply with quote

twhyman wrote:
Hi,
Any new version coming up soon? Very Happy


there will be a new version - but please dont ask when Smile

Xatmo97 wrote:
Is there anyway to use .php files with the webserver i tryed to use php and when i go to the url it loads html fine but when i try to click a link that uses .php it trys to download it insted of useing it


php and others fail atm, because
a) the script is not fully working as expected and might crash - therefore this has highest priority to be fixed (but this is also the toughest job to get that done, so as written above it simply takes a while longer)
b) php aswell as vbs or perl needs CGI to work with sparrow. CGI allows any content being read from stdin and send back to stdout. this feature will be implemented, but it is not working at the moment. when CGI interface is done, not only php will work, but anything capable of sending stdout and reading from stdin will do.

greets
dR
_________________

    All scripts, unless otherwise noted, are hereby released under CC-BY
Back to top
View user's profile Send private message
Xatmo97
Guest





PostPosted: Mon Nov 24, 2008 7:47 am    Post subject: =) Reply with quote

Thank you
Back to top
twhyman



Joined: 07 Dec 2005
Posts: 339

PostPosted: Fri Nov 28, 2008 7:51 am    Post subject: Reply with quote

DerRaphael wrote:
twhyman wrote:
Hi,
Any new version coming up soon? Very Happy


there will be a new version - but please dont ask when Smile


I was just curious because i love to whole concept of spparow, and btw providing a free bump in the forum so other pepole will see spparow Wink
_________________
(\__/) This is Bunny.
(='.'=) Cut, copy, and paste bunny onto your sig.
(")_(") Help Bunny gain World Domination.
Back to top
View user's profile Send private message
shajul (offline)
Guest





PostPosted: Sun Nov 30, 2008 5:21 am    Post subject: Great!! Reply with quote

Just realized the potential of sparrow!!

Reeeeaaaally great!

I am currently using it to control my computer via WIFI with my phone. When automation with COM will be available (or when i figure it out), it will be simply great!

A bump from me too!
Back to top
LiquidGravity
Guest





PostPosted: Wed Jan 21, 2009 2:55 pm    Post subject: Reply with quote

I made a gui with IE embedded and realized the potential for creating web server html based gui programs. Combining the two things opens up entirely new possibilities for AutoHotkey programmers. Now you can design a gui for your computer in html, css, image maps,...
Back to top
skrommel



Joined: 30 Jul 2004
Posts: 190

PostPosted: Fri Jan 30, 2009 2:38 am    Post subject: Accessing javascript variables Reply with quote

Smile Great job, DerRaphael!

Is there any way to get the <?ahk tag to run from inside javascript?
The following code only runs when the page is refreshed...

Also, is there any way of accessing the javascript variables?

The code catches the position of a mouseclick on an image, and tries to send it to a script.

Skrommel

Code:

<html>
<head>
<meta http-equiv="refresh" content="10">
<script language="JavaScript">
function point_it(event){
    pos_x = event.offsetX?(event.offsetX):event.pageX-document.getElementById("pointer_div").offsetLeft;
    pos_y = event.offsetY?(event.offsetY):event.pageY-document.getElementById("pointer_div").offsetTop;
    document.getElementById("cross").style.left = (pos_x-1) ;
    document.getElementById("cross").style.top = (pos_y-15) ;
    document.getElementById("cross").style.visibility = "visible" ;
    document.pointform.form_x.value = pos_x;
    document.pointform.form_y.value = pos_y;
<?ahk
Run,click.exe %pos_x% %pos_y%
?>
}
</script>
</head>
<body>
<form name="pointform" method="post">
<div id="pointer_div" onclick="point_it(event)" style = "background-image:url('sun.jpg');width:500px;height:333px;">
<img src="point.gif" id="cross" style="position:relative;visibility:hidden;z-index:2;"></div>
You pointed on x = <input type="text" name="form_x" size="4" /> - y = <input type="text" name="form_y" size="4" />
</form>
</body>
</html>

_________________
www.1HourSoftware.com
Back to top
View user's profile Send private message Visit poster's website
Lexikos



Joined: 17 Oct 2006
Posts: 7299
Location: Australia

PostPosted: Fri Jan 30, 2009 8:29 am    Post subject: Reply with quote

JavaScript is client-side. In other words, Sparrow executes the AutoHotkey script, sends the page including JavaScript to the browser, then the browser runs the JavaScript. Interacting with the client directly could be done with Internet Explorer via COM, but defeats the purpose of Sparrow.

Off-topic: I originally wrote DispatchObj to make interacting with JavaScript in an IE window/WebBrowser control/HTML Dialog easier, but haven't developed it to its full potential since I haven't really much use for it.
Quote:
Is there any way to get the <?ahk tag to run from inside javascript?
It could be done indirectly like any other web server, assuming a scripted Sparrow page can accept POST data or arguments in the URL.
Back to top
View user's profile Send private message Visit poster's website
skrommel



Joined: 30 Jul 2004
Posts: 190

PostPosted: Fri Jan 30, 2009 5:20 pm    Post subject: Reply with quote

Smile Thanks, Lexicos, I'll have a look at it.

Quote:
It could be done indirectly like any other web server, assuming a scripted Sparrow page can accept POST data or arguments in the URL.


Can it, DerRaphael?

Skrommel
_________________
www.1HourSoftware.com
Back to top
View user's profile Send private message Visit poster's website
skrommel



Joined: 30 Jul 2004
Posts: 190

PostPosted: Fri Jan 30, 2009 9:43 pm    Post subject: Reply with quote

Embarassed I'm trying to create a simple remote control tool, so the above code would of course not work, as the javascript is running on another computer than Sparrow...

Does anyone know how Sparrow accept POST data or arguments in the URL, or must I go back to image maps and a couple thousand html files?

Skrommel
_________________
www.1HourSoftware.com
Back to top
View user's profile Send private message Visit poster's website
tank



Joined: 21 Dec 2007
Posts: 3700
Location: Louisville KY USA

PostPosted: Fri Jan 30, 2009 10:46 pm    Post subject: Reply with quote

who is lexicos?
_________________

We are troubled on every side‚ yet not distressed; we are perplexed‚
but not in despair; Persecuted‚ but not forsaken; cast down‚ but not destroyed;
Back to top
View user's profile Send private message
Lexicos



Joined: 05 Jan 2009
Posts: 7

PostPosted: Fri Jan 30, 2009 11:27 pm    Post subject: Reply with quote

There must be some sort of mistake?
Quote:
Does anyone know how Sparrow accept POST data or arguments in the URL,
Look in web\form.hkml.
Back to top
View user's profile Send private message
tank



Joined: 21 Dec 2007
Posts: 3700
Location: Louisville KY USA

PostPosted: Sat Jan 31, 2009 12:27 am    Post subject: Reply with quote

Lexik(c)os wrote:
That Lexicos, always stealing the credit for my work. Evil or Very Mad
rofl
_________________

We are troubled on every side‚ yet not distressed; we are perplexed‚
but not in despair; Persecuted‚ but not forsaken; cast down‚ but not destroyed;
Back to top
View user's profile Send private message
skrommel



Joined: 30 Jul 2004
Posts: 190

PostPosted: Mon Feb 02, 2009 12:27 am    Post subject: RemoteControl Reply with quote

Smile Sorry, Lexikos!

Here's a first version of my remote control tool. I'm having all kinds of problems with paths, is there any system variables list somewhere?

It will let you control your computer through a web interface, clicking and sending key presses.

It requires two files, index.hkml and CaptureScreen.ahk.

Skrommel

index.hkml goes in Sparrow's www folder:
Code:
<html>
<head>
  <title>Remote Control</title>
<script language="JavaScript">
function point_it(event)
{
    pos_x=event.offsetX?(event.offsetX):event.pageX-document.getElementById("pointer_div").offsetLeft;
    pos_y=event.offsetY?(event.offsetY):event.pageY-document.getElementById("pointer_div").offsetTop;
    document.getElementById("cross").style.left=(pos_x-1);
    document.getElementById("cross").style.top=(pos_y-15);
    document.pointform.form_x.value=pos_x;
    document.pointform.form_y.value=pos_y;
    document.pointform.submit();
}
</script>
</head>
<body>

<form name="pointform" method="post">
<div id="pointer_div" onclick="point_it(event)" style="background-image:url('
<?ahk
#NoEnv
SetBatchLines,-1
SetWinDelay,0

x:=$_POST[form_x]/500*A_ScreenWidth
y:=$_POST[form_y]/333*A_ScreenHeight

SendMode,Input
If ($_POST[shift]="on")
  Send,{Shift Down}
If ($_POST[ctrl]="on")
  Send,{Ctrl Down}
If ($_POST[alt]="on")
  Send,{Alt Down}
If ($_POST[win]="on")
  Send,{Win Down}
Send,% $_POST[text]

CoordMode,Mouse,Screen
If ($_POST[button]="left")
  MouseClick,Left,% x,% y,1,0
Else If ($_POST[button]="leftdown")
  MouseClick,Left,% x,% y,1,0,D
Else If ($_POST[button]="leftup")
  MouseClick,Left,% x,% y,1,0,U
Else If ($_POST[button]="leftdouble")
  MouseClick,Left,% x,% y,2,0
Else If ($_POST[button]="right")
  MouseClick,Right,% x,% y,,0
Else If ($_POST[button]="rightdown")
  MouseClick,Right,% x,% y,1,0,D
Else If ($_POST[button]="rightup")
  MouseClick,Right,% x,% y,1,0,U
Else If ($_POST[button]="rightdouble")
  MouseClick,Right,% x,% y,2,0

If ($_POST[shift]="on")
  Send,{Shift Up}
If ($_POST[ctrl]="on")
  Send,{Ctrl Up}
If ($_POST[alt]="on")
  Send,{Alt Up}
If ($_POST[win]="on")
  Send,{Win Up}

Sleep,1000
RunWait,CaptureScreen.ahk
filename:=$_SERVER[REQUEST] "screen.jpg#"
echo(filename)
?>
');width:500px;height:333px;">
<img src="point.gif" id="cross" style="position:relative;visibility:hidden;z-index:2;">
</div>
X=<input type="text" name="form_x" size="4"> Y=<input type="text" name="form_y" size="4">
<input type="Submit" value="Submit">
<br>
Text: <input type="Edit" name="text">
<br>
<input type="CheckBox" name="shift"> Shift
<input type="CheckBox" name="ctrl"> Ctrl
<input type="CheckBox" name="shift"> Alt
<input type="CheckBox" name="win"> Win
<br>
<input type="radio" name="button" value="left" checked="checked"> LButton
<input type="radio" name="button" value="leftdown"> LButton Down
<input type="radio" name="button" value="leftup"> LButton Up
<input type="radio" name="button" value="leftdouble"> LeftDoubleClick
<br>
<input type="radio" name="button" value="right"> RButton
<input type="radio" name="button" value="rightdown"> RButton Down
<input type="radio" name="button" value="rightup"> RButton Up
<input type="radio" name="button" value="rightdouble"> RightDoubleClick
<br>
</form>
</map>

<?ahk
echo(nl2br("$_POST -> " $_POST "`n"))
echo(nl2br("$_POST[form_x] -> " $_POST[form_x] "`n"))
echo(nl2br("$_POST[form_y] -> " $_POST[form_y] "`n"))
echo(nl2br("$_POST[button] -> " $_POST[button] "`n"))
echo(nl2br("$_POST[shift] -> " $_POST[shift] "`n"))
echo(nl2br("$_POST[ctrl] -> " $_POST[ctrl] "`n"))
echo(nl2br("$_POST[alt] -> " $_POST[alt] "`n"))
echo(nl2br("$_POST[win] -> " $_POST[win] "`n"))
echo(nl2br("$_POST[text] -> " $_POST[text] "`n"))
?>

<script language="JavaScript">
</script>
</body></html>



CaptureScreen.ahk goes in the main Sparrow folder:
Code:
#NoEnv
SetBatchLines,-1
SetWinDelay,0

CaptureScreen("0,0," A_ScreenWidth "," A_ScreenHeight ",500,333",True,A_ScriptDir "\www\screen.jpg")
Return


/* CaptureScreen(aRect, bCursor, sFileTo, nQuality)
1) If the optional parameter bCursor is True, captures the cursor too.
2) If the optional parameter sFileTo is 0, set the image to Clipboard.
   If it is omitted or "", saves to screen.bmp in the script folder,
   otherwise to sFileTo which can be BMP/JPG/PNG/GIF/TIF.
3) The optional parameter nQuality is applicable only when sFileTo is JPG. Set it to the desired quality level of the resulting JPG, an integer between 0 - 100.
4) If aRect is 0/1/2, captures the screen/active window/client area of active window.
5) aRect can be comma delimited sequence of coordinates, e.g., "Left, Top, Right, Bottom" or "Left, Top, Right, Bottom, Width_Zoomed, Height_Zoomed".
   In this case, only that portion of the rectangle will be captured. Additionally, in the latter case, zoomed to the new width/height, Width_Zoomed/Height_Zoomed.

Example:
CaptureScreen(0)
CaptureScreen(1)
CaptureScreen(2)
CaptureScreen("100, 100, 200, 200")
CaptureScreen("100, 100, 200, 200, 400, 400")   ; Zoomed
*/

/* Convert(sFileFr, sFileTo, nQuality)
Convert("C:\image.bmp", "C:\image.jpg")
Convert("C:\image.bmp", "C:\image.jpg", 95)
Convert(0, "C:\clip.png")   ; Save the bitmap in the clipboard to sFileTo if sFileFr is "" or 0.
*/


CaptureScreen(aRect = 0, bCursor = False, sFile = "", nQuality = "")
{
   If   !aRect
   {
      SysGet, Mon, Monitor, 1
      nL := MonLeft
      nT := MonTop
      nW := MonRight - MonLeft
      nH := MonBottom - MonTop
   }
   Else If   aRect = 1
      WinGetPos, nL, nT, nW, nH, A
   Else If   aRect = 2
   {
      WinGet, hWnd, ID, A
      VarSetCapacity(rt, 16, 0)
      DllCall("GetClientRect" , "Uint", hWnd, "Uint", &rt)
      DllCall("ClientToScreen", "Uint", hWnd, "Uint", &rt)
      nL := NumGet(rt, 0, "int")
      nT := NumGet(rt, 4, "int")
      nW := NumGet(rt, 8)
      nH := NumGet(rt,12)
   }
   Else
   {
      StringSplit, rt, aRect, `,, %A_Space%%A_Tab%
      nL := rt1
      nT := rt2
      nW := rt3 - rt1
      nH := rt4 - rt2
      znW := rt5
      znH := rt6
   }

   mDC := DllCall("CreateCompatibleDC", "Uint", 0)
   hBM := CreateDIBSection(mDC, nW, nH)
   oBM := DllCall("SelectObject", "Uint", mDC, "Uint", hBM)
   hDC := DllCall("GetDC", "Uint", 0)
   DllCall("BitBlt", "Uint", mDC, "int", 0, "int", 0, "int", nW, "int", nH, "Uint", hDC, "int", nL, "int", nT, "Uint", 0x40000000 | 0x00CC0020)
   DllCall("ReleaseDC", "Uint", 0, "Uint", hDC)
   If   bCursor
      CaptureCursor(mDC, nL, nT)
   DllCall("SelectObject", "Uint", mDC, "Uint", oBM)
   DllCall("DeleteDC", "Uint", mDC)
   If   znW && znH
      hBM := Zoomer(hBM, nW, nH, znW, znH)
   If   sFile = 0
      SetClipboardData(hBM)
   Else   Convert(hBM, sFile, nQuality), DllCall("DeleteObject", "Uint", hBM)
}

CaptureCursor(hDC, nL, nT)
{
   VarSetCapacity(mi, 20, 0)
   mi := Chr(20)
   DllCall("GetCursorInfo", "Uint", &mi)
   bShow   := NumGet(mi, 4)
   hCursor := NumGet(mi, 8)
   xCursor := NumGet(mi,12)
   yCursor := NumGet(mi,16)

   VarSetCapacity(ni, 20, 0)
   DllCall("GetIconInfo", "Uint", hCursor, "Uint", &ni)
   xHotspot := NumGet(ni, 4)
   yHotspot := NumGet(ni, 8)
   hBMMask  := NumGet(ni,12)
   hBMColor := NumGet(ni,16)

   If   bShow
      DllCall("DrawIcon", "Uint", hDC, "int", xCursor - xHotspot - nL, "int", yCursor - yHotspot - nT, "Uint", hCursor)
   If   hBMMask
      DllCall("DeleteObject", "Uint", hBMMask)
   If   hBMColor
      DllCall("DeleteObject", "Uint", hBMColor)
}

Zoomer(hBM, nW, nH, znW, znH)
{
   mDC1 := DllCall("CreateCompatibleDC", "Uint", 0)
   mDC2 := DllCall("CreateCompatibleDC", "Uint", 0)
   zhBM := CreateDIBSection(mDC2, znW, znH)
   oBM1 := DllCall("SelectObject", "Uint", mDC1, "Uint",  hBM)
   oBM2 := DllCall("SelectObject", "Uint", mDC2, "Uint", zhBM)
   DllCall("SetStretchBltMode", "Uint", mDC2, "int", 4)
   DllCall("StretchBlt", "Uint", mDC2, "int", 0, "int", 0, "int", znW, "int", znH, "Uint", mDC1, "int", 0, "int", 0, "int", nW, "int", nH, "Uint", 0x00CC0020)
   DllCall("SelectObject", "Uint", mDC1, "Uint", oBM1)
   DllCall("SelectObject", "Uint", mDC2, "Uint", oBM2)
   DllCall("DeleteDC", "Uint", mDC1)
   DllCall("DeleteDC", "Uint", mDC2)
   DllCall("DeleteObject", "Uint", hBM)
   Return   zhBM
}

Convert(sFileFr = "", sFileTo = "", nQuality = "")
{
   If   sFileTo  =
      sFileTo := A_ScriptDir . "\screen.bmp"
   SplitPath, sFileTo, , sDirTo, sExtTo, sNameTo

   If Not   hGdiPlus := DllCall("LoadLibrary", "str", "gdiplus.dll")
      Return   sFileFr+0 ? SaveHBITMAPToFile(sFileFr, sDirTo . "\" . sNameTo . ".bmp") : ""
   VarSetCapacity(si, 16, 0), si := Chr(1)
   DllCall("gdiplus\GdiplusStartup", "UintP", pToken, "Uint", &si, "Uint", 0)

   If   !sFileFr
   {
      DllCall("OpenClipboard", "Uint", 0)
      If    DllCall("IsClipboardFormatAvailable", "Uint", 2) && (hBM:=DllCall("GetClipboardData", "Uint", 2))
      DllCall("gdiplus\GdipCreateBitmapFromHBITMAP", "Uint", hBM, "Uint", 0, "UintP", pImage)
      DllCall("CloseClipboard")
   }
   Else If   sFileFr Is Integer
      DllCall("gdiplus\GdipCreateBitmapFromHBITMAP", "Uint", sFileFr, "Uint", 0, "UintP", pImage)
   Else   DllCall("gdiplus\GdipLoadImageFromFile", "Uint", Unicode4Ansi(wFileFr,sFileFr), "UintP", pImage)

   DllCall("gdiplus\GdipGetImageEncodersSize", "UintP", nCount, "UintP", nSize)
   VarSetCapacity(ci,nSize,0)
   DllCall("gdiplus\GdipGetImageEncoders", "Uint", nCount, "Uint", nSize, "Uint", &ci)
   Loop, %   nCount
      If   InStr(Ansi4Unicode(NumGet(ci,76*(A_Index-1)+44)), "." . sExtTo)
      {
         pCodec := &ci+76*(A_Index-1)
         Break
      }
   If   InStr(".JPG.JPEG.JPE.JFIF", "." . sExtTo) && nQuality<>"" && pImage && pCodec
   {
   DllCall("gdiplus\GdipGetEncoderParameterListSize", "Uint", pImage, "Uint", pCodec, "UintP", nSize)
   VarSetCapacity(pi,nSize,0)
   DllCall("gdiplus\GdipGetEncoderParameterList", "Uint", pImage, "Uint", pCodec, "Uint", nSize, "Uint", &pi)
   Loop, %   NumGet(pi)
      If   NumGet(pi,28*(A_Index-1)+20)=1 && NumGet(pi,28*(A_Index-1)+24)=6
      {
         pParam := &pi+28*(A_Index-1)
         NumPut(nQuality,NumGet(NumPut(4,NumPut(1,pParam+0)+20)))
         Break
      }
   }

   If   pImage
      pCodec   ? DllCall("gdiplus\GdipSaveImageToFile", "Uint", pImage, "Uint", Unicode4Ansi(wFileTo,sFileTo), "Uint", pCodec, "Uint", pParam) : DllCall("gdiplus\GdipCreateHBITMAPFromBitmap", "Uint", pImage, "UintP", hBitmap, "Uint", 0) . SetClipboardData(hBitmap), DllCall("gdiplus\GdipDisposeImage", "Uint", pImage)

   DllCall("gdiplus\GdiplusShutdown" , "Uint", pToken)
   DllCall("FreeLibrary", "Uint", hGdiPlus)
}

CreateDIBSection(hDC, nW, nH, bpp = 32, ByRef pBits = "")
{
   NumPut(VarSetCapacity(bi, 40, 0), bi)
   NumPut(nW, bi, 4)
   NumPut(nH, bi, 8)
   NumPut(bpp, NumPut(1, bi, 12, "UShort"), 0, "Ushort")
   NumPut(0,  bi,16)
   Return   DllCall("gdi32\CreateDIBSection", "Uint", hDC, "Uint", &bi, "Uint", 0, "UintP", pBits, "Uint", 0, "Uint", 0)
}

SaveHBITMAPToFile(hBitmap, sFile)
{
   DllCall("GetObject", "Uint", hBitmap, "int", VarSetCapacity(oi,84,0), "Uint", &oi)
   hFile:=   DllCall("CreateFile", "Uint", &sFile, "Uint", 0x40000000, "Uint", 0, "Uint", 0, "Uint", 2, "Uint", 0, "Uint", 0)
   DllCall("WriteFile", "Uint", hFile, "int64P", 0x4D42|14+40+NumGet(oi,44)<<16, "Uint", 6, "UintP", 0, "Uint", 0)
   DllCall("WriteFile", "Uint", hFile, "int64P", 54<<32, "Uint", 8, "UintP", 0, "Uint", 0)
   DllCall("WriteFile", "Uint", hFile, "Uint", &oi+24, "Uint", 40, "UintP", 0, "Uint", 0)
   DllCall("WriteFile", "Uint", hFile, "Uint", NumGet(oi,20), "Uint", NumGet(oi,44), "UintP", 0, "Uint", 0)
   DllCall("CloseHandle", "Uint", hFile)
}

SetClipboardData(hBitmap)
{
   DllCall("GetObject", "Uint", hBitmap, "int", VarSetCapacity(oi,84,0), "Uint", &oi)
   hDIB :=   DllCall("GlobalAlloc", "Uint", 2, "Uint", 40+NumGet(oi,44))
   pDIB :=   DllCall("GlobalLock", "Uint", hDIB)
   DllCall("RtlMoveMemory", "Uint", pDIB, "Uint", &oi+24, "Uint", 40)
   DllCall("RtlMoveMemory", "Uint", pDIB+40, "Uint", NumGet(oi,20), "Uint", NumGet(oi,44))
   DllCall("GlobalUnlock", "Uint", hDIB)
   DllCall("DeleteObject", "Uint", hBitmap)
   DllCall("OpenClipboard", "Uint", 0)
   DllCall("EmptyClipboard")
   DllCall("SetClipboardData", "Uint", 8, "Uint", hDIB)
   DllCall("CloseClipboard")
}

Unicode4Ansi(ByRef wString, sString)
{
   nSize := DllCall("MultiByteToWideChar", "Uint", 0, "Uint", 0, "Uint", &sString, "int", -1, "Uint", 0, "int", 0)
   VarSetCapacity(wString, nSize * 2)
   DllCall("MultiByteToWideChar", "Uint", 0, "Uint", 0, "Uint", &sString, "int", -1, "Uint", &wString, "int", nSize)
   Return   &wString
}

Ansi4Unicode(pString)
{
   nSize := DllCall("WideCharToMultiByte", "Uint", 0, "Uint", 0, "Uint", pString, "int", -1, "Uint", 0, "int",  0, "Uint", 0, "Uint", 0)
   VarSetCapacity(sString, nSize)
   DllCall("WideCharToMultiByte", "Uint", 0, "Uint", 0, "Uint", pString, "int", -1, "str", sString, "int", nSize, "Uint", 0, "Uint", 0)
   Return   sString
}

_________________
www.1HourSoftware.com
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Reply to topic    AutoHotkey Community Forum Index -> Scripts & Functions All times are GMT
Goto page Previous  1, 2, 3, 4, 5, 6, 7  Next
Page 4 of 7

 
Jump to:  
You can post new topics in this forum
You can reply to topics in this forum


Powered by phpBB © 2001, 2005 phpBB Group