1.win10应该用什么软件获得句柄
【打开开始菜单】点击电脑左下角的“开始”按钮,出现弹出画面,看到左下角的“所有应用”,点击。
【直接找到以W开头的windows区域】从上到下,找到W字母索引的区域,这里有许多过去win7中保留的固有程序。3【windows附件】看到windows附件,点击它,看到许多应用程序,有常见的IE浏览器,传真和扫描程序,以及人们记事用到的便利贴(便笺),还有数学输入画板、XPS查看器等。
4【windows系统】【windows附件】下面还有windows系统,很重要的应用程序在里面,有命令提示符、控制面板、运行等。
2.win10应该用什么软件获得句柄
win10系统有问题了。要么 继续 重装win10系统,要么装回win7系统。直接换个验证过的系统盘重装系统就行了,这样就可以全程自动、顺利解决 win7系统安装 的问题了。用u盘或者硬盘这些都是可以的,且安装速度非常快。但关键是:要有兼容性好的(兼容ide、achi、Raid模式的安装)并能自动永久激活的、能够自动安装机器硬件驱动序的系统盘,这就可以全程自动、顺利重装系统了。方法如下:
1、U盘安装:用ultraiso软件,打开下载好的系统安装盘文件(ISO文件),执行“写入映像文件”把U盘插到电脑上,点击“确定”,等待程序执行完毕后,这样就做好了启动及安装系统用的u盘,用这个做好的系统u盘引导启动机器后,即可顺利重装系统了;
2、硬盘安装:前提是,需要有一个可以正常运行的Windows系统,提取下载的ISO文件中的“*.GHO”和“安装系统.EXE”到电脑的非系统分区,然后运行“安装系统.EXE”,直接回车确认还原操作,再次确认执行自动安装操作。(执行前注意备份C盘重要资料!);
3、图文版教程:有这方面的详细图文版安装教程怎么给你?不能附加的。会被系统判为违规的。
重装系统的系统盘下载地址在“知道页面”右上角的…………si xin zhong…………有!望采纳!
3.如何获取窗体中组件的句柄
一般用FindWindow。
Delphi中获取其它进程的窗口句柄,在Delphi中获取其它进程的窗口句柄,绝大部分人首先想到的会使用:FindWindow或者用GetWindow来遍历查找,如:Delphi/Pascal code?handle := FindWindow(nil,PChar('窗口的标题')); 或者:Delphi/Pascal code?procedure TForm1.Button1Click(Sender: TObject); var hCurrentWindow: HWnd; WndText:String; begin hCurrentWindow := GetWindow(Handle, GW_HWNDFIRST); while hCurrentWindow 0 do begin WndText:=GetWndText(hCurrentWindow); if UpperCase(WndText)='窗口的标题' then begin 。 。
end; hCurrentWindow:=GetWindow(hCurrentWindow, GW_HWNDNEXT); end; end; 因为目前网络上绝大部分的代码都是介绍用这两种方法取得其它进程的窗口句柄。虽这两种方法都可以达到查找其它进程的窗口句柄的目的,但本人认为这两都方法存在较大的弊端。
因为这两种方法都是根据其它进程的标题来查找的,如果其它进程的标题在运行时不断的发生变化,那么这两种方法就无法没办法用了。介绍第三种通过进程的文件名来查找窗口句柄。
首先通过进程快照得到要查找的进程ID(ProcessId),其次,再跟据ProcessId获取进程的窗口句柄。以下为本文章的代码:Delphi/Pascal code?uses TLHelp32; procedure TForm1.Button1Click(Sender: TObject); var ProcessName : string; //进程名 FSnapshotHandle:THandle; //进程快照句柄 FProcessEntry32:TProcessEntry32; //进程入口的结构体信息 ContinueLoop:BOOL; MyHwnd:THandle; begin FSnapshotHandle:=(TH32CS_SNAPPROCESS,0); //创建一个进程快照 FProcessEntry32.dwSize:=Sizeof(FProcessEntry32); ContinueLoop:=Process32First(FSnapshotHandle,FProcessEntry32); //得到系统中第一个进程//循环例举 while ContinueLoop do begin ProcessName := FProcessEntry32.szExeFile; if(ProcessName = '要找的应用程序名.exe') then begin MyHwnd := GetHWndByPID(FProcessEntry32.th32ProcessID); 。
。 end; ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32); end; CloseHandle(FSnapshotHandle); // 释放快照句柄 end;//跟据ProcessId获取进程的窗口句柄 function TForm1.GetHWndByPID(const hPID: THandle): THandle; type PEnumInfo = ^TEnumInfo; TEnumInfo = record ProcessID: DWORD; HWND: THandle; end; function EnumWindowsProc(Wnd: DWORD; var EI: TEnumInfo): Bool; stdcall; var PID: DWORD; begin (Wnd, @PID); Result := (PID EI.ProcessID) or (not IsWindowVisible(WND)) or (not IsWindowEnabled(WND)); if not Result then EI.HWND := WND; end; function FindMainWindow(PID: DWORD): DWORD; var EI: TEnumInfo; begin EI.ProcessID := PID; EI.HWND := 0; EnumWindows(@EnumWindowsProc, Integer(@EI)); Result := EI.HWND; end; begin if hPID0 then Result:=FindMainWindow(hPID) else Result:=0; end; 我说的是组件的句柄,不是窗体的句柄 findwindowex();获取指定句柄窗口下的子控件,当然是有句柄的控件 窗体的句柄都知道,还能不知道里面组件的句柄?——windows标准组件 procedure TForm1.Button2Click(Sender: TObject); var canvas1: TCanvas; begin Canvas1 := TCanvas.Create; //这是OK。
这真要感谢baidu,google canvas1.Handle := GetDc(panel1.Handle); canvas1.TextOut(1,1,'hello'); canvas1.Free ; Form1.Canvas.TextOut(10, 10, 'fff'); end; 有的组件是没有句柄的 ShowMessage(IntToStr(TWinControl(Form1.FindChildControl('Panel1')).Handle));。
转载请注明出处windows之家 » win10怎么获取句柄