HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0504
カツ丼Dellについて7解決


カツ丼

リンク

2007/5/4(Fri) 10:40:14|NO.8008

↓のは、user32 のスクリプトです。
HSPで使用するには、どのように変更すれば出来るようになりますか???
よろしくお願いします。
長文ですいません・・・。

FindWindow, GetWindowThreadProcessId, LoadLibrary, GetProcAddress, SetWindowsHookEx, FreeLibrary, UnhookWindowsHookEx '------------------------ Form1.frmのソース ------------------------ Dim hHook As Long Private Sub Command1_Click() Dim pMsgHook As Long Dim hHookDll As Long Dim Path As String Dim hWnd As Long Dim ThreadId As Long Path = App.Path If Right(Path, 1) <> "\" Then Path = Path & "\" hWnd = FindWindow("Shell_TrayWnd", vbNullString) ThreadId = GetWindowThreadProcessId(hWnd, 0) hHookDll = LoadLibrary(Path & "hookdll.dll") pMsgHook = GetProcAddress(hHookDll, "MsgHook") hHook = SetWindowsHookEx(WH_GETMESSAGE, pMsgHook, hHookDll, ThreadId) FreeLibrary hHookDll End Sub Private Sub Command2_Click() UnhookWindowsHookEx hHook End Sub '------------------------ Module1.basのソース ------------------------ Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal DllName As String) As Long Declare Function GetProcAddress Lib "kernel32" (ByVal hDll As Long, ByVal FuncName As String) As Long Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _ (ByVal wh As Long, ByVal pFunc As Long, ByVal hHook As Long, ByVal ThreadId As Long) As Long Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long Declare Function FreeLibrary Lib "kernel32" (ByVal hDll As Long) As Long Public Const WH_GETMESSAGE As Long = 3 Type POINT X As Long Y As Long End Type Declare Function GetWindowThreadProcessId Lib "user32" _(ByVal hWnd As Long, ByVal pProccessId As Long) As Long Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal ClassName As String, ByVal WindowTitle As String) As Long '------------------------ HookDll.cのソース ------------------------ #include <windows.h> LRESULT CALLBACK MsgHook(int nCnode, WPARAM wParam, LPARAM lParam) { MSG *pmsg; pmsg = (MSG *)lParam; if(pmsg->message == WM_USER + 260) pmsg->message = WM_NULL; return 0; }



この記事に返信する


f

リンク

2007/5/4(Fri) 16:02:55|NO.8017

とりあえず、

http://yokohama.cool.ne.jp/chokuto/advanced/index.html

を読んでみるというのはどうかと。

VBの文法は見たら分かりそうだし。



pizza

リンク

2007/5/4(Fri) 19:53:11|NO.8031

Windowsキーを無効にしたいって事ですよね?
http://www.interq.or.jp/moonstone/person/del/zenact02.htm
↑にフックを使わない方法が載っていました。
(他プロセスをフックするには、HookDll.cの部分をdllにする必要があります)


#include "user32.as" #define VK_LWIN 0x5b #define VK_RWIN 0x5c #define VK_SHIFT 0x10 #define KEYEVENTF_KEYUP 2 #define WM_KEYDOWN 0x0100 oncmd gosub *lb_OnKeyDown, WM_KEYDOWN stop *lb_OnKeyDown if (wParam != VK_LWIN) & (wParam != VK_RWIN) : return keybd_event VK_SHIFT, 0, 0, 0 keybd_event VK_SHIFT, 0, KEYEVENTF_KEYUP, 0 return



カツ丼

リンク

2007/5/5(Sat) 08:30:56|NO.8044

pizzaさん、そのスクリプトをどうしたらいいのか分かりません><
↓のスクリプトを実行したいのですが、どうしてもエラーになります。
『文法が間違っています』とのことです。
よろしくお願いします。

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;  Shift: TShiftState); begin  if (Key = VK_LWIN) or (Key = VK_RWIN) then  begin   Keybd_event(VK_SHIFT, 0, 0, 0); //Shiftキーを押す   Keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); //Shiftキーを離す  end; end;



Kpan

リンク

2007/5/5(Sat) 09:31:45|NO.8047

>↓のスクリプトを実行したいのですが、どうしてもエラーになります。
>『文法が間違っています』とのことです。

???
いったいぜんたい何がしたいのか分かりませんが、Delphiのコードを
HSPでコンパイルというのは無理な話かと・・・。(^^;



pizza

リンク

2007/5/5(Sat) 14:24:13|NO.8054

リンク先のは他言語なので、NO.8031の下の方に書いてあるものを
試してみて下さい。



カツ丼

リンク

2007/5/5(Sat) 19:43:51|NO.8066

>pizzaさん、
実行しましたが、白い画面になりましたが、
これで合っているのですか?



カツ丼

リンク

2007/5/5(Sat) 19:45:14|NO.8067

すいません。出来ました。
本当に迷惑をおかけし、すいませんでした。



ONION software Copyright 1997-2023(c) All rights reserved.