『壹』 在VC中,如何修改文件的只讀屬性設置.
//-------------------將只讀文件的只讀屬性去掉----------------------- CFileStatus rStatus; CFile::GetStatus(strFileName,rStatus);//獲得文件的屬性設置 rStatus.m_attribute=rStatus.m_attribute &0x3E; //如果文件為只讀的,將只讀屬性去掉 //-------------------------------------------- CFile::SetStatus(strFileName, rStatus );//更改文件的屬性設置……}enum Attribute { normal = 0x00, //對應的二進制編碼是00 0000 readOnly = 0x01, //對應的二進制編碼是00 0001 hidden = 0x02, //對應的二進制編碼是00 0010 system = 0x04, //對應的二進制編碼是00 0100 volume = 0x08, //對應的二進制編碼是00 1000 directory = 0x10, //對應的二進制編碼是01 0000 archive = 0x20 //對應的二進制編碼是10 0000};所以取消某個屬性的設置,就將相應的二進制編碼的「1」位設置為0,然後其他位均為「1」,再轉換為十六進制編碼,然後進行「&」操作即可。如:
『貳』 在VC中,如何修改文件的只讀屬性設置
//-------------------將只讀文件的只讀屬性去掉-----------------------
CFileStatus rStatus;
CFile::GetStatus(strFileName,rStatus);//獲得文件的屬性設置
rStatus.m_attribute=rStatus.m_attribute &0x3E; //如果文件為只讀的,將只讀屬性去掉
//--------------------------------------------
CFile::SetStatus(strFileName, rStatus );//更改文件的屬性設置……}enum Attribute {
normal = 0x00,
//對應的二進制編碼是00 0000
readOnly = 0x01,
//對應的二進制編碼是00 0001
hidden = 0x02,
//對應的二進制編碼是00 0010
system = 0x04,
//對應的二進制編碼是00 0100
volume = 0x08,
//對應的二進制編碼是00 1000
directory = 0x10,
//對應的二進制編碼是01 0000
archive = 0x20
//對應的二進制編碼是10 0000};所以取消某個屬性的設置,就將相應的二進制編碼的「1」位設置為0,然後其他位均為「1」,再轉換為十六進制編碼,然後進行「&」操作即可。如:
『叄』 修改VC\CRT\*.c源碼沒效果
你編譯以後生成了lib文件?
然後用這個lib文件替換了libc.lib還是libcmt.lib(vc6默認是哪個忘了)了嗎,否則它鏈接的還是原來的代碼編譯出來的
如果是debug模式就是libcd.lib或者libcmtd.lib
這樣它才會鏈接你生成的那個,
而且必須選靜態鏈接,動態鏈接不行,動態它會鏈接到msvcrtd.dll或者msvcrt.dll上
嗯,如此改法我是沒試過……
『肆』 VC++工程名如何修改
方法:
1
新建一個工程,名字為要修改的工程名,類型及設置與原工程相同;
2
導入原工程所有數據文件,包括c/c++源文件,頭文件,資源文件等;
3
保存新工程;
4
刪除原工程。
『伍』 網上下了一個vc的項目的代碼!然後版權所有想改變成現在的時間!求解……
版權所有是個靜態文本框吧?試試下面的代碼:
//取得當前時間
CTime tmNow = CTime::GetCurrentTime();
//定義指向靜態文本框的對象,
//IDC_STATIC_COPYRIGHT是控制項ID
CStatic *pSt = (CStatic *)GetDlgItem(IDC_STATIC_COPYRIGHT);
//格式化時間
CString strTmp = tmNow.Format("%Y-%m-%d %H:%M:%S");
//設置控制項文本
pSt->SetWindowText(strTmp);
『陸』 VC++如何修改其他應用程序的編輯框的文字
B程序 是否你自己寫的.
如果是 可以自定義一個 消息介面
A程序 Post自定義消息 . B程序處理.
如果不是,
HWND parenthwnd = ::FindWindow(NULL,"B對話框名稱");
拿到句柄, 在循環遍歷控制項.
得到想要的控制項句柄
::PostMessage(句柄, WM_SETTEXT, 0, "文字");
基本是這個流程.
實現還需細節化.
『柒』 用VC編的DLL,如何添加版權信息
編寫DLL又沒什麼神秘的,和普通的EXE差不多.... 在新建工程里有個Win32 Dynamic-Link Library之類的工程選擇吧.. 平時很少用VC2008,具體菜單不大清楚...
『捌』 怎樣在VC++中改換程序的圖標,版權信息等
你用的VS是哪一個版本?
直接在Resource View(資源試圖)下,查看Version Info(版本信息),修改版權信息。
而圖標信息,也是在Resource View(資源試圖)中,找到ICON欄,找到對應的small.ico文件位置,替換就可以啦,有問題可以私信我。
『玖』 在VC++中修改文件
假設原始文件SD.txt位於C盤根目錄下,將轉化後的數據存於C盤根目錄下的SD2.txt中,代碼如下:
CStdioFile sfFile1,sfFile2;
BOOL bFileExist;
//打開原始文件
bFileExist = sfFile1.Open("C:\\SD.txt", CFile::modeRead);
if(!bFileExist)
{
MessageBox("文件不存在!");
return;
}
//創建要寫入的文件
bFileExist=sfFile2.Open("C:\\SD2.txt", CFile::modeCreate | CFile::modeWrite);
if(!bFileExist)
{
MessageBox("寫文件失敗!");
return;
}
CString strline;
//讀原始文件內容,轉換後存入新的文件
while(sfFile1.ReadString(strline))//讀出一行數據
{
CString strTemp;//臨時字元串用來保存前面的標號
CString strData;//存取後面的數據
strTemp = strline.Left(6);//提取前6個字元
strData = strline.Right(strline.GetLength()-7);//提取後面的數據
strTemp = strTemp.Right(2);//提取序號
strline = "T1排1列" + strTemp + "個 " + strData;//生成新的行
sfFile2.WriteString(strline+"\n");//寫入新的文件
}
//關閉文件
sfFile1.Close();
sfFile2.Close();
『拾』 怎樣修改VC++文件的創建時間
在VC++下對文件屬性的獲取與更改
摘要:本文講述了在Visual C++ 下編程實現對磁碟文件的屬性進行獲取以及更改的一般方法,並給出部分相關的關鍵代碼。
一、 引言
文件是數據在磁碟上最常用的一種存放形式,也是在程序設計中與之經常打交道的一種編程對象,不少程序尤其是數據傳輸和處理類的應用程序更是需要頻繁的創 建、讀取和寫入文件。對於一些要求不是很嚴格的程序,我們往往只關心文件的內容是否正確、文件大小是否有增減或是再嚴格一些,看文件名是否符合規定等等。 以上這些要素對於大多數程序而言顯然是可以滿足實際需求的,但對於某些特殊行業的一些有著比較嚴格要求的軟體系統,僅有以上要素還是遠遠不夠的,往往還需 要對文件的所有屬性諸如文件的創建時間、文件的最後訪問時間、文件的最後修改時間等等進行提取處理與重新設置。
二、 WIN32_FIND_DATA結構
關於文件的全部屬性信息,總計有以下以下9種:文件的標題名、文件的屬性(只讀、存檔,隱藏等)、文件的創建時間、文件的最後訪問時間、文件的最後修改時間、文件大小的高位雙字、文件大小的低位雙字、保留、保留。在這里只有文件標題名和文件的長度可以通過CFile類比較方便的獲得,而對於其他幾種屬性的獲取和設置就無能為力了。
在用findfirst()和findnext()函數去查找磁碟文件時經常使用的一個數據結構WIN32_FIND_DATA的成員變數里包含了以上所有的文件屬性,因此可以通過這個結構作為獲取和更改文件屬性的手段。該結構的內容如下:
typedef struct _WIN32_FIND_DATA {
DWORD dwFileAttributes; //文件屬性
FILETIME ftCreationTime; // 文件創建時間
FILETIME ftLastAccessTime; // 文件最後一次訪問時間
FILETIME ftLastWriteTime; // 文件最後一次修改時間
DWORD nFileSizeHigh; // 文件長度高32位
DWORD nFileSizeLow; // 文件長度低32位
DWORD dwReserved0; // 系統保留
DWORD dwReserved1; // 系統保留
TCHAR cFileName[ MAX_PATH ]; // 長文件名
TCHAR cAlternateFileName[ 14 ]; // 8.3格式文件名
} WIN32_FIND_DATA, *PWIN32_FIND_DATA;
可以通過FindFirstFile()函數根據當前的文件存放路徑查找該文件來把待操作文件的相關屬性讀取到WIN32_FIND_DATA結構中去:
WIN32_FIND_DATA ffd ;
HANDLE hFind = FindFirstFile("c:\\test.dat",&ffd);
在使用這個結構時不能手工修改這個結構中的任何數據,結構對於開發人員來說只能作為一個只讀數據,其所有的成員變數都會由系統完成填寫。在MSDN幫助中可以查找到關於WIN32_FIND_DATA結構的更加詳細的說明。
三、 文件屬性信息的獲取與更改
為了更好的保存獲取到的文件屬性信息,對應於文件屬性構造一個自定義的FILE_INFO數據結構,獲取的屬性信息可暫存於此:
typedef struct _FILE_INFO {
TCHAR szFileTitle[128]; //文件的標題名
DWORD dwFileAttributes; //文件的屬性
FILETIME ftCreationTime; //文件的創建時間
FILETIME ftLastAccessTime; //文件的最後訪問時間
FILETIME ftLastWriteTime; //文件的最後修改時間
DWORD nFileSizeHigh; //文件大小的高位雙字
DWORD nFileSizeLow; //文件大小的低位雙字
DWORD dwReserved0; //保留,為0
DWORD dwReserved1; //保留,為0
} FILE_INFO, * PFILE_INFO;
首先用FindFirstFile()函數將文件屬性獲取到WIN32_FIND_DATA 結構對象FindFileData中去,之後可以用FindClose()將其關閉,並把FindFileData中的有關文件屬性信息的內容復制到自定 義結構FILE_INFO的結構對象FileInfo中備用。下面是關於這部分描述的部分關鍵代碼:
//聲明結構對象
FILE_INFO FileInfo;
WIN32_FIND_DATA FindFileData;
……
//獲取文件屬性信息
FindClose(FindFirstFile("Test.txt",&FindFileData));
memset(&FileInfo,0,sizeof(FILE_INFO));
……
//將文件屬性信息保存到FileInfo中備用
strcpy(FileInfo.szFileTitle,myFile.GetFileTitle());
FileInfo.dwFileAttributes = FindFileData.dwFileAttributes;
FileInfo.ftCreationTime = FindFileData.ftCreationTime;
FileInfo.ftLastAccessTime = FindFileData.ftLastAccessTime;
FileInfo.ftLastWriteTime = FindFileData.ftLastWriteTime;
FileInfo.nFileSizeHigh = FindFileData.nFileSizeHigh;
FileInfo.nFileSizeLow = FindFileData.nFileSizeLow;
……
在獲取到文件的原始屬性信息後既可以原封不動的將屬性重新寫到文件,也可以對其中某一項或某幾項屬性內容進行修改後再行寫入文件,從而達到更改文件屬性 的目的。比如可以用SetFileTime()函數設置文件的創建時間、最近一次訪問時間以及最近一次修改的時間等等:
SetFileTime((HANDLE)destFile.m_hFile, //待寫入的文件句柄
&FileInfo.ftCreationTime, //文件的創建時間
&FileInfo.ftLastAccessTime, //文件最近一次的訪問時間
&FileInfo.ftLastWriteTime); //文件最近一次的修改時間
也可以用SetFileAttributes() 函數實現對文件屬性的修改:
SetFileAttributes(FileInfo.szFileTitle,FileInfo.dwFileAttributes);
至於文件名的修改則更加簡單,直接在創建文件時在CreateFile()或CFile類的成員函數Open里直接對文件名參數進行設置即可。
文章鏈接地址:http://blog.csdn.net/lixiaosan/archive/2006/04/07/654219.aspx