1、
一个ini 文件 c*_*d
[a] <- 怎么给它改名字啊,在不丢失b、c数据的情况下。
b=xxx
c=xxx
-----------------
[a] <- 怎么删除它,b、c内容也删除。
b=xxx
c=xxx
-----------------
[w]
s=a <-修改它 并且[a] 也跟着改变
[a]
b=xxx
c=xxx
2、
有一个程序,如何获得它的句柄,并向其发送一个刷新的消息阿?
XXXXXXXXXX各位 在下谢了!FEN 不够可续!··XXXXXXXXXX
一个ini 文件 c*_*d
[a] <- 怎么给它改名字啊,在不丢失b、c数据的情况下。
b=xxx
c=xxx
-----------------
[a] <- 怎么删除它,b、c内容也删除。
b=xxx
c=xxx
-----------------
[w]
s=a <-修改它 并且[a] 也跟着改变
[a]
b=xxx
c=xxx
2、
有一个程序,如何获得它的句柄,并向其发送一个刷新的消息阿?
XXXXXXXXXX各位 在下谢了!FEN 不够可续!··XXXXXXXXXX
删除主键:WritePrivateProfileString(主键名, 0&, "", INI文件名)
[a] 也跟着改变当然是由你用代码来改变了,这不跟你修改是一样的吗?只不过多修改了几个地方。它可不会自动变的。
2、我不知道什么是程序的句柄?主窗口的句柄?
如果是主窗口的句柄:通过API函数FindWindowEx获得。
写ini就那几个api函数,查一下就知道,不难的
'<-- Used for Functions ReadINI & WriteINI
#If Win16 Then Declare Function WritePrivateProfileString Lib "Kernel" (ByVal AppName As String, ByVal KeyName As String, ByVal NewString As String, ByVal filename As String) As Integer
Declare Function GetPrivateProfileString Lib "Kernel" Alias "GetPrivateProfilestring" (ByVal AppName As String, ByVal KeyName As Any, ByVal Default As String, ByVal ReturnedString As String, ByVal MAXSIZE As Integer, ByVal filename As String) As Integer
#Else
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As Any, ByVal lpFileName As String) As Long
#End If
[a] <- 怎么给它改名字啊,在不丢失b、c数据的情况下。
b=xxx
c=xxx
-----------------
是的,因为没有给小节重命名的api
使用FindWindow
如找到计算器的句柄
h1 = FindWindow(vbNullString, "计算器") '计算器的句柄
比如要求操作某个INI文件,以及具体要实现的要求,我可以帮你写好。
【VB声明】
Private Declare Function RedrawWindow Lib "user32" Alias "RedrawWindow" (ByVal hwnd As Long, lprcUpdate As RECT, ByVal hrgnUpdate As Long, ByVal fuRedraw As Long) As Long【说明】
根据fuRedraw旗标的设置,重画全部或部分窗口 【返回值】
Long,非零表示成功,零表示失败。会设置GetLastError 【备注】
如针对桌面窗口应用这个函数,则应用程序必须用RDW_ERASE旗标重画桌面【参数表】
hwnd ----------- Long,要重画的窗口的句柄。零表示更新桌面窗口 lprcUpdate ----- RECT,窗口中需要重画的一个矩形区域 hrgnUpdate ----- Long,一个“区”的句柄,这个区描述了要重画的窗口区域。“区”:Region fuRedraw ------- Long,规定具体重画操作的旗标。下列常数可组合使用,从而进行复杂的重画行动
RDW_ERASE
重画前,先清除重画区域的背景。也必须指定RDW_INVALIDATE
RDW_FRAME
如非客户区包含在重画区域中,则对非客户区进行更新。也必须指定RDW_INVALIDATE
RDW_INTERNALPAINT
即使窗口并非无效,也向其投递一条WM_PAINT消息
RDW_INVALIDATE
禁用(屏蔽)重画区域
RDW_NOERASE
禁止删除重画区域的背景
RDW_NOFRAME
禁止非客户区域重画(如果它是重画区域的一部分)。也必须指定RDW_VALIDATE
RDW_NOINTERNALPAINT
禁止内部生成或由这个函数生成的任何待决WM_PAINT消息。针对无效区域,仍会生成WM_PAINT消息
RDW_VALIDATE
检验重画区域
RDW_ERASENOW
立即删除指定的重画区域
RDW_UPDATENOW
立即更新指定的重画区域
RDW_ALLCHILDREN
重画操作包括子窗口(前提是它们存在于重画区域)
RDW_NOCHILDREN
重画操作排除子窗口(前提是它们存在于重画区域)
一般情况下我们使用ini文件是记录一些特定的配置信息,比如:
[serverinfo]
ip=...
port=...在这种情况下,一般组名(serverinfo)和项名(ip、port)等是不会变的,我们只是记录它们的值而以。而楼主现在要对组名和项名都要编辑用INI就不合适了,可以考虑用XML或自定义格式的二进制文件等。
删除主键:WritePrivateProfileString(主键名, 0&, "", INI文件名)
[a] 也跟着改变当然是由你用代码来改变了,这不跟你修改是一样的吗?只不过多修改了几个地方。它可不会自动变的。
2、我不知道什么是程序的句柄?主窗口的句柄?
如果是主窗口的句柄:通过API函数FindWindowEx获得
规定要用.ini的 没办法啊,当时我提议用注册表结果……